The Rational Unified Process is a use-case-driven approach. This means that the use cases defined for a system are the basis for the entire development process (see Figure 6-2).
The use-case model is a result of the requirements workflow. In this front-end activity, the use cases are used to capture what the system should do from the user 's point of view. Thus, use cases act as the common language for communication between the customer or users and the system developers.
In analysis and design, use cases are the bridge that unites requirements and design activities. They serve as the basis for use-case realizations, which describe how the use case is performed in terms of interacting objects in the design model. The objects and classes are most likely found by walking through the use cases. This technique ensures that all the required behavior is represented in the system design.
During implementation, the design model is the implementation specification. Because use cases are the basis for the design model, they are implemented in terms of design classes. Use-case realizations in the design model are used to understand the dynamics of the system and determine where to optimize for performance.
During testing, use cases constitute the basis for identifying test cases and test procedures. In other words, each use case is performed to verify the system.
Other activities are also attached to the use cases. For example, because the use cases specify how an actor (a user) interacts with the system, use cases provide much of the structure and content for user manuals. [5]
[5] Conversely, when you're rushing to put a use-case model in place for a legacy system, consider using the user manuals as a starting point.
In project management, as you will see in Chapter 7, use cases are used to define the contents of iterations. Estimates of the effort can be derived from the use-case description by techniques such as function point analysis. In deployment, use-case packages can serve to plan a phased deployment or to define system variants. Definition and prototyping of user interfaces can be derived from use cases in the form of Use-Case Storyboards.
Optionally, in business modeling, we use the same concept of use case but at the level of the whole business rather than only of the system under consideration. The business use-case model describes high-level business processes and provides the context and the source of information for expressing the system's use cases. We describe this in Chapter 8, The Business Modeling Workflow.