next up previous
Next: Essential Use Cases Up: Background Previous: Background

Use Cases

Jacobson defines a use case in his 1992 book as ``a behaviorally related sequence of transactions in a dialogue with the system''[17]. A more recent definition for the Rational Unified Process shows little real change, saying a use case is ``a description of a set or sequence of actions, including variants, that a system performs that yields an observable result of value to a particular actor''[16].

The general idea of a use case is to represent intended sequences of interaction between a system (even if not yet implemented) and the world outside that system. This idea is very powerful, for several reasons.

In the early stages of development, use cases help to focus on interactions as a way of eliciting desirable system behavior, and so help capture requirements and determine specifications. This technique is effective because interactions can be described in forms very easy for people to recall or imagine, such as narratives or dialogues. This is especially useful when involving a wide range of people in requirements gathering and analysis, such as end-users, background stake-holders, and others with no direct experience or role in actual system development.

In the later stages of development, use cases help again because of the focus on interactions. The interactions can now be regarded as the embodiment of specifications that the system must meet. In design and implementation, a structure must be determined and created that will meet these specifications. In review and testing, use cases can be used to drive system behavior for examination. Their guiding role in design, implementation, and review also assists in providing traceability.

Use cases also lead to a useful partitioning of requirements. This happens naturally, because use cases are based on sequences of interaction, and desirable interactions typically follow a structure of coherent progression, on a limited scale, toward a goal or sub-goal. This partitioning then allows organization by grouping, filtering, prioritizing, and so on, and is helpful in overall management throughout development.


next up previous
Next: Essential Use Cases Up: Background Previous: Background

Robert Biddle
Sun May 20 12:22:36 NZST 2001