Cover image for Software requirements : practical techniques for gathering and managing requirements throughout the product development cycle
Software requirements : practical techniques for gathering and managing requirements throughout the product development cycle
Wiegers, Karl Eugene, 1953-
Personal Author:
Second edition.
Publication Information:
Redmond, Wash. : Microsoft Press, [2003]

Physical Description:
xix, 516 pages : illustrations ; 23 cm
Format :


Call Number
Material Type
Home Location
Item Holds
QA76.76.D47 W517 2003 Adult Non-Fiction Central Closed Stacks

On Order



Without formal, verifiable software requirements--and an effective system for managing them--the programs that developers think they've agreed to build often will not be the same products their customers are expecting. In SOFTWARE REQUIREMENTS, Second Edition, requirements engineering authority Karl Wiegers amplifies the best practices presented in his original award-winning text?now a mainstay for anyone participating in the software development process. In this book, you'll discover effective techniques for managing the requirements engineering process all the way through the development cycle--including dozens of techniques to facilitate that all-important communication between users, developers, and management. This updated edition features new case examples, anecdotes culled from the author's extensive consulting career, and specific Next Steps for putting the book's process-improvement principles into practice. You'll also find several new chapters, sample documents, and an incisive troubleshooting guide. Discover how to: Set achievable expectations for functionality and quality NEW: Incorporate business rules into application development Employ use cases to discover user requirements Arrest creeping requirements and manage change requests NEW: Deal with requirements on maintenance, outsourced, and package solution projects Curb the impulse to "gold-plate" your programs NEW: Grow effective requirements analysts Cut revisions--and costs--dramatically Produce better software No matter what kind of software you build, or what your role in the development process, SOFTWARE REQUIREMENTS, Second Edition, delivers expert guidance and field-tested techniques for engineering software

Author Notes

Karl E. Wiegers is a leading speaker, author, and consultant in the requirements engineering and software process improvement arenas

Table of Contents

Prefacep. xv
Part I Software Requirements: What, Why, and Who
1 The Essential Software Requirementp. 3
Software Requirements Definedp. 7
Some Interpretations of Requirementp. 7
Levels of Requirementsp. 8
What Requirements Are Notp. 12
Requirements Development and Managementp. 12
Requirements Developmentp. 13
Requirements Managementp. 14
Every Project Has Requirementsp. 15
When Bad Requirements Happen to Nice Peoplep. 17
Insufficient User Involvementp. 18
Creeping User Requirementsp. 18
Ambiguous Requirementsp. 18
Gold Platingp. 19
Minimal Specificationp. 19
Overlooked User Classesp. 20
Inaccurate Planningp. 20
Benefits from a High-Quality Requirements Processp. 20
Characteristics of Excellent Requirementsp. 22
Requirement Statement Characteristicsp. 22
Requirements Specification Characteristicsp. 24
2 Requirements from the Customer's Perspectivep. 27
Who Is the Customer?p. 29
The Customer-Development Partnershipp. 31
Requirements Bill of Rights for Software Customersp. 33
Requirements Bill of Responsibilities for Software Customersp. 36
What About Sign-Off?p. 39
3 Good Practices for Requirements Engineeringp. 43
Knowledgep. 45
Requirements Elicitationp. 47
Requirements Analysisp. 50
Requirements Specificationp. 52
Requirements Validationp. 53
Requirements Managementp. 54
Project Managementp. 56
Getting Started with New Practicesp. 57
A Requirements Development Processp. 59
4 The Requirements Analystp. 63
The Requirements Analyst Rolep. 63
The Analyst's Tasksp. 65
Essential Analyst Skillsp. 68
Essential Analyst Knowledgep. 70
The Making of an Analystp. 71
The Former Userp. 71
The Former Developerp. 72
The Subject Matter Expertp. 73
Creating a Collaborative Environmentp. 73
Part II Software Requirements Development
5 Establishing the Product Vision and Project Scopep. 77
Defining the Vision Through Business Requirementsp. 78
Conflicting Business Requirementsp. 80
Business Requirements and Use Casesp. 81
Vision and Scope Documentp. 81
1. Business Requirementsp. 83
2. Vision of the Solutionp. 85
3. Scope and Limitationsp. 86
4. Business Contextp. 88
The Context Diagramp. 90
Keeping the Scope in Focusp. 91
6 Finding the Voice of the Customerp. 95
Sources of Requirementsp. 96
User Classesp. 97
Finding User Representativesp. 101
The Product Championp. 103
External Product Championsp. 104
Product Champion Expectationsp. 105
Multiple Product Championsp. 106
Selling the Product Champion Ideap. 107
Product Champion Traps to Avoidp. 108
Who Makes the Decisions?p. 109
7 Hearing the Voice of the Customerp. 113
Requirements Elicitationp. 115
Elicitation Workshopsp. 117
Classifying Customer Inputp. 119
Some Cautions About Elicitationp. 125
Finding Missing Requirementsp. 126
How Do You Know When You're Done?p. 129
8 Understanding User Requirementsp. 131
The Use-Case Approachp. 133
Use Cases and Usage Scenariosp. 134
Identifying Use Casesp. 138
Documenting Use Casesp. 139
Use Cases and Functional Requirementsp. 145
Benefits of Use Casesp. 147
Use-Case Traps to Avoidp. 148
Event-Response Tablesp. 149
9 Playing by the Rulesp. 153
The Rules of the Businessp. 154
Factsp. 155
Constraintsp. 156
Action Enablersp. 157
Inferencesp. 158
Computationsp. 158
Documenting Business Rulesp. 160
Business Rules and Requirementsp. 161
10 Documenting the Requirementsp. 165
The Software Requirements Specificationp. 166
Labeling Requirementsp. 168
Dealing with Incompletenessp. 169
User Interfaces and the SRSp. 170
A Software Requirements Specification Templatep. 171
1. Introductionp. 172
2. Overall Descriptionp. 173
3. System Featuresp. 175
4. External Interface Requirementsp. 176
5. Other Nonfunctional Requirementsp. 178
6. Other Requirementsp. 180
Appendix A Glossaryp. 180
Appendix B Analysis Modelsp. 180
Appendix C Issues Listp. 181
Guidelines for Writing Requirementsp. 181
Sample Requirements, Before and Afterp. 185
The Data Dictionaryp. 190
11 A Picture Is Worth 1024 Wordsp. 193
Modeling the Requirementsp. 194
From Voice of the Customer to Analysis Modelsp. 195
Data Flow Diagramp. 197
Entity-Relationship Diagramp. 200
State-Transition Diagramp. 203
Dialog Mapp. 206
Class Diagramsp. 210
Decision Tables and Decision Treesp. 212
A Final Reminderp. 214
12 Beyond Functionality: Software Quality Attributesp. 215
Quality Attributesp. 216
Defining Quality Attributesp. 218
Attributes Important to Usersp. 219
Attributes Important to Developersp. 225
Performance Requirementsp. 227
Defining Nonfunctional Requirements By Using Planguagep. 228
Attribute Trade-Offsp. 229
Implementing Nonfunctional Requirementsp. 231
13 Risk Reduction Through Prototypingp. 233
Prototyping: What and Whyp. 234
Horizontal Prototypesp. 235
Vertical Prototypesp. 236
Throwaway Prototypesp. 236
Evolutionary Prototypesp. 238
Paper and Electronic Prototypesp. 240
Prototype Evaluationp. 242
The Risks of Prototypingp. 243
Prototyping Success Factorsp. 245
14 Setting Requirement Prioritiesp. 247
Why Prioritize Requirements?p. 248
Games People Play with Prioritiesp. 249
A Prioritization Scalep. 250
Prioritization Based on Value, Cost, and Riskp. 252
15 Validating the Requirementsp. 259
Reviewing Requirementsp. 262
The Inspection Processp. 264
Requirements Review Challengesp. 272
Testing the Requirementsp. 273
Defining Acceptance Criteriap. 280
16 Special Requirements Development Challengesp. 283
Requirements for Maintenance Projectsp. 283
Begin Capturing Informationp. 284
Practice New Requirements Techniquesp. 287
Follow the Traceability Chainp. 287
Update the Documentationp. 288
Requirements for Package Solutionsp. 288
Develop Use Casesp. 289
Consider Business Rulesp. 290
Define Quality Requirementsp. 290
Requirements for Outsourced Projectsp. 291
Requirements for Emergent Projectsp. 293
Casual User Requirements Specificationp. 294
On-Site Customerp. 295
Early and Frequent Prioritizationp. 296
Simple Change Managementp. 296
17 Beyond Requirements Developmentp. 297
From Requirements to Project Plansp. 298
Requirements and Estimationp. 300
Requirements and Schedulingp. 304
From Requirements to Designs and Codep. 304
From Requirements to Testsp. 307
From Requirements to Successp. 309
Part III Software Requirements Management
18 Requirements Management Principles and Practicesp. 313
The Requirements Baselinep. 315
Requirements Management Proceduresp. 315
Requirements Version Controlp. 317
Requirement Attributesp. 319
Tracking Requirements Statusp. 321
Measuring Requirements Management Effortp. 324
19 Change Happensp. 327
Managing Scope Creepp. 329
The Change-Control Processp. 331
Change-Control Policyp. 332
Change-Control Process Descriptionp. 333
The Change Control Boardp. 338
CCB Compositionp. 339
CCB Charterp. 339
Change-Control Toolsp. 341
Measuring Change Activityp. 342
Change Isn't Free: Impact Analysisp. 344
Impact Analysis Procedurep. 345
Impact Analysis Report Templatep. 350
20 Links in the Requirements Chainp. 353
Tracing Requirementsp. 354
Motivations for Tracing Requirementsp. 357
The Requirements Traceability Matrixp. 358
Tools for Requirements Tracingp. 362
Requirements Traceability Procedurep. 364
Is Requirements Traceability Feasible? Is It Necessary?p. 365
21 Tools for Requirements Managementp. 367
Benefits of Using a Requirements Management Toolp. 370
Requirements Management Tool Capabilitiesp. 372
Implementing Requirements Management Automationp. 374
Selecting a Toolp. 374
Changing the Culturep. 375
Making Requirements Management Tools Work for Youp. 378
Part IV Implementing Requirements Engineering
22 Improving Your Requirements Processesp. 381
How Requirements Relate to Other Project Processesp. 382
Requirements and Various Stakeholder Groupsp. 384
Fundamentals of Software Process Improvementp. 386
The Process Improvement Cyclep. 389
Assess Current Practicesp. 389
Plan Improvement Actionsp. 390
Create, Pilot, and Implement New Processesp. 392
Evaluate Resultsp. 393
Requirements Engineering Process Assetsp. 395
Requirements Development Process Assetsp. 396
Requirements Management Process Assetsp. 398
Requirements Process Improvement Road Mapp. 399
23 Software Requirements and Risk Managementp. 401
Fundamentals of Software Risk Managementp. 403
Elements of Risk Managementp. 403
Documenting Project Risksp. 404
Planning for Risk Managementp. 407
Requirements-Related Risksp. 408
Requirements Elicitationp. 408
Requirements Analysisp. 410
Requirements Specificationp. 410
Requirements Validationp. 411
Requirements Managementp. 411
Risk Management Is Your Friendp. 412
Epiloguep. 415
A Current Requirements Practice Self-Assessmentp. 417
B Requirements and Process Improvement Modelsp. 425
The Capability Maturity Model for Softwarep. 425
CMMI-SE/SWp. 428
Requirements Management Process Areap. 430
Requirements Development Process Areap. 430
C Requirements Troubleshooting Guidep. 433
Root Cause Analysisp. 434
Common Symptoms of Requirements Problemsp. 435
Common Barriers to Implementing Solutionsp. 436
D Sample Requirements Documentsp. 457
Vision and Scope Documentp. 458
Use Casesp. 463
Software Requirements Specificationp. 469
Business Rulesp. 482
Glossaryp. 483
Referencesp. 491
Indexp. 505