Understanding Use case
- A use case diagram is a visual representation of the relationships between actors and use cases together that documents the system’s intended behavior.
- Arrows and lines are draw between actors and use cases and between use cases to show their relationships. The default relationship between an actor and a use case is the «communication» relationship, denoted by a line with a small circle.
Identify the Actors
- An actor is a person or other entity external to the software system being specified who interacts with the system and performs behavior (use cases) to accomplish tasks.
- Different actors often correspond to different behaviors, or roles, identified from the customer community that will use the product.
- Required to name the actor(s) that will be performing the use case.
- The following questions can help you identify the actors of your system
- Who uses the system?
- Who installs the system?
- Who starts up the system?
- Who maintains the system?
- Who shuts down the system?
- What other systems use this system?
- Who gets information from this system?
- Who provides information to the system?
- Does anything happen automatically at a present time?
Identify the Use case
- Use case reflect the tasks the user needs to be able to accomplish using the system.
- For example: What functionality will the actor want from the system?
- Does the system store information?
- What actors will create, read, update or delete this information?
- Does the system need to notify an actor?
- Are there any external events the system must know about?
- What actor informs the system of those events?
Use Case Relationships
- Default relationship is the communication relationship.
- The communication relationship indicates that one of these entities initiated communication or invoked request of the other.
- Obviously, an actor communicates with use cases because actors want measurable results.
- Use cases may not communicate with other use cases. This happens when a use case needs information from or to initiate action of another use case.
- When a line or an arrow is draw on a diagram and there is no label on the arrow, it is, by default, a communication relationship.
- Identify the event/action that initiates the use case. This could be an external business event or system event that causes the use case to begin, or it could be the first step in the normal flow.
- List any activities that must take place, or any conditions that must be true, before the use case can be started.
- User’s identity has been authenticated.
- User’s computer has sufficient free memory available to launch task.
- List the state of the system at the conclusion of the use case execution.
- Indicate the relative priority of implementing the functionality required to allow this use case to be executed
Frequency of use
- Estimate the number of times this use case will be performed by the actors per some appropriate unit of time.
Course of Action
- Provide a detailed description of the user actions and system responses that will take place during execution of the use case under normal, expected conditions. This dialog sequence will ultimately lead to accomplishing the goal stated to the requirement.
- Actions may be written as an answer to the hypothetical question, “How do I <accomplish the task stated in the use case name>?”
- Numbered list of actions performed by the actor, alternating with responses provided by the system.
- Document other, legitimate usage scenarios that can take place within this use case separately in this section. State the alternative course, and describe any differences in the sequence of steps that take place.
- List any other use cases that are included (“called”) by this use case. Common functionality that appears in multiple use cases can be split out into a separate use case that is included by the ones that need that common functionality.
Exceptions / Extended
- Describe any anticipated error conditions that could occur during execution of the use case, and define how the system is to respond to those conditions. Also, describe how the system is to respond if the use case execution fails for some unanticipated reason.
- List any assumptions that were made in the analysis that led to accepting this use case into the product description and writing the use case description.
Identifying the Boundary
- It is important to clearly define the boundary of your system. Things inside the boundary of the system are things you need to worry about creating. In a UML use case diagram, the system boundary is denoted by a rectangle.
Creating Use cases from Requirements
- Identify all the actors of the system.
- Think about all the functionality that the actors want from the system.
- Consider what the various functions the actors are asking have in common.
- Abstract these as «include» use cases.
- Avoid the «extend» relationship because it can make the use cases overly complex.
- A picture is worth a thousand words. Use case diagrams help to visualize what the system has to do. But, more importantly, the use case flow-of-events gets much more specific about what the customer wants – the variations and the exceptions.