In software design and development activities, a use case, plays a crucial role in the analysis phase as it provides a description of how it can be used, defining its interaction with the user.
To simplify, we could define it as a kind of instruction manual for the software itself.
It is the basis for the very definition of the test cases.
The concept of “use case” was first introduced in 1987 by Ivar Jakobs, but its widespread use has occurred since the early 1990s, following the publication of the volume, “Object-Oriented Software Engineering. A Use Case Driven Approach.”
Use cases are used for numerous purposes, including:
- requirements management and monitoring;
- identification of classes and objects;
- design and coding;
- development of application documentation;
- training;
- development of test cases.
As anticipated Use Cases and Test Cases cannot be confused. If the former, in fact, contain sequential actions that describe the interactions between the user and the system, the latter contain conditions, inputs and outputs to validate the functioning of the software itself.
If, moreover, the use case is concerned with the requirements of the software, the second, as mentioned, depends on just that and aims to verify the behaviour of the software itself.
Today, the phrase “Use Case” has entered common parlance so much so that it is also used in contexts other than software design, such as, for example, business process modeling (and business process reengineering).