Gathering and Documenting User Requirements with Use Cases

Course Description

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. This course is intended for those - including business modelers, use case and systems analysts, project managers, project leads, and developers - who will be involved in, or need to understand, the requirements capture workflow in a systems development project. This course is especially useful for those who already have a thorough understanding of standard requirements specification techniques and want to make the transition to using use cases.
2 days
Contact us for pricing


None, but previous experience with business or systems analysis would be helpful.

Modern Systems

Characteristics of modern real world complex and distributed systems and how they differ from traditional systems.
The larger role of requirements capture and documentation in modern systems.
How requirements capture is critical to Quality Assurance in modern systems.
Being "Use Case Driven"
Software SDLCs and why we use them.
Incremental and iterative - how it works.

Requirements Gathering

Perceived needs, root causes and real needs.
Writing a system description.
Starting the associated risk analysis.
Identifying stakeholders.
Identifying candidate requirements.
Prioritizing requirements for development.
Modeling business process requirements.
Identifying and documenting non-functional requirements.

The Use Case Model

Documenting functional requirements with the use case approach.
Discovering actors and system boundaries.
Basic use case concepts and techniques for drawing use case diagrams.
Refining and prioritizing use cases.
Primary and secondary scenarios.
Identifying exceptions and "abuse" cases.

Stakeholders and Actors

Identifying use cases through actors.
Primary and secondary actors.
Actor goals and use cases.
Internal and external actors.
Business processes and stakeholder interests.

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.

Incorporating Non-Functional Requirements

Modeling business processes with activity diagrams.
Developing business use cases and integrating the business processes with the use case model.
Rationalization of the use cases and the users` conceptual model of the system.
Deriving test models from the use cases

Refining the Use Case Model

Use case walkthroughs and verification.
Use case ranking.
Using CRC modeling for user verification of use cases and requirements.
Interaction diagrams for refining use cases.
Relating use cases to system architecture.

People Issues

Types of "people" problems that can occur during requirements capture.
Getting accurate information from users.
"Mining" users for use cases.
Getting buy-in from users and stakeholders and why it is important
Troubleshooting common types of people problems.

QA and Project Management

How use cases feed into the project plans.
The review process.
Use case review with users.
Use case reviews with stakeholders.
Verification of requirements.
How use cases drive the testing process.

Use Case Participant Roles

Facilitator, Recorder, Timekeeper, and Participants
Responsibilities of each role
Effective Guidelines for each role.

Use CasesRequirements GatheringSoftware testingsoftware test