| |
| |
Preface | |
| |
| |
| |
Software Requirements: What, Why, and Who | |
| |
| |
| |
The Essential Software Requirement | |
| |
| |
Software Requirements Defined | |
| |
| |
Some Interpretations of Requirement | |
| |
| |
Levels of Requirements | |
| |
| |
What Requirements Are Not | |
| |
| |
Requirements Development and Management | |
| |
| |
Requirements Development | |
| |
| |
Requirements Management | |
| |
| |
Every Project Has Requirements | |
| |
| |
When Bad Requirements Happen to Nice People | |
| |
| |
Insufficient User Involvement | |
| |
| |
Creeping User Requirements | |
| |
| |
Ambiguous Requirements | |
| |
| |
Gold Plating | |
| |
| |
Minimal Specification | |
| |
| |
Overlooked User Classes | |
| |
| |
Inaccurate Planning | |
| |
| |
Benefits from a High-Quality Requirements Process | |
| |
| |
Characteristics of Excellent Requirements | |
| |
| |
Requirement Statement Characteristics | |
| |
| |
Requirements Specification Characteristics | |
| |
| |
| |
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? | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
Creating a Collaborative Environment | |
| |
| |
| |
Software Requirements Development | |
| |
| |
| |
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 | |
| |
| |
| |
Business Requirements | |
| |
| |
| |
Vision of the Solution | |
| |
| |
| |
Scope and Limitations | |
| |
| |
| |
Business Context | |
| |
| |
The Context Diagram | |
| |
| |
Keeping the Scope in Focus | |
| |
| |
| |
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? | |
| |
| |
| |
Hearing the Voice of the Customer | |
| |
| |
Requirements Elicitation | |
| |
| |
Elicitation Workshops | |
| |
| |
Classifying Customer Input | |
| |
| |
Some Cautions About Elicitation | |
| |
| |
Finding Missing Requirements | |
| |
| |
How Do You Know When You're Done? | |
| |
| |
| |
Understanding User Requirements | |
| |
| |
The Use-Case Approach | |
| |
| |
Use Cases and Usage Scenarios | |
| |
| |
Identifying Use Cases | |
| |
| |
Documenting Use Cases | |
| |
| |
Use Cases and Functional Requirements | |
| |
| |
Benefits of Use Cases | |
| |
| |
Use-Case Traps to Avoid | |
| |
| |
Event-Response Tables | |
| |
| |
| |
Playing by the Rules | |
| |
| |
The Rules of the Business | |
| |
| |
Facts | |
| |
| |
Constraints | |
| |
| |
Action Enablers | |
| |
| |
Inferences | |
| |
| |
Computations | |
| |
| |
Documenting Business Rules | |
| |
| |
Business Rules and Requirements | |
| |
| |
| |
Documenting the Requirements | |
| |
| |
The Software Requirements Specification | |
| |
| |
Labeling Requirements | |
| |
| |
Dealing with Incompleteness | |
| |
| |
User Interfaces and the SRS | |
| |
| |
A Software Requirements Specification Template | |
| |
| |
| |
Introduction | |
| |
| |
| |
Overall Description | |
| |
| |
| |
System Features | |
| |
| |
| |
External Interface Requirements | |
| |
| |
| |
Other Nonfunctional Requirements | |
| |
| |
| |
Other Requirements | |
| |
| |
| |
Glossary | |
| |
| |
| |
Analysis Models | |
| |
| |
| |
Issues List | |
| |
| |
Guidelines for Writing Requirements | |
| |
| |
Sample Requirements, Before and After | |
| |
| |
The Data Dictionary | |
| |
| |
| |
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 Diagrams | |
| |
| |
Decision Tables and Decision Trees | |
| |
| |
A Final Reminder | |
| |
| |
| |
Beyond Functionality: Software Quality Attributes | |
| |
| |
Quality Attributes | |
| |
| |
Defining Quality Attributes | |
| |
| |
Attributes Important to Users | |
| |
| |
Attributes Important to Developers | |
| |
| |
Performance Requirements | |
| |
| |
Defining Nonfunctional Requirements By Using Planguage | |
| |
| |
Attribute Trade-Offs | |
| |
| |
Implementing Nonfunctional Requirements | |
| |
| |
| |
Risk Reduction Through Prototyping | |
| |
| |
Prototyping: What and Why | |
| |
| |
Horizontal Prototypes | |
| |
| |
Vertical Prototypes | |
| |
| |
Throwaway Prototypes | |
| |
| |
Evolutionary Prototypes | |
| |
| |
Paper and Electronic Prototypes | |
| |
| |
Prototype Evaluation | |
| |
| |
The Risks of Prototyping | |
| |
| |
Prototyping Success Factors | |
| |
| |
| |
Setting Requirement Priorities | |
| |
| |
Why Prioritize Requirements? | |
| |
| |
Games People Play with Priorities | |
| |
| |
A Prioritization Scale | |
| |
| |
Prioritization Based on Value, Cost, and Risk | |
| |
| |
| |
Validating the Requirements | |
| |
| |
Reviewing Requirements | |
| |
| |
The Inspection Process | |
| |
| |
Requirements Review Challenges | |
| |
| |
Testing the Requirements | |
| |
| |
Defining Acceptance Criteria | |
| |
| |
| |
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 | |
| |
| |
Casual User Requirements Specification | |
| |
| |
On-Site Customer | |
| |
| |
Early and Frequent Prioritization | |
| |
| |
Simple Change Management | |
| |
| |
| |
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 | |
| |
| |
| |
Software Requirements Management | |
| |
| |
| |
Requirements Management Principles and Practices | |
| |
| |
The Requirements Baseline | |
| |
| |
Requirements Management Procedures | |
| |
| |
Requirements Version Control | |
| |
| |
Requirement Attributes | |
| |
| |
Tracking Requirements Status | |
| |
| |
Measuring Requirements Management Effort | |
| |
| |
| |
Change Happens | |
| |
| |
Managing Scope Creep | |
| |
| |
The Change-Control Process | |
| |
| |
Change-Control Policy | |
| |
| |
Change-Control Process Description | |
| |
| |
The Change Control Board | |
| |
| |
CCB Composition | |
| |
| |
CCB Charter | |
| |
| |
Change-Control Tools | |
| |
| |
Measuring Change Activity | |
| |
| |
Change Isn't Free: Impact Analysis | |
| |
| |
Impact Analysis Procedure | |
| |
| |
Impact Analysis Report Template | |
| |
| |
| |
Links in the Requirements Chain | |
| |
| |
Tracing Requirements | |
| |
| |
Motivations for Tracing Requirements | |
| |
| |
The Requirements Traceability Matrix | |
| |
| |
Tools for Requirements Tracing | |
| |
| |
Requirements Traceability Procedure | |
| |
| |
Is Requirements Traceability Feasible? Is It Necessary? | |
| |
| |
| |
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 | |
| |
| |
| |
Implementing Requirements Engineering | |
| |
| |
| |
Improving Your Requirements Processes | |
| |
| |
How Requirements Relate to Other Project Processes | |
| |
| |
Requirements and Various Stakeholder Groups | |
| |
| |
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 | |
| |
| |
Requirements Process Improvement Road Map | |
| |
| |
| |
Software Requirements and 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 | |
| |
| |
Epilogue | |
| |
| |
| |
Current Requirements Practice Self-Assessment | |
| |
| |
| |
Requirements and Process Improvement Models | |
| |
| |
The Capability Maturity Model for Software | |
| |
| |
CMMI-SE/SW | |
| |
| |
Requirements Management Process Area | |
| |
| |
Requirements Development Process Area | |
| |
| |
| |
Requirements Troubleshooting Guide | |
| |
| |
Root Cause Analysis | |
| |
| |
Common Symptoms of Requirements Problems | |
| |
| |
Common Barriers to Implementing Solutions | |
| |
| |
| |
Sample Requirements Documents | |
| |
| |
Vision and Scope Document | |
| |
| |
Use Cases | |
| |
| |
Software Requirements Specification | |
| |
| |
Business Rules | |
| |
| |
Glossary | |
| |
| |
References | |
| |
| |
Index | |