Course 326:
Writing Requirements with Structured Use Case Descriptions

(3 days)

 

Course Description

Perhaps the single most significant factor that drives successful software projects—those that meet customer and user needs—is the availability of a complete, consistent, clear, correct, testable set of functional and non-functional requirements. In particular, the functional requirements section is invariably the largest in the requirements specification, in terms of page count or word count, and invariably the most important, in terms of producing a robust information system. Clearly, organizations that can produce coherent, complete, consistent functional and non-functional requirements properly enjoy a decided competitive advantage and are most likely to enjoy substantial returns on their software engineering investments.

Learning Objectives

  • Understand the major sections of the system requirements specification: functional requirements, data dictionary, performance requirements, interface requirements, design constraints, and characteristics
  • Examine the role of the context diagram as a starting point for requirements engineering and system testing
  • Define the nature and role of the use case as a vehicle for expressing functional requirements, and as a basis for specifying non-functional requirements as well
  • Obtain experience in writing structured use case descriptions and creating non-functional requirements
  • Obtain experience in evaluating use case descriptions during the baselining process

Who Should Attend

This course is suited for software practitioners, business analysts, systems analysts, project managers, and quality assurance professionals.

Prerequisites

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


Course Outline

Chapter 1: Introduction to Requirements Documentation

  • Requirements Documentation Concepts
    • Definitions
    • Requirements Process Overview
    • Requirements Drive Other Work Products
    • Functional and Non-Functional Requirements
  • Requirements Specification Components
    • Standards
    • Audience
    • Modes
    • Functional and Non-Functional Requirements
    • Requirements Specification Process
  • Understanding the Context Diagram
    • Definition
    • Structure
    • Uses
    • Accompanying Description
    • Examples
  • Workshop: Preparing a Context Diagram and Accompanying Description from Client-Furnished Material
  • Chapter Summary and Best Practices

Chapter 2: Components of a Functional Requirements Specification

  • Use Case Concepts
    • Definition
    • Use Cases and Functional Requirements
    • Structured and Narrative Use Case Descriptions
    • Use Case Properties
    • Identifying Use Cases
    • Benefits and Costs of Structured Use Case Descriptions
  • Workflow Diagram for a Business Process
    • Workflow Diagram Structure
    • Using the Workflow Diagram to Identify Predecessor and Successor Use Cases
    • Notation
    • Examples
  • Workshop: Creating a Workflow Diagram
  • Elements of a Use Case Description
    • Structure
    • Unique Identifier
    • Title
    • Introductory Narrative
    • Main Success Scenario
    • Extensions
  • Workshop: Writing a Use Case Introduction

Chapter 3: Main Success Scenarios

  • Elements of a Main Success Scenario
    • Pre-Conditions
    • Steps
    • Post-Conditions
    • Examples
  • Writing Pre- and Post-Conditions
    • Properties
    • Format
    • Examples
  • Workshop: Writing Pre-Conditions and Post-Conditions
  • Writing the Steps of the Main Success Scenario
    • Properties
    • Format
    • Notes
    • Optional Steps
    • Multiple Actors
    • Examples
  • Workshop: Writing the Steps of the Main Success Scenario

Chapter 4: Extensions, Alternatives, and Fragments

  • Writing the Steps of Extensions
    • Identifying Extensions
    • Trigger Conditions
    • Format
    • Examples
  • Workshop: Identifying Extensions
  • Workshop: Writing Extension Steps
  • Writing the Steps of Alternatives
    • Identifying Alternatives
    • Alternatives vs. Extensions
    • Linking Alternative Use Cases
    • Examples
  • Workshop: Distinguishing Alternatives from Extensions
  • Writing the Steps of Fragments
    • Identifying and Extracting Fragments
    • References to Fragments
    • Examples
  • Workshop: Writing Fragments
  • Chapter Summary and Best Practices

Chapter 5: Writing Data Specifications

  • Data Elements in Structured Use Case Descriptions
    • Editing Use Case Descriptions for Data Element Consistency
    • Examples
  • Writing Data Structure Specifications
    • Data Element Metadata
    • Specifying Data Types
    • Specifying Valid Domains
    • Examples
  • Workshop: Writing Data Specifications for Scenarios Produced in Earlier Workshops
  • Chapter Summary and Best Practices

Chapter 6: Non-Functional Requirements

  • Writing Performance Requirements
    • Need for Performance Requirements
    • Writing Performance Specifications
      • Response Time
      • Throughput
      • Capacity
      • Availability and Reliability
    • Workshop: Writing Performance Requirements
    • Writing Interface Requirements
      • Interface Types
      • Protocols
      • Writing System Interface Specifications
      • Writing User Interface Specifications
    • Writing Design Constraints
      • Benefits
      • Examples
    • Workshop: Writing Design Constraints
    • Writing Characteristics
      • Definitions
      • Writing Characteristic Specifications
    • Workshop: Writing Characteristic Specifications
    • Chapter Summary and Best Practices

Chapter 7: Evaluating Requirements Specifications

  • Evaluation Concepts
    • Goals
    • Participants
    • Evaluation Process Overview
  • What to Look for
    • Completeness
    • Internal Consistency
    • Consistency with Other Requirements
    • Evaluation Criteria for Use Cases
  • Workshop: Evaluating Scenarios Produced in Earlier Workshops
  • Chapter Summary and Best Practices

Chapter 8: The Bottom Line

  • Course Summary
  • Highlights from Students’ Perspectives

Please Contact Your ROI Representative to Discuss Course Tailoring!