Course 303:
Defining Requirements with UML Use Cases

(4 days)


Course Description

Requirements are the basis for all software development. If the requirements are wrong, the results are wrong. Requirements describe what will be done to solve the business problem. In this course, we examine the process of eliciting, analyzing, and documenting information from the business community using the UML Use Case diagramming technique to produce quality requirements that the developers can use to produce software products to solve the problem.

Learning Objectives

At the end of this course, the participants will know:

  • The difference between gathering information and generating requirements
  • The importance of defining the problem before defining the requirements
  • How to apply the techniques of Use Cases as defined in the UML to elicit information, analyze the requirements, and document the solution
  • A process for defining the requirements and turning those requirements into a quality system

Who Should Attend

Business analysts, requirements analysts, project managers, designers, architects and anyone involved with turning a business problem into an IT solution.


No specific prerequisites are assumed. A familiarity with information system concepts is recommended.

Course Outline

Unit 1: Understanding Requirements

  • What Are Requirements?
    • Why Don’t We Get Good Requirements?
    • What Are Requirements?
    • Business, System, and User Requirements
    • Functional and Non-Functional Requirements
    • What Are Quality Requirements?
    • Requirements Aspects
  • Requirements in the Life Cycle
    • Linking Requirements to the Traditional Life Cycle
    • Linking Requirements to an Agile Software Development Life Cycle
  • Requirement Process
    • Requirements Process
    • Requirements Phases
  • About Use Cases
    • What Is a Use Case?
    • Example of Use Case Diagram
    • Why Use Cases?
    • Use Cases in the Life Cycle
    • When to Do Use Cases
  • Generating Requirements – Overview
    • Requirements Development Cycles
    • The Steps

Unit 2: The Information Gathering Plan

  • Preparing an Information Gathering Plan
    • Gathering Information
    • Identifying Non-Functional Requirements
    • Primary Questions
    • What to Gather Information About
  • Sources of Information
    • What Is Information?
    • Stakeholder Constituencies
  • Methods of Information Gathering
    • Forms of information Gathering
  • Information Gathering Process

Unit 3: Identifying the Product Scope

  • Defining the Problem
    • The Problem Domain
    • Defining the Problem
    • Basic Problem Definition
    • Identifying the Real Problem
    • Product Vision
  • Business Orientation
    • Justification
    • Product Risks
    • Business Constraints
  • Workshop: Problem Definition
  • Establishing Scope
    • Functional Goals
    • System Scope Formula
    • Using the Problem Definition
  • Workshop: The Business Case

Unit 4: Gather the Information

  • Gather Information with Use Cases
    • Gathering Information
    • Use Cases in Elicitation
    • The Use Case Interview or Meeting
    • Constructing a Use Case Diagram
    • Actors, Use Cases, Associations and Goals
    • Use Case Granularity
  • Record Requirements with Use Cases
    • Use Case Description
    • Use Case Description Formats
    • Use Case Flows
      • Main Success Scenario
      • Alternate Flow
      • Exception Paths
    • Success Guarantees
    • Link the Use Case to Testing
  • Workshop: Using Use Cases

Unit 5: Requirements Analysis

  • Analysis
    • Analyzing with Use Cases
    • Use Case in Analysis
    • Use Case Chaining
  • Modeling
    • What Is Analysis?
    • What Is a Model?
    • Model with a Purpose
  • Use Case Analysis
    • Use Case Extensions
    • Extends
    • Includes
    • Generalization and Inheritance
    • How Extensions are Done
  • Use Case Realizations
    • Modeling Perspectives
    • Activity Diagram
    • State transition Diagram
  • Derive the Functional Requirements
    • Model the Problem and Solution
    • Produce Gap Analysis
    • Develop Scenarios
    • Use the Use Cases to Create Scenarios
    • Produce Functional Requirements
  • Include Non-Functional Requirements
    • Quality Issues
    • When to Include Non-Functional Requirements
  • Prioritizing the Requirements
    • Need for Priority
    • Priority Filter
  • Workshop: Creating the Requirements

Unit 6: Document the Requirements

  • Requirements Format and Contents
    • Solution Domain
    • Organizing the Document
    • Standard Format
    • Structure of the Document
    • Incorporating Use Cases
    • Structured English
  • Move Use Case Descriptions to Functional Requirements
  • Requirements Representation Guidelines
    • Quality Requirements
    • Flowing the Requirements
    • Writing Valid Requirements
      • Accurate
      • Explicit and Unambiguous
      • Testable
      • Consistent
      • Complete
      • Traceable
    • Requirements Document Guidelines
    • Have You Captured all the Requirements?
  • Keys to Success
  • Workshop: Documenting the Requirements

Unit 7: The Bottom Line

  • The Requirements Process
    • Define the Information Gathering Plan
    • Define the Problem Domain
    • Gather Information About the Problem
    • Diagram the Problem with Use Cases
    • Perform the Gap Analysis
    • Diagram the Solution with Use Cases
    • Document the Functional Requirements
    • Approve the Requirements
    • Implement the Requirements
    • Test the Requirements
    • Deliver the Requirements
  • Making Sure
    • Requirements Reviews
    • Requirements Traceability
  • Where to Go for More Information

Please Contact Your ROI Representative to Discuss Course Tailoring!