Pragmatic Use Case Writing

Pragmatic Use Case Writing


Course code: 
Time Unit: 

This is an intensive, hands-on and interactive workshop that teaches students the critical skills and techniques necessary to perform effective real-world user requirements capture and documentation. The course provides students with a thorough grounding in using the industry standard “Use Case” techniques popularized by Ivar Jacobson and other Object Oriented practitioners.

The course begins with a high level overview of modern systems and how their unique characteristics affect the requirements gathering and documentation process. After an introduction to some basic concepts relevant to gathering requirements, students are shown how the requirements capture process fits into and feeds into the industry standard SDLCs, (specifically, an SDLC that is iterative, incremental and use case driven).

The bulk of the course is spent learning how to use the use case approach to gather and document user and system requirements, with emphasis on practical techniques for troubleshooting and refining use cases and for working effectively with users, stakeholders and domain experts.

The course is an even balance between theory and practical exercises (including simulated interviews and sessions with users); with a strong emphasis on techniques for identifying and resolving real world problems and issues.



◾What is a Use Case?
◾What is a Use Case Diagram?
◾What is a Use Case Form?
◾A Short History of Use Cases.

Use Cases and the SDLC
◾Benefits of a “Use Case Driven” software development process
◾Use Case’s Role in… •Project Management
•Business Modeling
•Requirements Gathering
•Requirement Analysis
•Analysis and Design
•Quality Assurance

Requirements Gathering
◾Identifying stakeholders
◾Identifying candidate requirements.
◾Prioritizing requirements for development.
◾Identifying and documenting non-functional requirements.

◾What is an Actor?
◾Actor goals and use cases.
◾Identifying use cases through actors.
◾Primary and secondary actors
◾Abstract Actors
◾What are Stakeholders their relation to Actors?

Use Case Modeling
◾Drawing Use Case UML diagrams
◾Extend/Include Relationships
◾Use-Case Packages
◾Change Cases

Primary Use Cases
◾Discovering use cases through actor goals.
◾The “Sunny Day” or “Garden Path” scenario.
◾Normal process flow
◾Use case presentation styles.
◾The importance of system scope.

Refining Use Cases
◾Identifying secondary scenarios.
◾Scenarios, alternate paths and extensions.
◾Detailing the use case body.
◾Handling exceptional behavior.
◾Factoring out common portions of use cases.
◾Documenting use case relationships – using “extends” and “includes”.

Elaborating Use Cases
◾Identifying Pre and post conditions.
◾Triggering events and outcomes.
◾Business process interactions.
◾Stakeholder requirements for the use case.

Business Modeling
◾Modeling business processes with activity diagrams
◾Developing business use cases and integrating the business processes with the use case model.

Analysis and Design
◾How are Use Cases used by Systems Architects and Developers
◾Mapping Use Cases to Object Models
◾Scenario Analysis

Use Case Participant Roles
◾Facilitator, Recorder, Timekeeper, and Participants
◾Responsibilities of each role
◾Effective Guidelines for each role.



Experience in requirements gathering, or systems analysis is desirable, but not mandatory.



Business or system analysts, technical managers, and software developers who wish to learn use case techniques for capturing requirements for software system development.