What Are Use-cases?
Use-cases are a scenario-based technique for requirements elicitation which was first introduced in the Objective method (Jacobsen, et al., 1993). They have now become a fundamental feature of the UML notation for describing object-oriented system models. In their simplest form, a use-case identifies the type of interaction and the actors involved. For example, the Figure shows the high-level use-case of the article printing facility in LIBSYS described in Figure
The figure illustrates the essentials of the use-case notation. Actors in the process are represented as stick figures, and each class of interaction is represented as a named ellipse. The set of use-cases represents all of the possible interactions to be represented in the system requirements. Develops the LIBSYS example and shows other use-cases in that environment.
There is sometimes confusion about whether a use-case is a scenario on its own or, as suggested by Fowler (Fowler and Scott, 1997), a use-case encapsulates a set of scenarios, and each scenario is a single thread through the use-case. If a scenario includes multiple threads, there would be a scenario for the normal interaction plus scenarios for each possible exception.
Use-cases identify individual interactions with the system. They can be documented with text or linked to UML models that develop the scenario in more detail. Sequence diagrams (introduced in Chapter 6) are often used to add information to the use-case. These sequence diagrams show the actors involved in the interaction, the objects they interact with, and the operations associated with these objects.
As an illustration of this the interactions involved in using LIBSYS for downloading and printing an article. There are four objects of classes-Article, Form, the Workspace, and the Printer- involved in this interaction. The sequence of actions is from top to bottom, and the labels on the arrows between the actors and objects indicate the names of operations.
Essentially, a user request for an article triggers a request for a copyright form. Once the user has completed the form, the article is downloaded and sent to the printer. Once printing is complete, the article is deleted from the LIBSYS workspace. The UML is a de facto standard for object-oriented modeling, so use-cases and use-case-based elicitation are increasingly used for requirements elicitation. Other types of UML models are discussed in Chapter 8, which covers system modeling, and in Chapter 14, which covers object-oriented design.
Scenarios and use-cases are effective techniques for eliciting requirements for interactor viewpoints, where each type of interaction can be represented as a use-case. They can also be used in conjunction with some indirect viewpoints where these viewpoints receive some results (such as a management report) from the system. However, because they focus on interactions, they are not as effective for eliciting constraints or high-level business and non-functional requirements from indirect viewpoints or for discovering domain requirements.