| |
| |
Acknowledgments | |
| |
| |
Introduction | |
| |
| |
About the Author | |
| |
| |
| |
Introduction to Requirements Engineering | |
| |
| |
Motivation | |
| |
| |
What Is Requirements Engineering? | |
| |
| |
You Probably Don't Do Enough Requirements Engineering | |
| |
| |
What Are Requirements? | |
| |
| |
Requirements Versus Goals | |
| |
| |
Requirements Level Classification | |
| |
| |
Requirements Specifications Types | |
| |
| |
Functional Requirements | |
| |
| |
Nonfunctional Requirements | |
| |
| |
Domain Requirements | |
| |
| |
Domain Vocabulary Understanding | |
| |
| |
Requirements Engineering Activities | |
| |
| |
Requirements Elicitation/Discovery | |
| |
| |
Requirements Analysis and Reconciliation | |
| |
| |
Requirements Representation and Modeling | |
| |
| |
Requirements Validation | |
| |
| |
Requirements Management | |
| |
| |
The Requirements Engineer | |
| |
| |
Requirements Engineer Paradigms | |
| |
| |
Requirements Engineer as Softward Systems Engineer | |
| |
| |
Requirements Engineer as Subject Matter Expert | |
| |
| |
Requirements Engineer as Architect | |
| |
| |
Requirements Engineer as Business Process Expert | |
| |
| |
Ignorance as Virtue | |
| |
| |
Role of the Customer? | |
| |
| |
Problems with Traditional Requirements Engineering | |
| |
| |
Complexity | |
| |
| |
Four Dark Corners (Zave and Jackson) | |
| |
| |
Difficulties in Enveloping System Behavior | |
| |
| |
The Danger of "All" in Specifications | |
| |
| |
References | |
| |
| |
| |
Mission Statement, Customers, and Stakeholders | |
| |
| |
Mission Statements | |
| |
| |
Encounter with a Customer? | |
| |
| |
Stakeholders | |
| |
| |
Negative Stakeholders | |
| |
| |
Stakeholder Identification | |
| |
| |
Stakeholder Questions | |
| |
| |
Stakeholder/Customer Classes | |
| |
| |
Customer Wants and Needs | |
| |
| |
What Do Customers Want? | |
| |
| |
What Don't Customers Want? | |
| |
| |
Why Do Customers Change Their Minds? | |
| |
| |
Stakeholder Prioritization | |
| |
| |
Communicating with Customers and Other Stakeholders | |
| |
| |
Managing Expectations | |
| |
| |
Stakeholder Negotiations | |
| |
| |
References | |
| |
| |
| |
Requirements Elicitation | |
| |
| |
Introduction | |
| |
| |
Elicitation Techniques Survey | |
| |
| |
Brainstorming | |
| |
| |
Card Sorting | |
| |
| |
Designer as Apprentice | |
| |
| |
Domain Analysis | |
| |
| |
Ethnographic Observation | |
| |
| |
Goal-Based Approaches | |
| |
| |
Group Work | |
| |
| |
Interviews | |
| |
| |
Introspection | |
| |
| |
Joint Application Design (JAD) | |
| |
| |
Laddering | |
| |
| |
Protocol Analysis | |
| |
| |
Prototyping | |
| |
| |
Quality Function Deployment | |
| |
| |
Questionnaires | |
| |
| |
Repertory Grids | |
| |
| |
Scenarios | |
| |
| |
Task Analysis | |
| |
| |
User Stories | |
| |
| |
Viewpoints | |
| |
| |
Workshops | |
| |
| |
Elicitation Summary | |
| |
| |
Which Combination of Requirements Elicitation Techniques Should Be Used? | |
| |
| |
Prevalence of Requirements Elicitation Techniques | |
| |
| |
Elicitation Support Technologies | |
| |
| |
Using Wikis for Requirements Elicitation | |
| |
| |
Mobile Technologies | |
| |
| |
Content Analysis | |
| |
| |
References | |
| |
| |
| |
Writing the Requirements Document | |
| |
| |
Requirements Representation Approaches | |
| |
| |
IEEE Standard 830-1998 | |
| |
| |
IEEE Standard 830 Recommendations on Representing Non-Functional Requirements | |
| |
| |
IEEE Standard 830 Recommendations on Representing Functional Requirements | |
| |
| |
Operating System | |
| |
| |
Command Validation | |
| |
| |
ISO/IEC Standard 25030 | |
| |
| |
Use Cases | |
| |
| |
Behavioral Specifications | |
| |
| |
The Requirements Document | |
| |
| |
Users of a Requirements Document | |
| |
| |
Requirements Document Requirements | |
| |
| |
Preferred Writing Style | |
| |
| |
Text Structure | |
| |
| |
Best Practices and Recommendations | |
| |
| |
References | |
| |
| |
| |
Requirements Risk Management | |
| |
| |
What Is Requirements Risk Management? | |
| |
| |
Requirements Validation and Verification | |
| |
| |
Techniques for Requirements V&V | |
| |
| |
Goal-Based Requirements Analysis | |
| |
| |
Requirements Understanding | |
| |
| |
Validating Requirements Use Cases | |
| |
| |
Prototyping | |
| |
| |
The Requirements Validation Matrix | |
| |
| |
The Importance of Measurement in Requirements Verification and Validation | |
| |
| |
Goal/Question/Metric Analysis | |
| |
| |
Standards for Verification and Validation | |
| |
| |
IEEE Standard 830 | |
| |
| |
Correctness | |
| |
| |
Ambiguity | |
| |
| |
Completeness | |
| |
| |
Consistency | |
| |
| |
Ranking | |
| |
| |
Verifiability | |
| |
| |
Modifiability | |
| |
| |
Traceability | |
| |
| |
NASA Requirements Testing | |
| |
| |
NASA ARM Tool | |
| |
| |
Imperatives | |
| |
| |
Continuances | |
| |
| |
Directives | |
| |
| |
Options | |
| |
| |
Weak Phrases | |
| |
| |
Incomplete | |
| |
| |
Subjects | |
| |
| |
Specification Depth | |
| |
| |
Readability Statistics | |
| |
| |
Summary of NASA Metrics | |
| |
| |
References | |
| |
| |
| |
Formal Methods | |
| |
| |
Motivation | |
| |
| |
What Are Formal Methods? | |
| |
| |
A Little History | |
| |
| |
Using Formal Methods | |
| |
| |
Formal Methods Types | |
| |
| |
Examples | |
| |
| |
Formalization of Train Station in B | |
| |
| |
Formalization of Space Shuttle Flight Software Using Mur | |
| |
| |
Formalization of an Energy Management System Using Category Theory | |
| |
| |
Example: An Energy Management System | |
| |
| |
Requirements Validation | |
| |
| |
Theorem Proving | |
| |
| |
Program Correctness | |
| |
| |
Hoare Logic | |
| |
| |
Model Checking | |
| |
| |
Objections, Myths, and Limitations | |
| |
| |
Objections and Myths | |
| |
| |
Limitations of Formal Methods | |
| |
| |
Final Advice | |
| |
| |
References | |
| |
| |
| |
Requirements Specification and Agile Methodologies | |
| |
| |
Introduction to Agile Methodologies | |
| |
| |
Principles Behind the Agile Manifesto | |
| |
| |
Extreme Programming (XP) | |
| |
| |
Scrum | |
| |
| |
Requirements Engineering for Agile Methodologies | |
| |
| |
General Practices in Agile Methodologies | |
| |
| |
Agile Requirements Best Practices | |
| |
| |
Requirements Engineering in XP | |
| |
| |
Requirements Engineering in Scrum | |
| |
| |
Writing User Stories | |
| |
| |
Agile Requirements Engineering | |
| |
| |
Challenges for Requirements Engineering in Agile Methodologies | |
| |
| |
Bibliography | |
| |
| |
| |
Tool Support for Requirements Engineering | |
| |
| |
Introduction | |
| |
| |
Traceability Support | |
| |
| |
Commercial Requirements Engineering Tools | |
| |
| |
DOORS | |
| |
| |
Rational RequisitePro | |
| |
| |
Requirements and Traceability Management | |
| |
| |
CaliberRM | |
| |
| |
QFD/Capture | |
| |
| |
Open Source Requirements Engineering Tools | |
| |
| |
FreeMind | |
| |
| |
Open Source Requirements Management Tool (OSRMT) | |
| |
| |
FitNesse | |
| |
| |
Requirements Engineering Tool Best Practices | |
| |
| |
References | |
| |
| |
| |
Requirements Management | |
| |
| |
Introduction | |
| |
| |
Managing Divergent Agendas | |
| |
| |
Expectation Revisited: Pascal's Wager | |
| |
| |
Global Requirements Management | |
| |
| |
Antipatterns in Requirements Management | |
| |
| |
Environmental Antipatterns | |
| |
| |
Divergent Goals | |
| |
| |
Process Clash | |
| |
| |
Management Antipatterns | |
| |
| |
Metric Abuse | |
| |
| |
Mushroom Management | |
| |
| |
Other Paradigms for Requirements Management | |
| |
| |
Requirements Management and Improvisational Comedy | |
| |
| |
Requirements Management as Scriptwriting | |
| |
| |
Reference Models for Requirements Management | |
| |
| |
ISO 9000-3 (1997) | |
| |
| |
Six Sigma | |
| |
| |
Capability Maturity Model (CMMI) | |
| |
| |
IEEE 830 | |
| |
| |
IEEE 12207 (2002) | |
| |
| |
ISO/IEC 25030 | |
| |
| |
A Case Study: FBI Virtual Case File | |
| |
| |
References | |
| |
| |
| |
Value Engineering of Requirements | |
| |
| |
What, Why, When, and How of Value Engineering? | |
| |
| |
What Is Value Engineering? | |
| |
| |
When Does Value Engineering Occur? | |
| |
| |
Estimating Using COCOMO and Its Derivatives | |
| |
| |
COCOMO | |
| |
| |
WEBMO | |
| |
| |
COSYSMO | |
| |
| |
Estimating Using Function Points | |
| |
| |
Function Point Cost Drivers | |
| |
| |
Feature Points | |
| |
| |
Use Case Points | |
| |
| |
Requirements Feature Cost Justification | |
| |
| |
Return on Investment | |
| |
| |
Net Present Value | |
| |
| |
Internal Rate of Return | |
| |
| |
Profitability Index | |
| |
| |
Payback Period | |
| |
| |
Discounted Payback Period | |
| |
| |
References | |
| |
| |
Appendix Software Requirements Specification for a Smart Home, Version 2.0, September 20, 2008 | |
| |
| |
Glossary | |
| |
| |
Index | |