| Lesson 2 | The Use Case Model |
| Objective | Define the purpose and scope of the Use Case Model. |
The use case model defines how users interact with a system to achieve specific goals. It provides a structured way to document system functionality and serves as a bridge between user expectations and software design. The model focuses on two core elements: actors and use cases.
Each use case represents a meaningful interaction between a user (human or machine) and the system. Examples include actions such as logging in, registering, or creating an order. A use case can include functionality from another use case or extend existing behavior to capture exceptions or alternative flows. This modular approach simplifies complexity while maintaining flexibility in design.
A well-written use case typically includes the following elements:
An actor represents a role that interacts with the system. Actors can be people, external systems, or hardware devices. Each actor plays a role in achieving system objectives. One individual may assume multiple roles, and many individuals may share a single role.
Actors should not be confused with job titles—roles reflect interactions with the system, not organizational hierarchy. Defining actors carefully can even help clarify and optimize real-world workflows.
A use case defines a goal the system must fulfill to satisfy the actor’s needs. For example, an automated teller machine (ATM) must allow users to validate access, deposit funds, and withdraw funds. Each goal can usually be expressed as a verb–noun pair such as deposit funds or withdraw cash.
It is important not to confuse goals with processes. A goal defines what should be achieved; processes describe how that goal might be implemented, which can vary across different system designs.
The scope of the use case model is to define what the system must do—not how it will do it. Avoid discussing programming languages, interface design, or internal logic at this stage. The objective is to capture user goals and system responsibilities clearly and without bias toward implementation.
Encapsulation plays a key role here. The use case model represents an encapsulated view of the system—it focuses on purpose and interfaces while hiding the internal mechanics. When defining input and output, describe content rather than form. Whether the data is displayed on a screen, printed, or transmitted via API is irrelevant to the model.
By keeping a clear boundary between user goals and system mechanisms, the use case model provides a disciplined foundation for subsequent UML diagrams and object discovery.