home                                                                                                                                                 home

UML Use Cases

Use cases are a notation for describing software behaviour. To do this, they define a goal-oriented set of interactions between external software users    (actors) and the system under construction. Actors are parties outside the system that interact with the system (see http://www.omg.org/technology/documents/formal/uml.htm ). An actor may be a class of users, roles users can play, or other systems. Cockburn (2001) distinguishes between primary and secondary actors. A primary actor is one having a goal requiring the assistance of the system. A secondary actor is one from which the system needs assistance, or one that helps the primary actor to achieve its goal with the use of the system.

A use case is initiated by a user with a particular goal in mind, and completes successfully when that goal is satisfied. It describes the sequence of interactions between actors and the system necessary to deliver the service that satisfies the goal. It also includes possible variants of this sequence, e.g., alternative sequences that may also satisfy the goal, as well as sequences that may lead to failure to complete the service because of exceptional behaviour, error handling, etc. The system's behaviour is described as interactions with external users, hence giving the view of how users perceive the system's desired functionality.

Thus, use cases capture who (actor) does what (interaction) with the system, for what purpose (goal), without dealing with system internals. A complete set of use cases specifies all the different ways to use the system, and therefore defines all behaviour required of the system, bounding the scope of the system.

Generally, use case steps are written in an easy-to-understand structured narrative using the vocabulary of the domain. This is engaging for users who can easily follow and validate the use cases, and the accessibility encourages users to be actively involved in defining the requirements.

Scenarios

A scenario is an instance of a use case, and represents a single path through the use case. Thus, one may construct a scenario for the main flow through the use case, and other scenarios for each possible variation of flow through the use case (e.g., triggered by options, error conditions, security breaches, etc.). Scenarios may be depicted using sequence diagrams. But....

 

home                                                                                                                                                                                                 home