Use Cases

Introduction to Use Cases

Use cases are used in project planning and requirements specification. Use cases describe the behavior of a system in response to various categories of requests from a stakeholder. They contain a textual description of the operation of the system in given circumstances and are designed to be easily read by the business managers who are the customers of the system. After learning a small vocabulary and learning to read diagrams consisting of a small number of symbols any major stakeholder in a project should be able to read use cases and use case diagrams. Use cases are written in plain, simple prose whenever possible.

Why are they used?

Over the last 5 years, use cases have become a “best practice” of software development. Use cases are used for the following purposes:

  • Specify system requirements

  • Communicate issues between members of the development team

  • Document the design of an existing system

  • Simplify the creation of user manuals

  • Provide critical information for developing Quality Assurance test plans

  • Help create a project schedule

Use Cases without UML

Because use cases are included in UML and many people first encounter them along with UML, many people are unaware that they can apply use cases without learning UML. Use cases are an effective method of capturing requirements that can be used with or without UML. They can be used with any process or methodology (or lack thereof) and don't require a specific methodology, such as the Unified Process (UP) or the Rational Unified Process (RUP).

Use Cases without Diagrams

Partly because most of literature about use cases is in the context of UML, there seems to be too much focus placed on use case diagrams. (Here is an example of a Use-Case Diagram.)

Use Cases are inherently a text-based format. The Use-Case diagram makes a nice graphical table of contents, but is not really necessary. (They can sometimes be helpful for visualizing relationships between use cases and actors.)

Examples

Stay tuned... (I'm looking for examples I can use that are not proprietary.)

Where to Learn More

???? [SCHNEIDER] is a great introduction for “anyone interested in applying use cases to project development” and presents use cases within the context of the development of a sample project. Some sections in the book are most appropriate to software developers but they can be safely skipped. [SCHNEIDER] provides a sufficient introduction for Managers, Domain Experts, and other non-technical Stakeholders. For those interested in more depth: ???? [COCKBURN] provides more detail on the art of writing use cases. [FOWLER] provides an overview of UML, a graphical language used by software developers that includes Use Case Diagrams. [KRUCHTEN] provides an overview of the Rational Unified Process, the most popular software development methodology that uses UML.


Creative Commons License
This work is licensed under a Creative Commons License.