Lesson 1
User Requirements and Use Case Model
The use case model is used to illustrate and document the expectations that users have for the system. For this reason, the use case model has become a popular addition to nearly all the object-oriented development methodologies. The expectations expressed by the use case model create a focus or target for subsequent analysis and design efforts. Even if the use case model is not perfect or complete, it will help steer the analysis process by providing a reference point for questions and decisions.
Use Case Model: a Solid Foundation
The use case model plays a crucial role in various aspects of system development, from initial design to final implementation. Here's how it helps with the tasks you mentioned:
- Finding Objects:
- Identifying Entities: Use cases describe user interactions with the system, revealing the entities (data) involved in each action. For example, a "Place Order" use case might involve entities like "Customer," "Product," and "Order."
- Discovering Associations: Relationships between entities become evident through use cases. For example, the "Place Order" use case might show an association between "Customer" and "Order," and "Order" with "Product."
- Understanding Attributes and Operations: Use cases outline the desired behavior for each entity. This helps define the attributes (properties) needed and the operations (actions) the system should perform on them.
- Developing Test Cases:
- Mapping Scenarios: Each use case represents a specific scenario with defined steps. These steps translate directly into test cases, ensuring all functionalities are thoroughly tested.
- Identifying Alternative Flows: Use cases typically include alternative flows like error handling or user mistakes. Tests can be designed to cover these scenarios as well.
- Verifying System Behavior: By testing against the expected behavior described in the use cases, you can confirm the system operates as intended in various situations.
- Modeling Work and Screen Flows:
- Defining User Tasks: Use cases break down user interactions into discrete tasks, providing a clear picture of the overall workflow.
- Designing Screens and Interfaces: Each task translates into a screen or interface element. The use case flow guides the design of screens, navigation, and data input/output interactions.
- Understanding User Experience: Analyzing use cases helps visualize the user journey and identify potential pain points or areas for improvement in the user experience.
- Defining System Behavior:
- Specifying Functionality: Use cases clearly define what the system should do for each interaction. This becomes the blueprint for system behavior and functionality implementation.
- Clarifying Requirements: By analyzing various use cases, you can ensure all stakeholder requirements and desired system functionalities are captured and addressed.
- Ensuring Consistency: Use cases provide a central reference point for defining and ensuring consistency across different system components and functionalities.
In summary, the use case model serves as a foundational document that bridges the gap between user needs and system design. It guides various development activities by providing a clear understanding of user interactions, system functionalities, and expected behavior, ultimately leading to a successful and user-centric system.
The use case model provides a solid foundation for finding objects, developing test cases, modeling work and screen flows, and defining the behavior of the system. The fundamental elements of the use case model are covered in this module. This module will also identify detailed scenarios for developing and testing the behavior of the system.
Use Case Diagram
The Use Case diagram is a unique graphical element, in that it is a diagram used to model how people expect to use a system. The diagram describes who the relevant users will be, the services they require of the system, and the services they need to provide to the system. The Use Case diagram can be applied to many types of development, including manual systems, but it is most commonly used for systems and subsystems.
The Use Case diagram is the key element of the Object-Oriented Software Engineering
(OOSE) method, also known as Objectory (short for object factory), published in 1992 by Ivar
Jacobson. The technique had a proven track record with large-scale object-oriented projects at Ericsson and other companies.
Its success caught the attention of authors of other popular methods that lacked a means to document system requirements from
the viewpoint of clients and other systems.
Many of the leading methodologists like Grady Booch and James Rumbaugh, sought to find ways to merge their methods with this usecase-driven approach. As a result, the Use Case diagram was formally incorporated into UML 0.9, released in June 1996.
The
Use Case Diagram is often used as part of a more comprehensive use-case-driven approach that also includes a textual description of individual use cases and the extraction of scenarios. The textual description addresses the detailed requirements for a use case. Scenarios address the need to explore options in the execution of the use case, to test the requirements, and to provide a high-level test plan for subsequent development phases. Three Core diagrams of the use case approach are
- the Use Case diagram,
- the use case narrative or description, and
- the use case scenario (using an Activity diagram).
Module Learning Objectives
In this module, you will learn:
- The purpose and scope of the use case model
- The elements of a use case model
- The notation of the use case diagram
- How to construct a use case diagram from a problem statement
- How to document a use case
- How to refine the use case diagram using Unified Modeling Language (UML) stereotypes