Figure 10-2 illustrates an iteration in analysis and design in UML activity diagram form. Each activity state represents a workflow detail in the Rational Unified Process ”for example, Define a Candidate Architecture. Each workflow detail, in turn , is composed of one or more activities. We see that some workflow details are phase-dependent: In elaboration iterations, the architecture is defined and then refined, and the more important or risky areas of the application are subjected to analysis and design. Figure 10-2. Workflow in analysis and design
In subsequent iterations during the construction phase, the emphasis shifts to the addition of application functionality on top of what is, by then, a stable architectural platform. Workflow DetailsDefine a Candidate ArchitectureThis workflow detail is composed of the activities Architectural Analysis, performed by the architect, and Use-Case Analysis, performed by the designer. Its purposes are:
Refine the ArchitectureThis workflow detail is composed of the activities Identify Design Mechanisms, Identify Design Elements, Incorporate Existing Design Elements, Describe Runtime Architecture, and Describe Distribution, all performed by the architect, and Review the Architecture, performed by the architecture reviewer. The purpose of this workflow detail is to
Analyze BehaviorThis workflow detail is composed of the activities Use-Case Analysis, performed by the designer, Identify Design Elements, performed by the architect, and Review the Design, performed by the design reviewer. The purpose of this workflow detail is to transform the behavioral descriptions provided by the use cases into a set of elements on which the design can be based. Note that in Analyze Behavior, we are becoming less concerned with the nonfunctional requirements levied on the system and much more with how to deliver the needed application capabilities. Design ComponentsThis workflow detail is composed of the activities Use-Case Design, Class Design, and Subsystem Design, performed by the designer, and Review the Design, performed by the design reviewer. The purposes of this workflow detail are:
In Design Components, class characteristics and relationships, subsystem interfaces and their realization by the contained classes, and use-case realizations in terms of collaborations are all completely specified. Design Real-Time ComponentsThis workflow detail applies to designs that will use the Capsule artifact as a primary design element, within the context of a real-time or reactive system. Design Real-Time Components has a purpose similar to Design Components, but includes the activity Capsule Design to define the concurrent threads of control in the system (i.e., capsules ) and the protocols between them. Design the DatabaseThis is an optional workflow detail, invoked when the system involves a large amount of data in a database. Design the Database is composed of the activities Database Design, performed by the database designer, Class Design, performed by the designer, and Review the Design, performed by the design reviewer. Its purposes are:
Note that Figure 10-2 shows component design and database design occurring in parallel with architectural refinement: There may be many interactions between roles performing these workflows, for example, the discovery of a new class may require adjustment of the architecture, or architectural refinement for performance reasons may impact the design of persistent classes. This is the case particularly for iterations in the elaboration phase, when the architecture is still fluid. |