Foreword\r\nPreface\r\nIntroduction\r\n\r\nChapter 1 The Requirements Problem\r\n\r\nThe Goal\r\nA Look at the Data\r\nRoot Causes of Project Success and Fai1ure\r\nThe Frequency of Requirements Errors\r\nThe High Cost of Requirements Errors\r\nConclusion\r\n\r\nChapter 2 Introduction to Requirements Management\r\n\r\nDefinitions\r\nWhat Is a Requirement?\r\nWhat Is Requlrements Management?\r\nApplication of Requirements Management Techniques\r\nTypes of Software Applications\r\nSystems Applications\r\nThe Road Map\r\nThe Problem Domain\r\nStakeholder Needs\r\nMoving Toward the Solution Domain\r\nFeatures of the System\r\nSofrware Requirements\r\nAn Introduction to Use Cases\r\nSummary\r\n\r\nChapter 3 The SoftWare Team\r\n\r\nSofrware Development as a Team Activity\r\nRequisite Team Skills for Effective Requirements\r\nManagement\r\nTeam Members Have Different Skills\r\nThe Organization of Software Teams\r\nThe Case Study\r\nBackground for the Case Study\r\nThe HOLIS Software Development Team\r\nSummary\r\n\r\nTeam Skill 1 Analyzing the Problem\r\n\r\nChapter 4 The Five Steps in Problem Analysis\r\n\r\nStep 1: Gain Agreement on the Problem Definition\r\nThe Problem Statement\r\nStep 2: Understand the Root Causes——The Problem Behind\r\nthe Problem\r\nAddressing the Root Cause\r\nStep 3: Identify the Stakeholders and the Users\r\nStep 4: Define the Solution System Boundary\r\nStep 5: Identify the Constraints to Be Imposed on the Solution\r\nSummary\r\nLooking Ahead\r\n\r\nChapter 5 Business Modeling\r\n\r\nPurpose of Business Modeling\r\nUsing Software Engineering Techniques for Business Modeling\r\nChoosing the Xight Technique\r\nThe Unified Modeling Language (UML)\r\nBusiness Modeling Using UML Concepts\r\nFrom the Business Models to the Systems Model\r\nWhen to Use Business Modeling\r\nSummary\r\nLooking Ahead\r\n\r\nChapter 6 Systems Engineering of Software-Intensive SyStems\r\n\r\nWhat Is Systems Engineering?\r\nPragmatic Principles of Systems Engineering\r\nThe Composition and Decomposition of Complex Systems\r\nRequirements Allocation in Systems Engineering\r\nOn Derived Requirements\r\nA Quiet Revolution\r\nWhen Generations Collide: Graybeard Meets Young\r\nChapter 3 The Software Team\r\nSofrware Development as a Team Activty\r\nRequisite Team Skills for Effective Requirements\r\nManagement\r\nTeam Members Have Different Skills\r\n\r\nTeam Skill 2 Understending User Needs\r\n\r\nChapter 7 The Challenge of Requirements Elicitation\r\n\r\nBarriers to Elicitation\r\nThe“Yes, But”Syndrome\r\nThe“Undiscovered Ruins” Syndrome\r\nThe“User and the Developer” Syndrome\r\nTechniques for Requirements Elicitation\r\n\r\nChapter 8 The Features of a Product or System\r\n\r\nStakeholder and User Needs\r\nFeatures\r\nManaging Complekity by Picking the Level of Abstraction\r\nAttributes of Product Features\r\n\r\nChapter 9 Interviewing\r\n\r\nThe Interview Context\r\nThe Context-Free Question\r\nValue-Added Context\r\nThe Moment of Truth: The Interview\r\nCompiling the Need Data\r\nThe Analyst's Summary:10 + l0 + l0 30\r\nThe Case Study\r\nA Note on Questionnaires\r\n\r\nChapter 10 Requirements Workshops\r\n\r\nAccelerating the Decision Process\r\nPreparing for the Workshop\r\nSelling the Concept\r\nEnsuring the Participation of the Right Stakeholders\r\nLogistics\r\n“Warm--Up Materia1s”\r\nRole of the Facilitator\r\nSetting the Agenda\r\nRunning the Workshop\r\nProblems and Trcks of the Trade\r\nBrainstorming and Idea Reduction\r\nProduction and Follow--Up\r\n\r\nChapter 11 Brainstorming and ldea Reduction\r\n\r\nLive Brainstorming\r\nIdea Reduction\r\nPruning\r\nGrouping Ideas\r\nFeature Definition\r\nPrioritization\r\nWeb-Based Brainstorming\r\nThe Case Study: The HOLIS 2000 Requirements Workshop\r\nAttendees\r\nThe Workshop\r\nThe Session\r\nAnalysis of Results\r\n\r\nChapter 12 Storyboarding\r\n\r\nTypes of Storyboards\r\nWhat Storyboards Do\r\nTools and Techniques for Storyboarding\r\nTps for Storyboarding\r\nSummary\r\n\r\nChapter 13 Applying Use Cases\r\n\r\nBuilding the Use--Case Model\r\nApplying Use Cases to Requirements Elicitation\r\nCase Study: The Use Cases for HOLIS\r\nSummary\r\n\r\nChapter 14 Role Playing\r\n\r\nHow to Role Play\r\nTechniques Similar to Role Playing\r\nScripted Walkthroughs\r\nCRC (Class -- Responsibility- Collaboration) Cards\r\nSummary\r\n\r\nChapter 15 Prototyping\r\n\r\nTypes of Prototypes\r\nRequirements Protownes\r\nWhat to Prototype\r\nBuilding the Protompe\r\nEvaluating che Results\r\nSummary\r\nTeam Skill 2 Summary\r\n\r\nTeam Skill 3 Defining the System\r\n\r\nChapter 16 Organizing Requirements Information\r\n\r\nOrganizing Requirements of Complex Hardware and\r\nSoftware Systems\r\nOrganizing Requirements for Product Families\r\nOn“Future” Requirements\r\nBusiness and Marketing Requirements versus Product\r\nRequirements\r\nThe Case Study\r\nSummary\r\n\r\nChapter 17 The Vision Document\r\n\r\nComponents of the Vision Document\r\nThe“Delta Vision” Document\r\nVision Document for Release 1 .0\r\nVision Document for Version 2 .0\r\nThe Delta Vision Document in a Legacy System\r\nEnvironment\r\n\r\nChapter 18 The Champion\r\n\r\nThe Role of the Product Champion\r\nThe Product Champion in a Sofrware Product Environment\r\nThe Product Champion in an IS/IT Shop\r\nTeam Skill 3 Summary\r\n\r\nTeam Skill 4 Managing Scope\r\n\r\nChapter 19 The Problem of Proect Scope\r\n\r\nComponents of Project Scope\r\nThe Hard Question\r\n\r\nChapter 20 Establishing Proect Scope\r\n\r\nThe Requirements Baseline\r\nSetting Priorities\r\nAssessing Effort\r\nAdding the Risk Element\r\nReducing Scope\r\nA Reasonable First Estimate\r\nThe Case Study\r\n\r\nChapter 21 Managing Your Customer\r\n\r\nEngaging Customers to Manage Their Project Scope\r\nCommunicating the Result\r\nNegotiating with the Customer\r\nManaging the Baseline\r\nOfficial Change\r\nUnofficial Change\r\n\r\nChapter 22 Scope Management and Sotheare Development\r\n\r\nProcess Models\r\nThe Waterfall Model\r\nThe Spiral Model\r\nThe Iterative Approach\r\nLifecycle Phases\r\nIterations\r\nWorkflows\r\nWhat to Do, What to Do...\r\nTeam Skill 4 Summary\r\n\r\nTeam Skill 5 Refining the System Definition\r\n\r\nChapter 23 Software Requirements\r\n\r\nDefinition of Software Requirements\r\nRelationship between Features.and Sobore Requirements\r\nThe Requirements Dilemma: What versus How\r\nExclude Project Information\r\nExclude Design Information\r\nMore on Requirements versus Design\r\nIterating Requirements and Design\r\nA Further Characterization of Requirements\r\nFunctional Sofrware Requirements\r\nNonfunctional Software Requirements\r\nDesign Constraints\r\nAre Design Constraints True Requirements?\r\nUsing Parent--Child Requirements to Increase Specificity\r\nOrganizing Parent--Child Requirements\r\nLooking Anead\r\n\r\nChapter 24 Refining the Use Cases\r\n\r\nQuestions to Ask\r\nWhen Should I Use the Use--Case Methodology?\r\nWhen Are Use Cases Not the Best Choice?\r\nThe Redundancy Problem\r\nRefining Use-Case Specifications\r\nHow Use Cases Evolve\r\nThe Scope of a Use Case\r\nThe Case Study: Anatomy of a Simple Use Case\r\nDefine the Actor(s)\r\nDefine the Use Case by Naming It\r\nWrite a Brief Description\r\nDefine a Flow of Events\r\nIdentify Pre-- and Postconditions\r\nLooking Ahead\r\n\r\nChapter 25 A Modern SoftWre Requirements Specification\r\n\r\nThe Modern SRS Package\r\nWho Owns the SRS Package?\r\nOrganizing the Modern SRS Package\r\nDocumenting Functional Requirements\r\nLooking Anead\r\n\r\nChapter 26 On Ambiguity and Specificity\r\n\r\nFinding the“Sweet Spot”\r\nMary Had a Little Lamb\r\nTechniques for Disambiguation\r\nWhat to Do?\r\n\r\nChapter 27 Quality Measures of Sotheare Requirements\r\n\r\nNine Quality Measures\r\nCorrect Requirements\r\nUnambiguous Requirements\r\nCompleteness of the Requirements Set\r\nConsistency in the Requirements Set\r\nRequirements Ranked fOr Importance and Stability\r\nVerifiable Requirement\r\nModifiable Requirements Set\r\nTraceable Requirements\r\nUnderstandable Requirements\r\nQuality Measures for the Use-Case Model\r\nUse-Case Specifications\r\nUse-Case Actors\r\nQuality Measures of the Modern SRS Package\r\nA Good Table of Contents\r\nA Good Index\r\nA Revision Hstory\r\nA Glossary\r\n\r\nChapter 28 Technical Methods for Specifying Requirements\r\n\r\nPseudocode\r\nFinite State Machines\r\nDecision Trees and Decision Tables\r\nGraphical Decision Trees\r\nActhaty Diagrams\r\nEntity-Relationship Models\r\nObject--Oriented Modeling\r\nData Flow Diagrams\r\nMaintenance of Specifications\r\nCase Study\r\nTeam Skill 5 Summary\r\n\r\nTdem Skill 6 Building the Right System:\r\n\r\nChaptcr 29 Building the Right System Right: Overview\r\n\r\nContinually Confirm that the Development Is on Track\r\nPrinciples of Sofrware Verification\r\nThe Cost of Verification\r\nVerification at All Levels\r\nThe Reason for Verification\r\nConfirm that the Development Results Are Correct\r\nLearn How to Cope with Change that Occurs during the\r\nDevelopment Process\r\nLooking Ahead\r\n\r\nChapter 30 From Requirements to Implementation\r\n\r\nMapping Requirements to Design and Code\r\nThe Orthogonality Problem\r\nObject Orientation\r\nThe Use Case as a Requirement\r\nManaging the Transition\r\nModeling Software Systems\r\nRole of the Use-Case Model in Architecture\r\nRealizing Use Cases in the Design Model\r\nStructural and Behavioral Aspects of Collaborations\r\nUsing Collaborations to Realize Sets of Individual Requirements\r\nFrom Design to Implementation\r\nSummary\r\nLooking Ahead\r\n\r\nChapter 31 Using Traceability to Support Verification\r\n\r\nThe Role of Traceability in Requirements Verification\r\nImplicit versus Explicit Traceability\r\nAdditional Traceability Options to Consider\r\nUsing Traceability Tools\r\nMaintenance of Traceability Relationships\r\nProceeding without Traceability Tools\r\nOmitted Verification Relationships\r\nExcess Verification Relahonships\r\nThinking about Verification and Traceability\r\nLooking Ahead\r\n\r\nChapter 32 Validating the System\r\n\r\nValidation\r\nAcceptance Tests\r\nValidation Testing\r\nValidation Traceability\r\nRequirements-Based Testing\r\nCase Study: Testing Use Cases\r\nTest Case l Description\r\nTracing Test Cases\r\nTesting Discrete Requirements\r\nOmitted Validation Relationships\r\nExcess Validation Relahonships\r\nTesting Design Constraints\r\nLooking Ahead\r\n\r\nChapter 33 Using ROI to Determine the V&V Effort\r\n\r\nDepth versus Coverage\r\nV&V Depth\r\nV&V Coverage\r\nWhat to Verify and Validate\r\nOption l: Verify and Validate Everything\r\nOption 2: Use a Hazard Analysis to Determine V&V Necessihes\r\nHazard Analysis as Return on Investment (ROI)\r\nLooking Ahead\r\n\r\nChapter 34 Managing Change\r\n\r\nWhy Do Requirements Change?\r\nExtenral Factors\r\nInternal Factors\r\n“We Have Met the Enemy, and They Is Us”\r\nA Process for Managing Change,\r\nStep l: Recognize that Change Is Inevitable, and Plan for It\r\nStep 2: Baseline the Requirements\r\nStep 3: Establish a Single Channel to Conrrol Change\r\nStep 4: Use a Change Control System to Capture Changes\r\nStep 5: Manage Change Hierarchically\r\nRequirements ConfigUration Management\r\nTool--Based Support for Change Management\r\nE1ements Impacted by Change\r\nAndit Trail of Change History\r\nConfiguration Management and Change Management\r\nSummary\r\nTeam Skill 6 Summary\r\n\r\nChapter 35 Getting Started\r\n\r\nDedication\r\nWhat We've Learned So Far\r\nIntroduction\r\nTeam Skill 1: Analyzing the Problem\r\nTeam Skill 2: Understanding User Needs\r\nTeam Skill 3: Defining the System\r\nTeam Skill 4: Managing Scope\r\nTeam Skill 5: Refining the System Definition\r\nTeam Skill 6: Building the kight System\r\nYour Prescription for Requirements Management\r\nSimplifying Assumptions\r\nThe Recipe\r\nNow, On to the Next Release!\r\n\r\nAppendix A HOLIS Artifacts\r\nAppendix B Vision Document Template\r\nAPpendix C Modern SRS Package Template\r\nAppendix D Requirements Management in the SEI-CMM and within ISO 9000\r\nAppcndix E Requirements Management in the Rdtional Unified Process\r\nBibliography\r\nIndex