Table of Contents for
Software Requirements, 2nd Edition
by Karl E. Wiegers

(Microsoft Press, 2003; ISBN 0-7356-1879-8)

Part 1. Software Requirements: What, Why, and Who

Chapter 1. The Essential Software Requirement

Software Requirements Defined Some Interpretations of "Requirements"
Three Levels of Requirements What Requirements Are Not
Requirements Development and Management
Every Project Has Requirements
When Bad Requirements Happen to Nice People
Benefits from a High-Quality Requirements Process
Characteristics of Excellent Requirements

Chapter 2. Requirements from the Customer’s Perspective

Who is the Customer?
The Customer-Development Partnership
Requirements Bill of Rights for Software Customers
Requirements Bill of Responsibilities for Software Customers
What About Sign-Off?

Chapter 3. Good Practices for Requirements Engineering

Knowledge
Requirements Elicitation
Requirements Analysis
Requirements Specification
Requirements Validation
Requirements Management
Project Management
Getting Started with New Practices
A Requirements Development Process

Chapter 4. The Requirements Analyst

The Requirements Analyst Role The Analyst's Tasks
Essential Analyst Skills
Essential Analyst Knowledge
The Making of an Analyst The Former User
The Former Developer
The Subject Matter Expert

Part 2. Software Requirements Development

Chapter 5. Establishing the Product Vision and Project Scope

Defining the Vision through Business Requirements Conflicting Business Requirements
Business Requirements and Use Cases
Vision and Scope Document
The Context Diagram
Keeping the Scope in Focus

Chapter 6. Finding the Voice of the Customer

Sources of Requirements
User Classes
Finding User Representatives
The Product Champion External Product Champions
Product Champion Expectations
Multiple Product Champions
Selling the Product Champion Idea
Product Champion Traps to Avoid
Who Makes the Decisions?

Chapter 7. Hearing the Voice of the Customer

Elicitation Workshops
Classifying Customer Input
Some Cautions About Elicitation
Finding Missing Requirements
How Do You Know When You’re Done?

Chapter 8. Understanding User Requirements

The Use Case Approach Use Cases and Usage Scenarios
Identifying Use Cases
Documenting Use Cases
After the Workshop
Validating Use Cases
Use Cases and Functional Requirements
Benefits of Use Cases
Use Case Traps to Avoid
Event-Response Tables

Chapter 9. Playing By the Rules

The Rules of the Business
Documenting Business Rules
Business Rules and Requirements

Chapter 10. Documenting the Requirements

The Software Requirements Specification Labeling Requirements
Dealing with Incompleteness
User Interfaces and the SRS
A Software Requirements Specification Template
The Data Dictionary
Guidelines for Writing Requirements
Sample Requirements, Before and After

Chapter 11. A Picture is Worth 1024 Words

Modeling the Requirements
From Voice of the Customer to Analysis Models
Data Flow Diagram
Entity-Relationship Diagram
State-Transition Diagram
Dialog Map
Class Diagram
Decision Tables and Decision Trees
A Final Reminder

Chapter 12. Beyond Functionality: Software Quality Attributes

Quality Attributes
Defining Quality Attributes Attributes Important to Users
Attributes Important to Developers
Performance Requirements
Defining Nonfunctional Requirements Using Planguage
Attribute Tradeoffs
Implementing Nonfunctional Requirements

Chapter 13. Risk Reduction Through Prototyping

Prototyping: What and Why
Horizontal Prototypes
Vertical Prototypes
Throwaway Prototypes
Evolutionary Prototypes
Paper and Electronic Prototypes
Evaluating Prototypes
The Risks of Prototyping
Prototyping Success Factors

Chapter 14. Setting Requirements Priorities

Why Prioritize Requirements?
Games People Play With Priorities
A Prioritization Scale
Prioritizing Based on Value, Cost, and Risk

Chapter 15. Validating the Requirements

Reviewing Requirements The Inspection Process
Requirements Review Challenges
Testing the Requirements Defining Acceptance Criteria

Chapter 16. Special Requirements Development Challenges

Requirements for Maintenance Projects Begin Capturing Information
Practice New Requirements Techniques
Follow the Traceability Chain
Update the Documentation
Requirements for Package Solutions Develop Use Cases
Consider Business Rules
Define Quality Requirements
Requirements for Outsourced Projects
Requirements for Emergent Projects

Chapter 17. Beyond Requirements Development

From Requirements to Project Plans Requirements and Estimation
Requirements and Scheduling
From Requirements to Designs and Code
From Requirements to Tests
From Requirements to Success

Part 3. Software Requirements Management

Chapter 18. Requirements Management Principles and Practices

The Requirements Baseline
Requirements Management Procedures
Requirements Version Control
Requirement Attributes
Tracking Requirements Status
Measuring Requirements Management Effort

Chapter 19. Change Happens

Managing Scope Creep
The Change Control Process Change Control Policy
Change Control Process Description
The Change Control Board CCB Composition
CCB Charter
Measuring Change Activity
Change Isn’t Free: Impact Analysis Impact Analysis Procedure
Impact Analysis Report Template

Chapter 20. Links in the Requirements Chain

Tracing Requirements
Motivations for Tracing Requirements
The Requirements Traceability Matrix
Tools for Requirements Traceability
Requirements Traceability Procedure
Is Requirements Traceability Feasible? Is It Necessary?

Chapter 21. Tools for Requirements Management

Benefits of Using a Requirements Management Tool
Requirements Management Tool Capabilities
Implementing Requirements Management Automation Selecting a Tool
Changing the Culture
Making Requirements Management Tools Work for You

Part 4. Implementing Requirements Engineering

Chapter 22. Improving Your Requirements Processes

How Requirements Relate To Other Project Processes
Requirements and Various Stakeholder Groupss
Fundamentals of Software Process Improvement
The Process Improvement Cycle Assess Current Practices
Plan Improvement Actions
Create, Pilot, and Implement New Processes
Evaluate Results
Requirements Engineering Process Assets Requirements Development Process Assets
Requirements Management Process Assets
Gaining Commitment to Change
The Requirements Process Improvement Roadmap

Chapter 23. Software Requirements Risk Management

Fundamentals of Software Risk Management Elements of Risk Management
Documenting Project Risks
Planning for Risk Management
Requirements-Related Risks Requirements Elicitation
Requirements Analysis
Requirements Specification
Requirements Validation
Requirements Management
Risk Management is Your Friend

Appendix A. Current Requirements Practice Self-Assessment

Appendix B. Requirements and Process Improvement Models

The Capability Maturity Model for Software
CMMI-SE/SW
Capability Maturity Models and Process Improvement

Appendix C. Requirements Troubleshooting Guide

Root Cause Analysis
Common Impacts from Problems
Common Barriers to Implementing Solutions

Appendix D. Sample Requirements Documents

Vision and Scope
Use Cases
Software Requirements Specification, Analysis Models, and Data Dictionary
Business Rules

Glossary