Purpose

  • To define input to the selection of the set of scenarios and use cases that are to be analyzed in the current iteration.
  • To define the set of scenarios and use cases that represent some significant, central functionality.
  • To define the set of scenarios and use cases that have a substantial architectural coverage (that exercise many architectural elements) or that stress or illustrate a specific, delicate point of the architecture.

 

Role:  Software Architect 
Frequency: As required, typically once in each iteration starting with Elaboration.
Steps

 

Input Artifacts: 

 

Resulting Artifacts: 

 

Tool Mentors:   

Workflow Details:   

 

Prioritize Use Cases and Scenarios

To top of page

A software architect proposes the technical contents and the order of successive iterations by selecting a certain number of scenarios and use cases to be analyzed and designed. This technical proposal is completed and refined by the various development teams, based on personnel availability, customer requirements in terms of deliverables, availability of tools and COTS products, and the needs of other projects.

The selection of scenarios and use cases that constitute the use-case view is driven by some key driving factors, summarized below.

  • The benefit of the scenario to stakeholders: critical, important, useful.
  • The architectural impact of the scenario: none, extends, modifies. There may be critical use cases that have little or no impact on the architecture, and low benefit use cases that have a big impact. Low benefit use cases with big architectural impacts should be reviewed by the project manager for possible de-scoping.
  • The risks to be mitigated (performance, availability of a product, and suitability of a component).
  • The completion of the coverage of the architecture (making sure that at the end of the Elaboration phase, every piece of software to be developed has found a home in the Implementation View).
  • Other tactical objectives or constraints: demo to end-user, and so on.

There may be two scenarios that hit the same components and address similar risks. If you implement A first, then B is not architecturally significant. If you implement B first, then A is not architecturally significant. So these attributes can depend on the iteration order, and should be re-evaluated when the ordering changes, as well as when the requirements themselves change.

These driving factors should be captured as attributes of the requirements, so that they can be managed effectively.

Architecturally significant use cases that are poorly understood or likely to change should be prioritized for clarification and stabilization. In some cases, this means further requirements analysis should be done before implementing the requirement. In other cases, some form of prototyping may be best.

 

Document the Use-Case View

To top of page

The use-case view is documented in the use-case view section of the Software Architecture Document. This section contains a listing of the significant use cases and scenarios within each package in the use-case model, together with significant properties such as descriptions of the flow of events, relationships, use-case diagrams, and special requirements related to each use case. Note that if the use-case view is developed early in the iteration, some of these properties may not yet exist.

 

 

Evaluate Your Results

To top of page

The use-case view should be checked at this stage to verify that the work is on track, but not to review the use-case view in detail. See especially checkpoints for use-case view in Activity: Review the Architecture.



Rational Unified Process  

2003.06.13