Use case analysis is a widely used technique used to identify the business goals to be accomplished by a software system. Use case, an important concept in use case analysis, represents a unique objective that the business stakeholders want to achieve. It can be in text form, or be visualized in a use case diagram, like this:
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 write effective use case.
Use cases are business goals. They are named with a short verb or verb + noun phrase. You should 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.
Theoretically, the end users will perform actions that are supported by the system to achieve their ultimate goals, as identified in use case analysis. Take online hotel reservation system as an example. "Make reservation" is undoubtedly a business goal, thus a use case. The function to look-up a hotel on an online map can also be what a user needs. However, it is not a use case because the action itself does not yield any observable goal.
Some analysts try to make use of use case to describe requirements (e.g. support multiple look & feel), deployment arrangement (e.g. ready server) and even implementation level (internal) requirements (e.g. construct database). All these are wrong. and may lead to bad or even wrong system being built.
A use case is typically a simple title that describes a user goal, such as "Make Reservation" in hotel reservation system. Use case analysis is intended to provide an overview of business goals without knowing the system requirements in detail. In order to identify real system requirements, you can make use of user story. A user story is a brief statement that describe a particular user problem or concern. While a use case represents a goal, user stories can be created under use cases to record and manage the problems associated with different business goals. The separation of use cases and user stories provide you with a clear division of what the business stakeholders want, what the front-line staskeholders need and what the system has to support.
In Visual Paradigm, there are some other features that helps you leverage the power of use case. You can create a use case grid to 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-SysML requirement diagram to model the additional functional and performance requirements).
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.
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.
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.
While use case is the business goal of an IT system to be developed, user story represents a user problem or concern captured by the analyst and front-line stakeholders during the detailed discussion of a use case. No doubt that, all captured user stories aim to fulfill the business goal of the IT system.
A user story tells you what the end user wants to achieve by first identifying their problem. Once you have found out the problems, you can start looking for a solution. The user story scenario tool enables you to outline the interactions between actor and system in solving a problem as described under a user story. You can use this tool to find out the desired system behavior with user.
User story scenario constitutes a high level user-and-system conversation, which aims to find out the intents or actions of actor 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 user story, in fact use case analysis, is aimed to identify requirements from end user's point of view. Implementation details can, however, be modeled with UML sequence diagram in form of sub-diagram of user story.
Let's write the scenario of a user story.
|User input||System response|
|Click on a hotel's logo to read its detail|
|Display hotel details|
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 scenario. This section will show you how to make use of the wireframe tool to add a wireframe to a step.