Writing Effective Use Case

December 08, 2011
User Rating: / 211
Views: 505,914
PDF Link Add comments
Edition: Professional or above (Edition comparison)

Use case analysis is a major technique used to find out the functional requirements of a software system. Use case, an important concept in use case analysis, represents an objective user wants to achieve with a system. It can be in text form, or be visualized in a use case diagram, like this:

use case diagram example

The beauty of use case is that it aims at describing a system from external usage viewpoint, rather than from developer's perspective. Therefore, writing use case can be the deciding factor for building a system that meets users' needs. In this tutorial, you will learn how to make use of various functions to write effective use case.

What is a Use Case?


A use case is an objective user(s) wants to achieve with a system. Use cases are named with verb or verb + noun phrase. It is usually short yet descriptive enough to describe a user objective. You are encouraged to use concrete and specific verbs and nouns to avoid ambiguity. Verbs like 'do' and 'perform' and nouns like 'data' and 'information' should be avoided whenever possible.

User performs use case to yield observable goal. Take online hotel reservation system as an example. "Make reservation" is undoubtedly a use case as this is what user wants to achieve with the system. The function of looking up a hotel on an online map can also be what a user needs. However, it is not a use case because it is only a part of the reservation process instead of an objective.

Some analysts try to make use of use case to describe user interface requirements (e.g. support multiple look & feel), performance requirements (e.g. load in background), deployment arrangement (e.g. ready server) and even implementation level (internal) requirements (e.g. construct database). All these are wrong and will not help you in identifying the objectives user want to achieve, thus the functions the system should deliver.

What Makes a Use Case "Effective"?

A use case can be a simple title that describe a user goal, such as "Make Reservation" in hotel reservation system. It is intended to provide an overview of what the user want without knowing how to achieve the goal. In order to identify how to achieve a goal, you can also document its scenario and steps (i.e. interaction) involved between user and system, with main flow, exceptional flow, conditional flow, etc.

use case scenario cartoon

In Visual Paradigm, there are some other features that helps you leverage the power of use case. You can use the use case grid to tidily list the use cases in model, and to model the other aspects of use case by elaborating use case with sub-diagram of another diagram type (e.g. use a sub-requirement diagram to model the additional functional and performance requirements).

sub diagram

Use Case Diagram

A use case diagram is a kind of Unified Modeling Language (UML) diagram defined by Object Management Group (OMG), created for use case analysis. Use case diagram provides a graphical overview of goals (represented by use cases) users (represented by actors) want to achieve by using the system (represented by system boundary but is often opt out in diagram). Use cases in a use case diagram can be organized and arranged according to their relevance, level of abstraction and impacts to users. They can be connected to show their dependency, inclusion and extension relationships. The main purpose of modeling use case with use case diagram is to establish a solid foundation of the system by identifying what the users want. Base on the result of analysis you can move forward to study how to fulfill those user needs.

use case diagram example

A use case diagram is mainly formed by actors, use cases and associations (connectors).

An actor is any person or external system that interacts with the system in achieving a user goal. There are two kinds of actor - primary and secondary. Primary actor is anyone or thing that interacts with the system to gain direct benefit. Secondary actor is anyone or thing that involve in achieving a use case yet, they do not gain direct benefit from the system. Very often, secondary actor is someone who assist the primary actor to achieve a use case.

Drawing Use Case Diagram in Visual Paradigm

In this tutorial, we will make use of an online hotel reservation system as an example to demonstrate how to write effective use case with Visual Paradigm. Let's begin by drawing a use case diagram. We will carry on with writing effective use case with the resulting design.

  1. Create a blank use case diagram by clicking UML in toolbar and selecting Use Case Diagram from the drop down menu.
  2. Enter the name of diagram: Hotel Reservation.
  3. Select Actor in the diagram toolbar. Click on the diagram to create an actor and name it Customer.
  4. A customer can make a hotel reservation, which is a use case of the system. Let's create a use case from the Customer actor. Move the mouse pointer over the Customer actor. Press on the Resource Catalog icon at top right and drag it out.
    create use case
  5. Select Association -> Use Case in Resource Catalog.
    select use case in resource catalog
  6. Release the mouse button to create the use case. Name it Make Reservation. The association between actor and use case indicates that the actor will interact with the system to achieve the use case associated.
  7. Complete the design to make it look like this:
    updated diagram

Capture Use Case Scenario with Flow of Events

A named use case depicts the 'what' aspect of a use case by telling you what the users need. The 'how' aspect of use case that explains how a user goal can be accomplished can be further analyzed by using flow of events, which is a technique for analyzing the interaction between actor and system in accomplishing a use case.

Flow of events constitutes a high level user-and-system conversation, which aims to find out the intents or actions of actor, known as inputs, and how system react to those actor inputs. You should be concise when deciding what to include in the events flow. Do not include how system process user's input internally, or even implementation detail like an insertion of database record. This is wrong as flow of events, in fact use case analysis, is aimed to view things from actor's perspective. Implementation details is not of flow of events' interest. Implementation detail can, however, be modeled with sequence diagram in form of sub-diagram of use case.

Let's write the flow of events of use case. We will describe some of the important skills in writing flow of events shortly. Now, we go back to our use case diagram first.

  1. Right click on Make Reservation and select Open Use Case Details... from the popup menu.
    open use case details
  2. Open the Flow of Events tab. The flow of events editor is formed by rows, known as steps. Each step represent an actor input or system response.
  3. Click on the first step and enter the first user input: Enter city, arrival, departure, room type and click Search.
    entered first step
  4. Use of the format functions to set the word Search in blue and bold, for emphasis.
    format flow of events step text
  5. Press Enter to complete this step. Step 2 will be created for you.
  6. Step 2 is about how the system react to user's input. You may start by writing "System...", but there is a better way to represent system response. Click on the first button in toolbar. Select System Response from the drop down menu.
    add system response to flow of events
  7. You can now enter the content of step 2: Display a list of hotels.
    enter system response text
  8. Add the following steps:
    User input System response
    Click on a hotel's logo to read its detail  
      Display hotel details
    Click Book Now  
      Display payment form
    Enter customer details, billing information and click Submit.  
      Validate billing information and display the result.
    flow of events steps entered
  9. There will be two possible results of validation here, either fail or success. If success, user will click Confirm to complete the reservation. If fail, user will need to enter the customer details and billing information again. To describe this kind of conditional flow, we can make use of the If, Else if, Else, While, For each, Loop until controls. Let's add an If condition now. Click on the first button in toolbar. Select If from the drop down menu.
    add if to flow of events
  10. Enter after if: Billing information is valid. Press Enter and enter what to do: Click Confirm Payment.
    enter if body in flow of events
  11. Move the mouse pointer to if and click on the down arrow button. Select Create Else.
    create else in flow of events
  12. Press Enter to move to the body of else clause.
  13. As mentioned, if the billing information is invalid, user is required to enter the customer details and billing information again. In other words, user need to re-preform step 7. Instead of re-writing the step, we can add a Jump control here to direct the flow back to step 7. Click on the first button in toolbar. Select Jump from the drop down menu.
    add jump to flow of events
  14. Click on the arrow in front of step 7 to select it.
    select step to jump to
  15. At the bottom of the flow of events editor you can find the Extension section. An extension represents a variation of use case being extended. The variation may be triggered when walking through the main flow, under certain condition. Let's take this use case as example. Let's say it normally takes one working day to process a reservation. However, there may be users who have urgent reservation needs and want to complete the process immediately after the submission of request. If the system is going to support this case, we can include the additional steps required as an extension to this use case. Click on step 9.1, where the extended flow will take place.
  16. Click on the first button in toolbar. Select Extension (Shift-Enter) from the drop down menu. This brings you to the extension section with step 9.1.a created.
  17. Enter in 9.1.a: Process rush reservation. Press Enter.
    enter extension body
  18. Enter the steps involved:
    User input System response
    Select Rush Reservation option  
      Display a customer code and telephone number. Ask user to call for a special arrangement.
    extension body entered.png

Something More - Creating Scenario-Based Wireframe

Wireframe is a sketch of user interface. It helps you represent the screen and screen flow of the system to be developed, early in requirements gathering. You can associate wireframes to steps in flow of events. This section will show you how to make use of the wireframe tool to add a wireframe to a step. For more details, please watch our video - How to Create Scenario-Based Wireframe?.

  1. Click on the first step.
  2. Move your mouse pointer to the green triangle on the right hand side. Then click on Define Wireframe.
  3. You are presented the help contents. Click on the close button to hide it.
  4. You see the gray pane appear on the right hand side? Click on it to select a kind of wireframe to create.
  5. In the popup window, select Website.
  6. Click New Website Wireframe. A new wireframe appear, with an empty browser window in it. It's where you can prepare mockup for the web site.
  7. Before we start adding different components into the Browser window, let's resize it to make it smaller. Click on the title of the Browser window.
  8. Once clicked, the resize handlers appear around the Browser window for you to adjust the window size manually. Let's try a more direct method. Right click on the title of the Browser and select Browser Size (1024 x 768) > 800 x 600 from the popup menu.
  9. Make use of the wireframe tools listed in the diagram toolbar to create a wireframe like this:
  10. Go back to the flow of events by clicking on the triangle button next to the step title.
    Finished, and you can see the thumbnail of your wireframe appear in the Flow of Events editor.

Related Links

  1. Wikipedia: Use case
  2. Wikipedia: Use-case analysis
  3. Wikipedia: Use-case model
  4. YouTube Video: How to Create Use Case Diagram from Business Process Diagram
  5. YouTube Video: Elaborate Use Cases with Sub-diagram
  6. YouTube Video: How to List Out All Use Cases in Your Project


  1. Hotel-Reservation.vpp (Complete project)

Rate this Article

Click on one of the stars below to rate this article from 1 (lowest) to 5 (highest).

You may be interested in

  1. Data Flow Diagram (DFD) Tutorial
  2. Draw Entity Relationship Diagram (ERD)
  3. Data Flow Diagram with Examples - Food Ordering System
  4. Perform UML Modeling in NetBeans
  5. How to Organize Diagrams with Package?
Tags of this article:

Comments (20)

written by sebastian on February 11, 2010

ok, am hooked.How much is it going to cost me to purchase the full software?Are there more tutorials that i can do so long to get used to the application? Please Please Please reply.

written by Angus Chan on February 11, 2010

The cost of the software is USD 699 or 838.5 with one year maintenance.
Visual Paradigm for UML Professional Edition

You can get attend our multimedia training course in VP Training Center

written by Graham on March 31, 2010

I downloaded the sales_order_system case study but can not find the vpp to open it. How should I access this?

Excellent tutorial.

written by Angus Chan on March 31, 2010

Please download the software in following link:

written by rob on April 27, 2011

Good morning,
1) I have many UATs (User Acceptance Test) already written in office excel
2) I would like to IMPORT these files into Visual Paradigm in order to get them into the use case detail screen, flow event

Is this possible?

I have tried to use Interoperability, Import, Excel, importing the file in attach --> but I get "error"


written by Angus Chan on April 28, 2011

Currently we don't support import Excel to Use Case Flow of Events.
Please contact support team about this feature

written by Gustavo Salazar Longas on May 2, 2011

Me gustaría mucho aprender de todos ustedes. Uso el español por es muy exacto para mí. Puedo elegir todas las opciones. Sin embargo el Ingles tambien personaliza mi estado en el sistema para modelar y hacer aplicaciones de los casos de uso sin necesidad de Descargar los programs. Yo trabajo con las herramientas de windows para configurar los soportes de UML pra hacer el modelado especial en html y hacer las capturas en pantalla. ¿Es posible?

written by mehdi on May 4, 2011

I want to know if it is possible to write from right to left for Arabic purposes, specially for use case specification part.

written by mehdi on May 4, 2011

I want to know if it is possible to write from right to left for Arabic purposes, specially for use case specification part.

written by Marena Markasović on November 13, 2011

I just want to ask i download free community edition and try to make this Actor Grid but i dont have Create Actor button. I have the latest version so i want to know is this because i dont have full softver or? Thanks

written by Marena Markasović on November 13, 2011

I just want to ask i download free community edition and try to make this Actor Grid but i dont have Create Actor button. I have the latest version so i want to know is this because i dont have full softver or? Thanks

written by Marena Markasović on November 13, 2011

I just want to ask i download free community edition and try to make this Actor Grid but i dont have Create Actor button. I have the latest version so i want to know is this because i dont have full softver or? Thanks

written by Jick Yeung on November 14, 2011

Hi Marena,

The button "Create Actor" has been renamed to "New Actor". Yet, the icon's appearance has no change at all. You can find it easily in the editor. If you cannot find the button, please submit a ticket with a screenshot. You can submit ticket at:

Best regards,
Jick Yeung

written by ajinkyabendre777 on May 17, 2012

Excellent information.can i get the detail tutorial of how to find use cases, actors and all relation between them from textual representation of requirment document.

written by Jeremy Vonledebur on May 13, 2013

When I enter actors into the Flow of Events from the right click menu a red squiggly line appears. Can you explain why?

written by Jick Yeung (VP) on May 14, 2013

Hi Jeremy,

Sorry about the wrong rendering of underline (for spell checking). Our engineers are now fixing the problem. When the fix is ready, I will post here.

written by Jick Yeung (VP) on May 30, 2013

Hi Jeremy,

The issue has been fixed. You can obtain the fix by updating to the latest patch build. Here you can find the instruction:

written by Simon on October 27, 2013

Steps clear, but comes to abrupt halt. The written English is poor, which makes reading the text unpleasant: it is missing indefinite and definite articles ('a'/'an); it fails to conjugate verbs properly, e.g. putting '(e)s' on the end of verbs; it fails to use plural nouns instead of singular where appropriate.

written by Jasmine on February 14, 2014

Excellent Information. I have one question. When I right click on the use case to write flow of events, I'm not getting those options (open use case details) :(
I'm not sure what I'm doing wrong.

written by Jick Yeung (VP) on February 19, 2014

Hi Jasmine,

Thank you for your message. May I know the version of VP-UML/Agilian you use?

Write comment



Enter the calculation result

security code