What is a Use Case?
A use case is a methodology used in system analysis to identify, clarify, and organize system requirements.
Use Case Diagram
A use case diagram models different types of users interact with the system to solve a problem. As such, it describes the goals of the users, the interactions between the users and the system, and the required behavior of the system in satisfying these goals.
Use cases define interactions between external actors and the system to attain particular goals. A use case diagram contains four main components
(Edit the Use Case Diagram Example Above)
A use-case diagram consists of a number of model elements. The most important model elements are:
Actor
Actors are usually individuals involved with the system defined according to their roles. The actor can be a human or other external system.
Use Case
A use case describes how actors uses a system to accomplish a particular goal. Use cases are typically initiated by a user to fulfill goals describing the activities and variants involved in attaining the goal.
Relationship
The relationships between and among the actors and the use cases.
System Boundary
The system boundary defines the system of interest in relation to the world around it.
Use Case Characteristics
A use case (or set of use cases) has these characteristics:
- Organizes functional requirements
- Models the goals of system/actor (user) interactions
- Records paths (called scenarios) from trigger events to goals
- Describes one main flow of events (also called a basic course of action), and possibly other ones, called exceptional flows of events (also called alternate courses of action)
- Is multi-level, so that one use case can use the functionality of another one.
Use Case and Use Case Scenario?
The use case is made up of a set of possible sequences of interactions between systems and users in a particular environment and related to a particular goal.
What Inside a Use Case?
It consists of a group of elements (for example, classes and interfaces) that can be used together in a way that will have an effect larger than the sum of the separate elements combined. The use case should contain all system activities that have significance to the users.
Type of Use Cases
Essential Use Cases are expressed in an ideal form that remains relatively free of technology and implementation details; design decisions are deferred and abstracted, especially those related to the user interface.
Concrete or Real Use Case concretely describes the process in terms of its real current design, committed to specific input and output technologies and so on. When a user interface is involved, they often show screen shots and discuss interaction with the widgets.
Abstract Use Case is not complete and has no actor that initiates it but is used by another use cases.
Structuring Use Cases
UML defines three stereotypes of association between Use Cases:
<<include>> Use Case
The time to use the <<include>> relationship is after you have completed the first cut description of all your main Use Cases. You can now look at the Use Cases and identify common sequences of user-system interaction.
<<extend>> Use Case
An extending use case is, effectively, an alternate course of the base use case. The <<extend>> use case accomplishes this by conceptually inserting additional action sequences into the base use-case sequence.
Abstract and generalized Use Case
The general use case is abstract. It can not be instantiated, as it contains incomplete information. The title of an abstract use case is shown in italics.
Example
This example depicts a model of several business use cases (goals) which represents the interactions between a restaurant (the business system) and its primary actors.
After the base use cases have been identified in the first cut, perhaps we could further structuring those use case with <<extend>> and <<include>> use cases in the second round touch up as shown in the Figure below:
(Edit the Use Case Diagram Example Above)
Structuring Use Cases with Packages
The use-case diagram may contain packages that are used to structure use cases to simplify analysis, development and maintenance of a system .
(Edit the Use Case Diagram Example Above)
Use Case Model vs Use Case Diagram
Much of the use-case model is in fact textual, with the text captured in the Use-Case Specifications that are associated with each use-case model element. These specifications describe the flow of events of the use case.
The use-case model serves as a unifying thread throughout system development. It is used as the primary specification of the functional requirements for the system, as the basis for analysis and design, as an input to iteration planning, as the basis of defining test cases and as the basis for user documentation.
Example: Use Case Description
- To write the content of a use case, you begin by picking one of the scenarios as the main scenario.
- You start the body of the use case by writing the main success scenario as a sequence of numbered steps.
- You then take the other scenarios and write them as extensions. Extensions can be successes, as in 3a below or failure, as in 6b below.
- Each use case has a primary actor, which calls on the system to deliver a service.
- Each step in a use case is an element of the interaction between the user and the system.
- A shared truck of activities in a use case may be reused by another use case through <include> use case.
- In UML terms, we say that the first use case includes the second.
Buy a Product (Taken from UML Distilled p101)
Main Success Scenario:
- Customer browses catalog and selects item to by.
- Customer goes to the check out.
- Customer fills in shipping information
- System presents full pricing information
- Customer fills in credit card information
- system authorizes purchase
- System confirms sale
- System sends confirming email to customer
Extensions
3a: Customer is a regular customer
.1 System displays current shipping information
.2 Customer may accept or override
6a: System fails to authorize credit purchases
.1 Customer may reenter credit card information or may cancel
Use Case Description Illustrated by Visual Paradigm
Flow of Events and Extension
- Records paths (called scenarios) from trigger events to goals
Use Case and UML Modeling
Use cases can be employed during several stages of software development, such as planning system requirements, validating design, testing software, and creating an outline for online help and user manuals. So what is the relationship of use case diagram with other UML diagrams in SDLC?
The choice of model is important
The choice of what models to create has a profound influence on how a problem is attacked and how a solution is shaped. We need to choose your models well.
- The right models will highlight the most critical development problems.
- Wrong models will mislead you, causing you to focus on irrelevant issues.
For Example: We can use different types of diagrams for different phases in software development.
References
- Overview of the 14 UML Diagram Types
- What is Class Diagram?
- What is Component Diagram?
- What is Deployment Diagram?
- What is Object Diagram?
- What is Package Diagram?
- What is Composite Structure Diagram?
- What is Profile Diagram?
- What is Use Case Diagram?
- What is Activity Diagram?
- What is State Machine Diagram?
- What is Sequence Diagram?
- What is Communication Diagram?
- What is Interaction Overview Diagram?
- What is Timing Diagram
- Describes one main flow of events (also called a basic course of action), and possibly other ones, called exceptional flows of events (also called alternate courses of action)
- Is multi-level, so that one use case can use the functionality of another one.