What are Use Cases?

 

Use cases capture user requirements for a system by describing how a system will be used and to what ends in a way that the end user can understand. (1) Use cases are the method favored by the component and object community to specify requirements and indeed to drive the whole software development process. (10) A use case is a collection of possible sequences of interactions between the system under discussion and its external actors related to a particular goal.  The use case is complete when the goal has been satisfied. (6) A use case is usually written in simple language and without technical jargon so that it can be understood by all participants in the analysis process. A complete set of use cases specifies all the different ways to use the system and therefore defines all behavior required of the system bounding the scope of the system. (13) It is in this way that the use case helps to reduce scope creep. 

 

Use cases provide many benefits beyond defining user requirements. Use cases can be used to:

  • Illuminate and document current or goal-stated methods, systems and stakeholders
  • Identify business-domain classes and their associates
  • Drive detailed application analysis and design
  • Develop scripts for testing
  • Suggest prototyping activity
  • Clarify architecture requirements
  • Highlight risks and needs for risk management

 

 

Each use case is a complete course of events in the system from a user perspective. Each use case is independent of the others.  Use cases usually stick to fairly major tasks; they do not need to be written for every action the user can take. Design information is included in the use case in order to make it easier to discuss with the customer but this information is not part of the requirements. The goal is to extract the real underlying requirements. (11) It is important to keep in mind that a Use Case is a depiction of a User’s vision so the analyst should be as flexible as possible.  The analyst should not try to restrict the use case in ways that lead directly to design—it is not the job of the User to design the system.

 

 

Table of Contents