Guideline: Find and Outline Actors and Use Cases
This guideline describes how to find and outline actors and use cases.
Relationships
Main Description

Finding Actors

Find the external entities with which the system must interact. Candidates include groups of users who will require help from the system to perform their tasks and execute the systems's (primary or secondary) functions, as well as exteranl hardware, software, and systems with which the system under development will interact.

Define each candidate actor by naming it and writing a brief description that includes the actor's area of responsibility, and the goals that the actor will attempt to accomplish when using the system.

Eliminate those candidate actors who do not have any goals.

Useful questions in identifying actors include:

  • Who will supply, use or remove information from the system?
  • Who will use the system?
  • Who is interested in a certain feature or service provided by the system?
  • Who will support and maintain the system?
  • What are the systems external resources?
  • What other systems will need to interact with the system under development?

Review the list of stakeholders captured in the Vision artifact.  Not all stakeholders will be actors (i.e. they will not all interact directly with the system under development), but this list of stakeholders is a useful input to identify candidate actors.

Finding Use Cases

The best way to find use cases is to consider what each actor requires of the system. For each actor, human or not, ask:

  • What are the goals that the actor will attempt to accomplish with the system?
  • What are the primary tasks the actor wants the system to perform?
  • Will the actor create, store, change, remove, or read data in the system?
  • Will the actor need to inform the system about sudden, external changes?
  • Does the actor need to be informed about certain occurrences in the system?
  • Will the actor perform a system start-up or shutdown?

Understanding how the target organization works and how this information system might be incorporated into existing operations gives an idea of system's surroundings -- other candidate use cases may come from there.

 

Give a unique name and brief description that clearly describe the goals for each use case.  If the candidate use case has not goals, ask yourself why it exists, and either identify a goal or eliminate the use case.

 

Without going into details, write a first draft of the flow of events of the use cases identified as being of high priority.  Initially, write a simple step-by-step description of the basic flow of the use case.  The step-by-step description is a simple ordered list of interactions between the actor and the system.  For example, the "Withdraw Cash" use case of an Automated Teller Machine would have a step-by-step description of the basic flow of the form:

  1. The customer inserts a bank card
  2. The system validates the card and prompts for a PIN
  3. The customer enters a PIN
  4. The system validates the PIN and prompts the customer to select an action
  5. The customer selects "Withdraw Cash"
  6. The system prompts for an account
  7. The customer selects the chequing account
  8. The system prompts for an amount
  9. The customer enters the amount
  10. The system validates the amount (sufficient funds) and issues cash and receipt
  11. The customer takes the cash and receipt
  12. The use case ends

As you are creating this step-by-step desciption of the basic flow of events, alternative and exceptional flows may be identified (for example, what happens if the customer enters an invalid PIN).  Capture the name and possibly a brief description of each alternate flow identified.

 

Representing relationship between Actors and Use Cases

 

The relationship between actors and use cases should be captured.  There are several ways to do this.  If a Use-Case model is being used on the project, Use-Case diagrams can be used to show how actors and use cases relate to each other.  Refer to Guideline: Use-Case Model for more information.

If the project is not using a Use-Case model, each use case should identify the associated primary and secondary actors.

More Information
Concepts