A use case is the description of the behaviour of a system in reaction to a request from an actor outside of that system. A use case describes who (the actor, i.e. a user or another system) can do what (what actions) with the system.
Use cases are being used to specify the requirements from the perspective of the end user. Most often, they are made by an information analyst who collaborates with end users. They try to avoid technical jargon and often work with a modeling language, like UML (Unified Modeling Language) or another notation technique to represent a use case graphically.
It is possible to generate more scenarios on the basis of a single use case, each of them corresponding to a way to achieve a goal. In the Unified Modeling Language, use case diagrams can be used to present the use cases of a given system.
Generally speaking, a use case should:
- describe what a system must do in order to achieve a specific goal
- be established in an implementation-independent language
- have an appropriate level of elaboration
- not contain details regarding user interfaces or screen layout