Use Cases

Printer-friendly version

Use Cases

A use case describes an objective that a primary actor wants to accomplish and the sequence of interactions between the primary actor and a system such that the primary actor's objective is successfully achieved. Use cases are not functional requirements and do not define internal system processes that would not be visible to the user in their interaction with the system. Use cases are about describing system behavior from the perspective of the user and as such can be considered user requirements.

Use cases shift the perspective of requirements development to discussing what users need to accomplish, in contrast to the traditional elicitation approach of asking users what they want the system to do.

Components of a Use Case

There is flexibility in how detailed a use case needs to be and what sections should be included.

Here is a list of common sections found in many use case templates:

Section Description
Name A name that succinctly states the user task in the form of “verb + object” such as “Place and Order”
ID Identifier (e.g. "Project X UC-1a") for the use case so it can be referenced in other documentation
Point of Contact Individual to contact with questions regarding the use case
Version Versioning use case documents is highly recommended since use cases have a tendency to evolve over the course of a project
Actors List actors, people or things outside the system that either acts on the system (primary actors) or is acted on by the system (secondary actors)
Goal The goal briefly describes what the user intends to achieve with this use case
Description/Summary Give a summary of the use case to capture the essence of the use case (no longer than a page)
Preconditions Here we state any assumptions about the state of the system that must be met for the trigger (below) to initiate the use case
Postconditions Here we give any conditions that will be true of the state of the system after the use case has been successfully completed
Triggers Here we describe in detail the event or events that brings about the execution of this use case
Basic Flow (aka Normal Flow) Often referred to as the primary scenario or course of events. In the basic flow we describe the flow that would be followed if the use case where to follow its main plot from start to end
Alternate Flows Here we give any alternate flows that might occur which still lead to a successful completion of the task and satisfy the use case’s post-conditions
Exception Flows Here we describe how the system responds to conditions that prevent the task from succeeding. Use case post-conditions may not be satisfied at completion of Exception Flow
Activity Diagram Here a diagram is given to show the flow of events that surrounds the use case
Priority How important is this task to implement? Useful to help manage project priorities and dependencies
Assumptions The normal and alternate flows probably make some assumptions; this is a good place to state them.
Notes There is always some piece of information that is required that has no other place to go. This is the place for that information.

Example Use Cases

Use Case Templates

Here are two use case templates we have had success with