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