Foreword
Preface
Introduction
Chapter 1 The Requirements Problem
The Goal
A Look at the Data
Root Causes of Project Success and Fai1ure
The Frequency of Requirements Errors
The High Cost of Requirements Errors
Conclusion
Chapter 2 Introduction to Requirements Management
Definitions
What Is a Requirement?
What Is Requlrements Management?
Application of Requirements Management Techniques
Types of Software Applications
Systems Applications
The Road Map
The Problem Domain
Stakeholder Needs
Moving Toward the Solution Domain
Features of the System
Sofrware Requirements
An Introduction to Use Cases
Summary
Chapter 3 The SoftWare Team
Sofrware Development as a Team Activity
Requisite Team Skills for Effective Requirements
Management
Team Members Have Different Skills
The Organization of Software Teams
The Case Study
Background for the Case Study
The HOLIS Software Development Team
Summary
Team Skill 1 Analyzing the Problem
Chapter 4 The Five Steps in Problem Analysis
Step 1: Gain Agreement on the Problem Definition
The Problem Statement
Step 2: Understand the Root Causes——The Problem Behind
the Problem
Addressing the Root Cause
Step 3: Identify the Stakeholders and the Users
Step 4: Define the Solution System Boundary
Step 5: Identify the Constraints to Be Imposed on the Solution
Summary
Looking Ahead
Chapter 5 Business Modeling
Purpose of Business Modeling
Using Software Engineering Techniques for Business Modeling
Choosing the Xight Technique
The Unified Modeling Language (UML)
Business Modeling Using UML Concepts
From the Business Models to the Systems Model
When to Use Business Modeling
Summary
Looking Ahead
Chapter 6 Systems Engineering of Software-Intensive SyStems
What Is Systems Engineering?
Pragmatic Principles of Systems Engineering
The Composition and Decomposition of Complex Systems
Requirements Allocation in Systems Engineering
On Derived Requirements
A Quiet Revolution
When Generations Collide: Graybeard Meets Young
Chapter 3 The Software Team
Sofrware Development as a Team Activty
Requisite Team Skills for Effective Requirements
Management
Team Members Have Different Skills
Team Skill 2 Understending User Needs
Chapter 7 The Challenge of Requirements Elicitation
Barriers to Elicitation
The“Yes, But”Syndrome
The“Undiscovered Ruins” Syndrome
The“User and the Developer” Syndrome
Techniques for Requirements Elicitation
Chapter 8 The Features of a Product or System
Stakeholder and User Needs
Features
Managing Complekity by Picking the Level of Abstraction
Attributes of Product Features
Chapter 9 Interviewing
The Interview Context
The Context-Free Question
Value-Added Context
The Moment of Truth: The Interview
Compiling the Need Data
The Analyst's Summary:10 + l0 + l0 30
The Case Study
A Note on Questionnaires
Chapter 10 Requirements Workshops
Accelerating the Decision Process
Preparing for the Workshop
Selling the Concept
Ensuring the Participation of the Right Stakeholders
Logistics
“Warm--Up Materia1s”
Role of the Facilitator
Setting the Agenda
Running the Workshop
Problems and Trcks of the Trade
Brainstorming and Idea Reduction
Production and Follow--Up
Chapter 11 Brainstorming and ldea Reduction
Live Brainstorming
Idea Reduction
Pruning
Grouping Ideas
Feature Definition
Prioritization
Web-Based Brainstorming
The Case Study: The HOLIS 2000 Requirements Workshop
Attendees
The Workshop
The Session
Analysis of Results
Chapter 12 Storyboarding
Types of Storyboards
What Storyboards Do
Tools and Techniques for Storyboarding
Tps for Storyboarding
Summary
Chapter 13 Applying Use Cases
Building the Use--Case Model
Applying Use Cases to Requirements Elicitation
Case Study: The Use Cases for HOLIS
Summary
Chapter 14 Role Playing
How to Role Play
Techniques Similar to Role Playing
Scripted Walkthroughs
CRC (Class -- Responsibility- Collaboration) Cards
Summary
Chapter 15 Prototyping
Types of Prototypes
Requirements Protownes
What to Prototype
Building the Protompe
Evaluating che Results
Summary
Team Skill 2 Summary
Team Skill 3 Defining the System
Chapter 16 Organizing Requirements Information
Organizing Requirements of Complex Hardware and
Software Systems
Organizing Requirements for Product Families
On“Future” Requirements
Business and Marketing Requirements versus Product
Requirements
The Case Study
Summary
Chapter 17 The Vision Document
Components of the Vision Document
The“Delta Vision” Document
Vision Document for Release 1 .0
Vision Document for Version 2 .0
The Delta Vision Document in a Legacy System
Environment
Chapter 18 The Champion
The Role of the Product Champion
The Product Champion in a Sofrware Product Environment
The Product Champion in an IS/IT Shop
Team Skill 3 Summary
Team Skill 4 Managing Scope
Chapter 19 The Problem of Proect Scope
Components of Project Scope
The Hard Question
Chapter 20 Establishing Proect Scope
The Requirements Baseline
Setting Priorities
Assessing Effort
Adding the Risk Element
Reducing Scope
A Reasonable First Estimate
The Case Study
Chapter 21 Managing Your Customer
Engaging Customers to Manage Their Project Scope
Communicating the Result
Negotiating with the Customer
Managing the Baseline
Official Change
Unofficial Change
Chapter 22 Scope Management and Sotheare Development
Process Models
The Waterfall Model
The Spiral Model
The Iterative Approach
Lifecycle Phases
Iterations
Workflows
What to Do, What to Do...
Team Skill 4 Summary
Team Skill 5 Refining the System Definition
Chapter 23 Software Requirements
Definition of Software Requirements
Relationship between Features.and Sobore Requirements
The Requirements Dilemma: What versus How
Exclude Project Information
Exclude Design Information
More on Requirements versus Design
Iterating Requirements and Design
A Further Characterization of Requirements
Functional Sofrware Requirements
Nonfunctional Software Requirements
Design Constraints
Are Design Constraints True Requirements?
Using Parent--Child Requirements to Increase Specificity
Organizing Parent--Child Requirements
Looking Anead
Chapter 24 Refining the Use Cases
Questions to Ask
When Should I Use the Use--Case Methodology?
When Are Use Cases Not the Best Choice?
The Redundancy Problem
Refining Use-Case Specifications
How Use Cases Evolve
The Scope of a Use Case
The Case Study: Anatomy of a Simple Use Case
Define the Actor(s)
Define the Use Case by Naming It
Write a Brief Description
Define a Flow of Events
Identify Pre-- and Postconditions
Looking Ahead
Chapter 25 A Modern SoftWre Requirements Specification
The Modern SRS Package
Who Owns the SRS Package?
Organizing the Modern SRS Package
Documenting Functional Requirements
Looking Anead
Chapter 26 On Ambiguity and Specificity
Finding the“Sweet Spot”
Mary Had a Little Lamb
Techniques for Disambiguation
What to Do?
Chapter 27 Quality Measures of Sotheare Requirements
Nine Quality Measures
Correct Requirements
Unambiguous Requirements
Completeness of the Requirements Set
Consistency in the Requirements Set
Requirements Ranked fOr Importance and Stability
Verifiable Requirement
Modifiable Requirements Set
Traceable Requirements
Understandable Requirements
Quality Measures for the Use-Case Model
Use-Case Specifications
Use-Case Actors
Quality Measures of the Modern SRS Package
A Good Table of Contents
A Good Index
A Revision Hstory
A Glossary
Chapter 28 Technical Methods for Specifying Requirements
Pseudocode
Finite State Machines
Decision Trees and Decision Tables
Graphical Decision Trees
Acthaty Diagrams
Entity-Relationship Models
Object--Oriented Modeling
Data Flow Diagrams
Maintenance of Specifications
Case Study
Team Skill 5 Summary
Tdem Skill 6 Building the Right System:
Chaptcr 29 Building the Right System Right: Overview
Continually Confirm that the Development Is on Track
Principles of Sofrware Verification
The Cost of Verification
Verification at All Levels
The Reason for Verification
Confirm that the Development Results Are Correct
Learn How to Cope with Change that Occurs during the
Development Process
Looking Ahead
Chapter 30 From Requirements to Implementation
Mapping Requirements to Design and Code
The Orthogonality Problem
Object Orientation
The Use Case as a Requirement
Managing the Transition
Modeling Software Systems
Role of the Use-Case Model in Architecture
Realizing Use Cases in the Design Model
Structural and Behavioral Aspects of Collaborations
Using Collaborations to Realize Sets of Individual Requirements
From Design to Implementation
Summary
Looking Ahead
Chapter 31 Using Traceability to Support Verification
The Role of Traceability in Requirements Verification
Implicit versus Explicit Traceability
Additional Traceability Options to Consider
Using Traceability Tools
Maintenance of Traceability Relationships
Proceeding without Traceability Tools
Omitted Verification Relationships
Excess Verification Relahonships
Thinking about Verification and Traceability
Looking Ahead
Chapter 32 Validating the System
Validation
Acceptance Tests
Validation Testing
Validation Traceability
Requirements-Based Testing
Case Study: Testing Use Cases
Test Case l Description
Tracing Test Cases
Testing Discrete Requirements
Omitted Validation Relationships
Excess Validation Relahonships
Testing Design Constraints
Looking Ahead
Chapter 33 Using ROI to Determine the V&V Effort
Depth versus Coverage
V&V Depth
V&V Coverage
What to Verify and Validate
Option l: Verify and Validate Everything
Option 2: Use a Hazard Analysis to Determine V&V Necessihes
Hazard Analysis as Return on Investment (ROI)
Looking Ahead
Chapter 34 Managing Change
Why Do Requirements Change?
Extenral Factors
Internal Factors
“We Have Met the Enemy, and They Is Us”
A Process for Managing Change,
Step l: Recognize that Change Is Inevitable, and Plan for It
Step 2: Baseline the Requirements
Step 3: Establish a Single Channel to Conrrol Change
Step 4: Use a Change Control System to Capture Changes
Step 5: Manage Change Hierarchically
Requirements ConfigUration Management
Tool--Based Support for Change Management
E1ements Impacted by Change
Andit Trail of Change History
Configuration Management and Change Management
Summary
Team Skill 6 Summary
Chapter 35 Getting Started
Dedication
What We've Learned So Far
Introduction
Team Skill 1: Analyzing the Problem
Team Skill 2: Understanding User Needs
Team Skill 3: Defining the System
Team Skill 4: Managing Scope
Team Skill 5: Refining the System Definition
Team Skill 6: Building the kight System
Your Prescription for Requirements Management
Simplifying Assumptions
The Recipe
Now, On to the Next Release!
Appendix A HOLIS Artifacts
Appendix B Vision Document Template
APpendix C Modern SRS Package Template
Appendix D Requirements Management in the SEI-CMM and within ISO 9000
Appcndix E Requirements Management in the Rdtional Unified Process
Bibliography
Index