All You Need to Know About Use Case Modeling

A use case describes how a user uses a system to accomplish a particular goal. A use case diagram consists of the system, the related use cases and actors and relates these to each other to visualize: what is being described? (system), who is using the system? (actors) and what do the actors want to achieve? (use cases), thus, use cases help ensure that the correct system is developed by capturing the requirements from the user’s point of view.

Online Store Use Case Diagram

Origin of Use Case

Purpose of Use Case Diagram

  • Specify the context of a system
  • Capture the requirements of a system
  • Validate a systems architecture
  • Drive implementation and generate test cases
  • Developed by analysts together with domain experts

What is a Use Case Diagram in UML?

While a use case itself might drill into a lot of detail (such as, flow of events and scenarios) about every possibility, a use-case diagram can help provide a higher-level view of the system, providing the simplified and graphical representation of what the system must actually do.

A use case (or set of use cases) has these characteristics:

  1. Organizes functional requirements
  2. Models the goals of system/actor (user) interactions
  3. Describes one main flow of events (main scenarios) and possibly other exceptional flows (alternatives), also called paths or user scenarios

Use Case Diagram Notations

Actor

Use Case

Relationship

System Boundary

Benefits of Use Case Diagram

  1. Because, use cases are easy to understand and provide an excellent way for communicating with customers and users as they are written in natural language.
  2. Use cases can help manage the complexity of large projects by partitioning the problem into major user features (i.e., use cases) and by specifying applications from the users’ perspective.
  3. A use case scenario, often represented by a sequence diagram, involves the collaboration of multiple objects and classes, use cases help identify the messages (operations and the information or data required — parameters) that glue the objects and classes together.
  4. Use cases provide a good basis to link between the verification of the higher-level models (i.e. interaction between actors and a set of collaborative objects), and subsequently, for the validation of the functional requirements (i.e. blueprint of white-box test).
  5. Use case driven approach provides an traceable links for project tracking in which the key development activities such as the use cases implemented, tested, and delivered fulfilling the goals and objectives from the user point of views.

How to Draw a Use Case Diagram?

  1. Identify the Actors (role of users) of the system.
  2. For each category of users, identify all roles played by the users relevant to the system.
  3. Identify what are the users required the system to be performed to achieve these goals.
  4. Create use cases for every goal.
  5. Structure the use cases.
  6. Prioritize, review, estimate and validate the users.

Note that: to make use case approach more “Agile”, do not detail all use cases, but prioritize them in your product backlog, you should refine the use case in different level of details according to the development phase with just-in-time and just-enough manner.

You can also:

  1. Draw packages for logical categorization of use cases into related subsystems.

Structuring Use Cases

<<include>> Use Case

<<extend>> Use Case

Abstract and generalized Use Case

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:

Business Use Case

How to Identify Actors

  • 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?

How to Identify Use Cases?

  • What functions 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 about chances in the internal state?
  • Are there any external events the system must know about? What actor informs the system of those events?

Use Case Diagram Tips

  • Always structure and organize the use case diagram from the perspective of actors.
  • Use cases should start off simple and at the highest view possible. Only then can they be refined and detailed further.
  • Use case diagrams are based upon functionality and thus should focus on the “what” and not the “how”.

Use Case Levels of Details

Alastair Cockburn in Writing Effective Use Cases gives us an easy way to visualize different levels of goal level by thinking in terms of the sea:

Note that:

  • While a use case itself might drill into a lot of detail about every possibility, a use-case diagram often be used for a higher-level view of the system as blueprints.
  • It is beneficial to write use cases at a coarser level of granularity with less detail when it’s not required.

I hope you can answer “what is use case diagram” now and can apply use case in your project. If you want to learn more about other UML diagram types, please check the UML guide: Overview of the 14 UML Diagram Types.

Just showing the use case diagram in UML notation is not enough. Each use case accompanied by text explaining the purpose of the use case as well as what functionality is accomplished when a use case is executed.

The use case specification is typically created in analysis and design phase in an iterative manner.

  • At first, only a brief description of the steps needed to carry out the normal flow of the use case (i.e., what functionality is provided by the use case) is written.
  • As analysis progresses, the steps are fleshed out to add more detail.
  • Finally, the exceptional flows are added to the use case
  • Each project can adopt a standard use case template for the creation of the use case specification.

Use Case vs Use Case Specification

Use Case (task — a customer want to perform) may be:

  • Interactive — A system use case describes an actor’s interaction with a system in pursuit of the defined business goal
  • Manual — A sequence of actions performed by an actor
  • Automated — A sequence of steps performed by a program or script

Characteristics of Use Cases

  • Only one goal
  • A single starting point
  • A single ending point
  • Multiple paths for getting from start to finish
  • i.e. Specify behavior for a variety of possible conditions
  • Each conditions may require specific action(s)

For Example — Customer pays bill:

There are multiple paths to achieve the goal:

  • Telephone payment
  • By mail
  • In person
  • by check
  • by cash, etc.

A path that does not lead to the goal:

  • Credit card is declined

Agile Use Case Approach

Just-in-Time and Just-Enough

  • Summary: General descriptions and sweeping overviews of system functionality or business processes.
  • User Level : Task-related descriptions of users and how they interact with the system; descriptions of a specific business process. User-Level use cases are usually considered to be at the level of task that is the main work of the user.
  • Sub-function: Descriptions of lower-level activities that are used to complete subparts of a core use case.

Note: Some use cases may be sufficiently specified up to level II. You stop when sufficient detail is achieved using just-in-time and just-enough manner.

A Detailed Use Case Specification

Use Case Template — ATM withdraw case example

Use Case Specification — Visual Paradigm
Use Case Specification — Basic Path
Use Case Specification — alternative Paths
Use Case Specification — Business Rules
Use Case Specification — Non-Functional Requirements

Create Simple Use Case Diagrams

You Can also use Visual Paradigm Community Edition, it is also free for creating use case for various platforms.

Perform Formal Use Case Modeling and Analysis

If you want to perform and develop use case modeling you are recommended to use Visual Paradigm paid version which enables you to develop a proper and full use case specification as mentioned above.

Do-it-Yourself now with Visual Paradigm Online

Broadcasting System

ATM

Use Case Structuring Template

Structuring Use Cases with Stereotype

Expressing Multiple Projects Using System Boundaries

Online Examination System

Passenger Service

Software Development Management

Carpark System

Order Process System

Generalization Use Case

Include and Extend Use Cases

Website (Structuring use cases with extend and include use case)

Use Case Diagram Template

External System as Actor

Bank ATM

IT professional