Guidelines:
Use-Case Realization

Use-Case Realization
|
A use-case realization describes
how a particular use case is realized within the design model, in terms of collaborating
objects. |
Topics
A Use-Case Realization represents the Design perspective of a Use Case. It is an
organization model element used to group a number of artifacts related to the design of a
use case, such as class diagrams of participating classes and subsystems, and sequence
diagrams which illustrate the flow of events of a use case, performed by a set of class
and subsystem instances.
The reason for separating the Use-Case Realization from its Use Case is that doing so
allows the Use Cases to be managed separately from their realizations. This is
particularly important for larger projects, or families of systems where the same use
cases may be designed differently in different products within the product family.
Consider the case of a family of telephone switches which have many use cases in common,
but which design and implement them differently according to product positioning,
performance and price.
For larger projects, separating the Use Case and its realization allows changes to the
design of the use case without affecting the baselined use case itself.
For each use case in the use-case model, there is a use-case realization in the design
model with a dependency (stereotyped <<realizes>>) to the use case.

A use-case realization in the design model can be traced to a use
case in the use-case model.
For each use-case realization there may be one or more class diagrams depicting its
participating classes. The figure below shows a class diagram for the realization of the Receive
Deposit Item use case. A class and its objects often participate in several
use-case realizations. It is important during design to coordinate all the requirements on
a class and its objects that different use-case realizations may have.

The use case Receive Deposit Item and its class diagram.
For each use-case realization there is one or more interaction diagrams depicting its
participating objects and their interactions. There are two types of interaction diagrams:
Sequence diagrams and collaboration diagrams. They express similar information, but show
it in different ways. Sequence diagrams show the explicit sequence of messages and are
better for real-time specifications and for complex scenarios, whereas collaboration
diagrams show the communication links between objects and are better for understanding all
of the effects on a given object and for algorithm design. See Guidelines:
Sequence Diagram and Guidelines: Collaboration Diagram
below for more information.
|