Use case

From Academic Kids

In software engineering, a use case is a technique for capturing the potential requirements of a new system or software change. Each use case provides one or more scenarios that convey how the system should interact with the end user or another system to achieve a specific business goal. Use cases typically avoid technical jargon, preferring instead the language of the end user or domain expert. Use cases are often co-authored by software developers and end users.

In 1986, Ivar Jacobson, an important contributor to the UML and Unified Process, originated the concept of the use case. Jacobson’s idea was influential and seminal. Numerous contributions have been made to the subject since then, but the most significant, influential and comprehensive, in terms of defining what use cases are and how to write them effectively, was provided by Alistair Cockburn, in his 2000 book Writing Effective Use Cases.

During the 1990s use cases have rapidly become the most common practice for capturing functional requirements. This is especially the case within the object-oriented community where they originated, but their applicability is not restricted to object-oriented systems, because use cases are not object orientated in nature.


Scope and goals of a use case

Each use case focuses on describing how to achieve a single business goal or task. From a traditional software engineering perspective a use case describes just one feature of the system. For most software projects this means that multiple, perhaps dozens, of use cases are needed to fully specify the new system. The degree of formality of a particular software project and the stage of the project will influence the level of detail required in each use case.

A use case defines the interactions between external actors and the system under consideration to accomplish a business goal. Actors are parties outside the system that interact with the system; an actor can be a class of users, roles users can play, or other systems.

Use cases treat the system as a "black box", and the interactions with system, including system responses, are as perceived from outside the system. This is deliberate policy, because it simplifies the description of requirements, and avoids the trap of making assumptions about how this functionality will be accomplished.

A use case should:

  • describe a business task to serve a business goal
  • have no implementation-specific language
  • be at the appropriate level of detail
  • be short enough to implement by one software developer in single release.

Use Case diagrams

An UML Use case diagram

Many people are introduced to use cases via UML, which defines a graphical notation for representing use cases. UML does not define standards for the written format to describe use cases, and thus many people have the misapprehension that this graphical notation defines the nature of a use case; however, a graphical notation can only give the simplest overview of a use case or set of use cases.

The UML standard is the most popular standard for graphical notation of use cases. However, there are a number of alternative standards.

Writing a use case

Use case templates

There is no agreed template for documenting detailed or fully dressed use cases. There are a number of competing schemes and individuals are encouraged to use templates that work for them or the project they are on. Standardization for each project is more important than the detail of a specific template. However, there is considerable agreement about the core sections; and so beneath different terminology and order there is an underlying similarity between most use cases.

Typical sections include:

  • Use Case Name
  • Iteration
  • Summary
  • Preconditions
  • Triggers
  • Basic course of events
  • Alternative paths
  • Postconditions
  • Business rules
  • Notes
  • Author and date

Different templates often have additional sections, e.g. assumptions, exceptions, recommendations, technical requirements. There may also be industry specific sections.

Use case name

The use case name provides a unique identifier for the use case. It should be written in the verb/noun format and should be sufficient for the end user to understand what the use case is about. Goal-driven use case analysis will name the use cases according to the Actor's goals thus ensuring use cases are strongly user centric.


Often an iteration section is needed to inform the reader the stage a use case has reached. The initial use case developed for business analysis and scoping may well be very different to evolved version of that use case when the software is being developed. Older versions of the use case may still be current documents, because they may be valuable to different user groups.


The summary section is used to capture the essence of the scenario before the main body is complete. It provides a quick overview which is intended to save the reader from having to read the full contents of a use case to understand what the use case is about.


A preconditions section is used to convey any conditions that must be true when a user initiates a use case. They are not however the triggers that initiate a use case.


The Triggers section describe the starting condition(s) which cause a use case to be initiated.

Basic course of events

At a minimum, each use case should convey a primary scenario, or the typical course of events. The main basic course of events is often conveyed as a set of usually numbered steps, for example:

  1. The system prompts the user to logon.
  2. The user enters his name and password.
  3. The system verifies the login information.
  4. The system logs user on to system.

...and so on.

Alternate paths

Use cases may contain secondary paths, or alternate scenarios which are variations on the main theme. Exceptions, or what happens when things go wrong, may also be described, either within the alternative paths section or in a section on their own. The Alternative paths make use of the numbering of the basic course of events to show at which point they differ from the basic scenario, and if appropriate where they rejoin. The intention is to avoid repeating information unnecessarily.

An example of an alternative path would be:

  1. The system recognizes cookie on users machine.
  2. Go to step 4 (Main path)

An example of an exception path would be:

3. The system does not recognize users logon information
4. Go to step 1 (Main path)


The post-conditions section summarizes the state of affairs after the scenario is complete.

Business rules

Business rules are written or unwritten rules that determine how an organization conducts its business with regard to a use case. Business rules are a special kind of assumption. Business rules may be specific to a use case or apply across all the use cases, and indeed all the business.


Experience has shown that whatever template is used, analysts discover there is always important information that doesn't fit the structure of the template. Therefore each template usually includes a section for such seemingly inevitable information.

Author and date

This section should list when this version of the use case was created and who documented it. It should also list and date any versions of the use case from an earlier stage in the development which are still current documents. The author is traditionally listed at the bottom, because it is not considered to be essential information; use cases are intended to be collaborative endeavors and they should be jointly owned.

Benefits of Use Cases

Use cases are a newer, more agile format for capturing software requirements. They are often contrasted to large, monolithic documents that attempt but fail to completely convey all possible requirements before construction of a new system begins.

Use cases have a number of advantages:

  • Use cases have proved to be easily understandable by business users, and so have proven an excellent bridge between software developers and end users.
  • Use cases are useful for scoping. Use cases make it easy to take a staged delivery approach to projects; they can be relatively easily added and removed from a software project as priorities change.
  • Use cases are traceable.
  • Use cases can also serve as the basis for the estimating, scheduling, and validating effort.
  • Use cases discourage premature design
  • Use cases don't use a special language.
  • Use cases allow us to tell stories. It is very easy to describe a use case in a concrete way by turning it into a story or scenario.
  • Use cases are reusable within a project. The use case can evolve at each iteration from a method of capturing requirements, to development guidelines to programmers, to a test case and finally into user documentation.
  • Use cases are concerned with the interactions between the user and the system. They make it possible for user interface designers to become involved in the development process either before or in parallel with software developers.
  • Use cases put requirements in context, they are clearly described in relationship to business tasks.
  • Use case alternative paths capture additional behaviour that can improve system robustness.

Limitations of Use Cases

Use cases are not without their limitations:

  • Use cases may be excellent for capturing the functional requirements of a system, but they are not so suited to easily capturing the non-functional requirements. Despite the overenthusiastic claims of some use case proponents, other methods are required to capture non-functional requirements.
  • Use cases templates do not automatically ensure clarity. Clarity depends on the skill of the writer(s).
  • Use cases are not as easy to understand as proponents suggest. There is a learning curve involved in learning to interpret them correctly for end users and programmers alike.
  • Exponents of Extreme Programming often consider use cases too needlessly document centric, preferring to use the simpler approach of user stories.
  • Use cases have been criticized by usability designers for introducing user interface design too early in the process. Given that use cases describe the interaction between a user and the system, there is obviously overlap with user interface design. Poorly written use cases can encode overly detailed and arbitrary user interface design in their descriptions of interactions, even though one of the principles of use cases is that implementation specific information should not be added.


See also

External links

fr:Diagramme des cas d'utilisation pt:Caso de uso zh:用例


Academic Kids Menu

  • Art and Cultures
    • Art (
    • Architecture (
    • Cultures (
    • Music (
    • Musical Instruments (
  • Biographies (
  • Clipart (
  • Geography (
    • Countries of the World (
    • Maps (
    • Flags (
    • Continents (
  • History (
    • Ancient Civilizations (
    • Industrial Revolution (
    • Middle Ages (
    • Prehistory (
    • Renaissance (
    • Timelines (
    • United States (
    • Wars (
    • World History (
  • Human Body (
  • Mathematics (
  • Reference (
  • Science (
    • Animals (
    • Aviation (
    • Dinosaurs (
    • Earth (
    • Inventions (
    • Physical Science (
    • Plants (
    • Scientists (
  • Social Studies (
    • Anthropology (
    • Economics (
    • Government (
    • Religion (
    • Holidays (
  • Space and Astronomy
    • Solar System (
    • Planets (
  • Sports (
  • Timelines (
  • Weather (
  • US States (


  • Home Page (
  • Contact Us (

  • Clip Art (
Personal tools