Modeling Functional Requirements with Use Cases
Use cases provide a valuable tool for modeling the behavior of systems and businesses. While they serve several other purposes, use cases are especially effective for describing functional requirements. Requirements in the form of use cases offer a refreshing change from the more typical large, monolithic requirements document.
This two-day course explains how to apply use cases to the task of modeling the functional requirements of a system. It illustrates how to model use cases with Unified Modeling Language (UML), how to use case diagrams and, more importantly, how to describe individual use cases with text and diagrams. It also describes various approaches one can use to identify use cases, and it explains various types of relationships between use cases. It includes a discussion of user stories, popular in some Agile methods, and compares and contrasts user stories with use cases.
This course includes laboratory sessions that afford attendees an opportunity to identify and describe use cases for provided problems. The course is two days in duration, although it can be expanded to include "workshop days" during which the instructor works with attendees to model the requirements of a system of interest to the attendees.
- Introduction: Course objectives. What use cases are (and are not). A description of the case study to be used throughout the course. Some references to books on uses cases.
- Determining System Scope: Project blast-off, including documenting the projects mission, identifying the root problem, identifying the project stakeholders, and determining system scope.
- Actors: What an actor is. Business actors versus system actors. Different types of actors. Modeling actors in UML. Identifying actors. Relationships between actors.
- Use Cases: What use cases are. Use cases versus goals. Keeping use cases at the correct level. Modeling use cases in UML. Use case scope.
- Identifying Use Cases: Determining the scope of the system or application. Four distinct approaches for identifying use cases.
- Describing Use Cases: Different ways of describing the details of individual use cases, including writing briefs, listing steps, and using activity diagrams. Alternative paths versus error paths. Writing black-box use cases that avoid design details.
- Use Case Relationships: Static (non-temporal) and dynamic (temporal) relationships between use cases. Describing those relationships.
- User Stories: What user stories are. How user stories compare to use cases.
- Process: A brief discussion of requirements elicitation and requirements sources. Running joint requirements planning (JRP) sessions.
- Transitions: A brief overview of how use cases can guide subsequent project activities such as estimation of development effort, application design, user interface design, and testing.
This course is aimed at software developers, requirements engineers, and business analysts who are interested in or charged with modeling functional requirements with use cases. Because it addresses only requirements modeling (and not software design), it is equally beneficial to developers and non- developers.
None. No knowledge of use cases, software development, or the Unified Modeling Language is required.