Lesson 1
User Requirements and Use Case Modeling
The use case model serves as a bridge between user expectations and system functionality. It documents what users expect the system to do and provides a foundation for analysis, design, and testing. Even if not perfect or complete, a well-structured use case model anchors discussions about user interactions and guides subsequent design decisions.
The Role of the Use Case Model
A use case model is central to object-oriented system development because it describes the goals and interactions that users (actors) have with the system. This perspective ensures that functionality is driven by user needs rather than technical assumptions. It also provides a reusable framework for identifying objects, deriving test cases, mapping workflows, and defining the behavior of the system.
1. Finding Objects
- Identify entities and actors: Each use case exposes the participants (e.g., Customer, Product, Order) and the relationships among them.
- Determine associations: Interactions between actors and entities naturally reveal associations such as Customer–Order or Order–Product.
- Specify attributes and operations: The actions described in a use case often define what properties and methods an object should possess.
2. Developing Test Cases
- Scenario coverage: Each use case can be translated into one or more test cases representing normal and alternate flows.
- Error handling: Exceptional or alternative scenarios become boundary and negative test conditions.
- Behavioral verification: Comparing the implemented behavior against use case expectations validates correctness.
3. Modeling Workflows and Interfaces
- Task analysis: Use cases decompose user tasks into sequential steps, clarifying workflow logic.
- Interface design: Each step in a use case may correspond to a user interface screen or interaction component.
- User experience mapping: Visualizing use case flows helps optimize usability and navigation before implementation.
4. Defining System Behavior
- Functional definition: Use cases explicitly state the system’s responsibilities for each interaction.
- Requirements traceability: Each use case maps to a specific requirement, ensuring coverage and consistency.
- Design consistency: Shared behaviors and reusable operations are derived from repeated use case patterns.
In summary, a use case model establishes a clear, testable, and user-driven specification for system development. It aligns business goals, design logic, and validation strategies into a single unified framework.
Use Case Diagrams in UML
A Use Case Diagram provides a visual overview of how users interact with the system. It identifies the actors, the services they request, and the boundaries of the system’s responsibilities. While the diagram can model manual or hybrid workflows, it is most often used in software systems.
Historically, the Use Case diagram was introduced as part of the Object-Oriented Software Engineering (OOSE) method by Ivar Jacobson in 1992 and later incorporated into UML 0.9 (June 1996). It remains a standard way to communicate functional requirements from the user’s point of view and to align multiple design methods—such as those by Grady Booch and James Rumbaugh—under a shared modeling language.
A typical use-case-driven approach combines three complementary diagrams:
- Use Case Diagram: defines actors and system interactions.
- Use Case Narrative: provides a textual description of each scenario.
- Activity Diagram: visualizes the step-by-step flow within or across use cases.
Learning Objectives
- Understand the purpose and scope of the use case model.
- Identify the elements of a use case model and their notation in UML.
- Construct a use case diagram from a problem statement.
- Document use cases effectively, including main and alternate flows.
- Refine diagrams using UML stereotypes and relationships.
By mastering these skills, you can transform user requirements into structured, testable, and visually coherent models that guide every stage of the project life cycle.

