310 likes | 352 Views
Chapter 8: Case Study. FCAPS System (Part II). Iteration 2: Identifying Structures to Support Primary Functionality. This section presents the results of the activities that are performed in each of steps of ADD
E N D
Chapter 8: Case Study FCAPS System (Part II)
Iteration 2: Identifying Structures to Support Primary Functionality • This section presents the results of the activities that are performed in each of steps of ADD • The goal in second iteration is to reason about the units of implementation, which affect team formation, interfaces, and the means by which development tasks may be distributed, outsourced, and implemented in sprints
Step 2: Establish iteration goal by selecting drivers • The goal of this iteration is to address the general architecture concern of identifying structures to support primary functionality • Identifying these elements is useful not only for understanding how functionality is supported CRN-3 – allocation of work to members of development team • In this second iteration, besides CRN-3, the architect considers the system’s primary use cases:- • UC-1 • UC-2 • UC-3
Step 3: Choose one or more elements of the system to refine • The elements that will refined in this iteration are the modules located in the different layers defined by the two reference architectures from the previous iteration • Support of functionality in this system requires the collaboration of components associated with modules that are located in the different layers
Step 4: Choose one or more design concepts that satisfy the selected drivers • The folowing table summarizes the design decisions. The words in bold in the following table refer to architectural pattern
Step 4: Choose one or more design concepts that satisfy the selected drivers • The folowing table summarizes the design decisions. The words in bold in the following table refer to architectural pattern
Step 5: Instantiate Architectural Elements, Allocate Responsible, & Define Interfaces • The folowing table summarizes the instantiation design decision
Step 5: Instantiate Architectural Elements, Allocate Responsible, & Define Interfaces • The folowing table summarizes the instantiation design decision
Step 6: Sketch views and record design decisions • As a result of the decisions made in step 5, several diagram are created • Figure 8.5 shows an initial domain model for the system • Figure 8.6 shows the domain objects that are instantiated for the use case model • Figure 8.7 shows a sketch of a module view with modules that are derived from the business objects & associated with the primary use cases
Step 6: Sketch views and record design decisions 0. * generates • Event • - date • - payload • - severity • - type 0. * • Time Server • - deviceName • - ipAddress • - model 1 Region - name parent 1. * 0. * acknowledges Fig. 8.5 Initial domain model 1 Configuration - configurationParameters • Performance Data • - delay: DataSet • - jitter: DataSet • - offset: DataSet 1 • User • - login • - password • - permissions • - type
Step 6: Sketch views and record design decisions Fig. 8.6 Domain objects associated With the use case model <<domain object>> Fault Detection <<domain object>> Network Status Monitoring <<domain object>> Event History Responsibilities UC-2 Responsibilities UC-1 Responsibilities UC-3 <<domain object>> Time Server Management <<domain object>> Time Server Management <<domain object>> System Access Responsibilities UC-4 Responsibilities UC-5 UC-6 Responsibilities UC-10 <<domain object>> Performance Data & Info. Display <<domain object>> Performance & Data Collection <<domain object>> User Management Responsibilities UC-8 UC-9 Responsibilities UC-7 Responsibilities UC-11
Step 6: Sketch views and record design decisions Client Side <<layer>> Presentation CS NetworkStatusMonitoringView <<layer>> Business Logic CS NetworkStatusMonitoringController <<layer>> Data CS RequestManager
Step 6: Sketch views and record design decisions Fig. 8.7 Modules that support the primary use cases Server Side <<layer>> Service SS <<facade>> RequestService <<layer>> Business Logic SS TopologyController DomainEntities TimeServerEventsController DataCollectionController <<layer>> Data SS EventDataMapper RegionDataMapper TimeServerDataMapper TimeServerController
Step 7: Perform Analysis of Current Design and Review Iteration Goal and Achievement of Design Purpose • The decision made in this iteration provided an initial understanding of how functionality is supported in the system • The modules associated with the primary use cases were identified by the architect, and modules associated with the rest of the functionality were identified by another team member
Step 7: Perform Analysis of Current Design and Review Iteration Goal and Achievement of Design Purpose
Step 7: Perform Analysis of Current Design and Review Iteration Goal and Achievement of Design Purpose
Iteration 3: Addressing Quality Attribute Scenario Driver (QA-3) • This section presents the results of the activities that are performed in each of the step of ADD in the third iteration of the design process • This iteration focuses on just one of these quality attributes scenarios
Step 2: Establish Iteration Goal by Selecting Drivers • For this iteration, the architect focuses on the QA-3 quality attribute scenario: A failure occurs in managemnt system during operation. The management system resumes operation in less than 30 seconds
Step 3: Choose one or more elements of the system to failure • For this availability scenario, the elements that will be refined are the pyhsical nodes that were identified during the first iteration:- • Application server • Database server
Step 4: Choose one or more design concepts that satisfy the selected drivers • The design concepts used in this iteration are the following:
Step 5: Instantiate Architectural Elements, Allocate Responsibilities, & Define Interfaces • The instantiation design decisions are summarized in the following table:-
Step 6: Sketch views and record design decisions • The figure shows a refined deployment diagram that includes the introduction of redundancy in the system Fig. 8.8 Refined deployment diagram Server1: ApplicationServer <<JDBC>> <<replicated>> LoadBalancer Pc: Workstation <<replicated>> Database Server <<HTTP>> Server2: ApplicationServer <<JDBC>> <<SNMP>> <<replicated>> :TrapReceiver Device1: TimeServer Relocatable IP address
Step 6: Sketch views and record design decisions • The following table describes responsibilities for elements that have not been listed previously (in iteration 1)
Step 6: Sketch views and record design decisions • The UML sequence diagram show in Fig 8.9 illustrates how the TrapReceiver that was introduced in this iteration exchanges messages with other elements shown in the deployment diagram to support UC-2 (detect fault), which is associated with both QA-3 (availability) and QA-1 (performance) :NetworkDevice :TrapReceiver :ApplicationServer Pc: UserWorkstation trap() transformAndEnqueue(Event) Fig. 8.9 Sequence diagram consume() publish() event() updateView()
Step 7: Perform analysis of current design & review iteration goal & achievement of design purpose • In this iteration, important design decisions have been made to address QA-3, which also impacted QA-1. • The following table summarizes the status of the different drivers and the decisions that were made during the iteration
Step 7: Perform analysis of current design & review iteration goal & achievement of design purpose
Step 7: Perform analysis of current design & review iteration goal & achievement of design purpose
Summary • In this chapter, we presented an example of using ADD to design a greenfield system in a mature domain • We illustrated three iterations with different foci: addressing a general concern, addressing functionality, and addressing one key quality attribute scenario7 • The example also demonstrates how architectural concerns, primary use cases, and quality attributes scenarios can be addressed as part of architectural design • In a real system, more iterations would be necessary to create a complete architecture design by addressing other scenarios with high priority