Acknowledgments | p. xv |
Introduction | p. xvii |
About the Author | p. xxi |
Introduction to Requirements Engineering | p. 1 |
Motivation | p. 1 |
What Is Requirements Engineering? | p. 2 |
You Probably Don't Do Enough Requirements Engineering | p. 3 |
What Are Requirements? | p. 4 |
Requirements Versus Goals | p. 4 |
Requirements Level Classification | p. 4 |
Requirements Specifications Types | p. 6 |
Functional Requirements | p. 6 |
Nonfunctional Requirements | p. 7 |
Domain Requirements | p. 10 |
Domain Vocabulary Understanding | p. 11 |
Requirements Engineering Activities | p. 11 |
Requirements Elicitation/Discovery | p. 11 |
Requirements Analysis and Reconciliation | p. 12 |
Requirements Representation and Modeling | p. 12 |
Requirements Validation | p. 12 |
Requirements Management | p. 13 |
The Requirements Engineer | p. 13 |
Requirements Engineer Paradigms | p. 13 |
Requirements Engineer as Softward Systems Engineer | p. 14 |
Requirements Engineer as Subject Matter Expert | p. 14 |
Requirements Engineer as Architect | p. 14 |
Requirements Engineer as Business Process Expert | p. 14 |
Ignorance as Virtue | p. 15 |
Role of the Customer? | p. 15 |
Problems with Traditional Requirements Engineering | p. 16 |
Complexity | p. 17 |
Four Dark Corners (Zave and Jackson) | p. 18 |
Difficulties in Enveloping System Behavior | p. 19 |
The Danger of "All" in Specifications | p. 21 |
References | p. 22 |
Mission Statement, Customers, and Stakeholders | p. 23 |
Mission Statements | p. 23 |
Encounter with a Customer? | p. 24 |
Stakeholders | p. 26 |
Negative Stakeholders | p. 27 |
Stakeholder Identification | p. 27 |
Stakeholder Questions | p. 27 |
Stakeholder/Customer Classes | p. 29 |
Customer Wants and Needs | p. 30 |
What Do Customers Want? | p. 30 |
What Don't Customers Want? | p. 33 |
Why Do Customers Change Their Minds? | p. 34 |
Stakeholder Prioritization | p. 35 |
Communicating with Customers and Other Stakeholders | p. 36 |
Managing Expectations | p. 37 |
Stakeholder Negotiations | p. 38 |
References | p. 40 |
Requirements Elicitation | p. 41 |
Introduction | p. 41 |
Elicitation Techniques Survey | p. 42 |
Brainstorming | p. 42 |
Card Sorting | p. 42 |
Designer as Apprentice | p. 44 |
Domain Analysis | p. 45 |
Ethnographic Observation | p. 45 |
Goal-Based Approaches | p. 46 |
Group Work | p. 48 |
Interviews | p. 48 |
Introspection | p. 50 |
Joint Application Design (JAD) | p. 50 |
Laddering | p. 51 |
Protocol Analysis | p. 52 |
Prototyping | p. 53 |
Quality Function Deployment | p. 54 |
Questionnaires | p. 55 |
Repertory Grids | p. 56 |
Scenarios | p. 57 |
Task Analysis | p. 57 |
User Stories | p. 58 |
Viewpoints | p. 59 |
Workshops | p. 60 |
Elicitation Summary | p. 60 |
Which Combination of Requirements Elicitation Techniques Should Be Used? | p. 60 |
Prevalence of Requirements Elicitation Techniques | p. 63 |
Elicitation Support Technologies | p. 63 |
Using Wikis for Requirements Elicitation | p. 63 |
Mobile Technologies | p. 65 |
Content Analysis | p. 65 |
References | p. 66 |
Writing the Requirements Document | p. 69 |
Requirements Representation Approaches | p. 69 |
IEEE Standard 830-1998 | p. 71 |
IEEE Standard 830 Recommendations on Representing Non-Functional Requirements | p. 72 |
IEEE Standard 830 Recommendations on Representing Functional Requirements | p. 73 |
Operating System | p. 74 |
Command Validation | p. 75 |
ISO/IEC Standard 25030 | p. 76 |
Use Cases | p. 78 |
Behavioral Specifications | p. 79 |
The Requirements Document | p. 81 |
Users of a Requirements Document | p. 82 |
Requirements Document Requirements | p. 82 |
Preferred Writing Style | p. 83 |
Text Structure | p. 83 |
Best Practices and Recommendations | p. 84 |
References | p. 86 |
Requirements Risk Management | p. 87 |
What Is Requirements Risk Management? | p. 87 |
Requirements Validation and Verification | p. 89 |
Techniques for Requirements V&V | p. 90 |
Goal-Based Requirements Analysis | p. 90 |
Requirements Understanding | p. 91 |
Validating Requirements Use Cases | p. 92 |
Prototyping | p. 92 |
The Requirements Validation Matrix | p. 92 |
The Importance of Measurement in Requirements Verification and Validation | p. 93 |
Goal/Question/Metric Analysis | p. 94 |
Standards for Verification and Validation | p. 95 |
IEEE Standard 830 | p. 96 |
Correctness | p. 97 |
Ambiguity | p. 97 |
Completeness | p. 98 |
Consistency | p. 99 |
Ranking | p. 99 |
Verifiability | p. 100 |
Modifiability | p. 100 |
Traceability | p. 100 |
NASA Requirements Testing | p. 101 |
NASA ARM Tool | p. 101 |
Imperatives | p. 103 |
Continuances | p. 103 |
Directives | p. 105 |
Options | p. 105 |
Weak Phrases | p. 105 |
Incomplete | p. 106 |
Subjects | p. 107 |
Specification Depth | p. 107 |
Readability Statistics | p. 108 |
Summary of NASA Metrics | p. 108 |
References | p. 111 |
Formal Methods | p. 113 |
Motivation | p. 113 |
What Are Formal Methods? | p. 114 |
A Little History | p. 115 |
Using Formal Methods | p. 116 |
Formal Methods Types | p. 116 |
Examples | p. 117 |
Formalization of Train Station in B | p. 117 |
Formalization of Space Shuttle Flight Software Using Mur | p. 121 |
Formalization of an Energy Management System Using Category Theory | p. 122 |
Example: An Energy Management System | p. 124 |
Requirements Validation | p. 126 |
Theorem Proving | p. 128 |
Program Correctness | p. 128 |
Hoare Logic | p. 129 |
Model Checking | p. 133 |
Objections, Myths, and Limitations | p. 134 |
Objections and Myths | p. 134 |
Limitations of Formal Methods | p. 135 |
Final Advice | p. 136 |
References | p. 137 |
Requirements Specification and Agile Methodologies | p. 139 |
Introduction to Agile Methodologies | p. 139 |
Principles Behind the Agile Manifesto | p. 140 |
Extreme Programming (XP) | p. 142 |
Scrum | p. 143 |
Requirements Engineering for Agile Methodologies | p. 144 |
General Practices in Agile Methodologies | p. 145 |
Agile Requirements Best Practices | p. 145 |
Requirements Engineering in XP | p. 147 |
Requirements Engineering in Scrum | p. 147 |
Writing User Stories | p. 148 |
Agile Requirements Engineering | p. 150 |
Challenges for Requirements Engineering in Agile Methodologies | p. 152 |
Bibliography | p. 153 |
Tool Support for Requirements Engineering | p. 155 |
Introduction | p. 155 |
Traceability Support | p. 156 |
Commercial Requirements Engineering Tools | p. 159 |
DOORS | p. 160 |
Rational RequisitePro | p. 160 |
Requirements and Traceability Management | p. 160 |
CaliberRM | p. 160 |
QFD/Capture | p. 161 |
Open Source Requirements Engineering Tools | p. 161 |
FreeMind | p. 161 |
Open Source Requirements Management Tool (OSRMT) | p. 163 |
FitNesse | p. 166 |
Requirements Engineering Tool Best Practices | p. 167 |
References | p. 168 |
Requirements Management | p. 171 |
Introduction | p. 171 |
Managing Divergent Agendas | p. 171 |
Expectation Revisited: Pascal's Wager | p. 173 |
Global Requirements Management | p. 174 |
Antipatterns in Requirements Management | p. 176 |
Environmental Antipatterns | p. 177 |
Divergent Goals | p. 177 |
Process Clash | p. 178 |
Management Antipatterns | p. 178 |
Metric Abuse | p. 178 |
Mushroom Management | p. 179 |
Other Paradigms for Requirements Management | p. 180 |
Requirements Management and Improvisational Comedy | p. 180 |
Requirements Management as Scriptwriting | p. 181 |
Reference Models for Requirements Management | p. 182 |
ISO 9000-3 (1997) | p. 183 |
Six Sigma | p. 183 |
Capability Maturity Model (CMMI) | p. 184 |
IEEE 830 | p. 185 |
IEEE 12207 (2002) | p. 185 |
ISO/IEC 25030 | p. 185 |
A Case Study: FBI Virtual Case File | p. 186 |
References | p. 187 |
Value Engineering of Requirements | p. 189 |
What, Why, When, and How of Value Engineering? | p. 189 |
What Is Value Engineering? | p. 189 |
When Does Value Engineering Occur? | p. 190 |
Estimating Using COCOMO and Its Derivatives | p. 190 |
COCOMO | p. 191 |
WEBMO | p. 192 |
COSYSMO | p. 193 |
Estimating Using Function Points | p. 194 |
Function Point Cost Drivers | p. 194 |
Feature Points | p. 196 |
Use Case Points | p. 196 |
Requirements Feature Cost Justification | p. 197 |
Return on Investment | p. 197 |
Net Present Value | p. 198 |
Internal Rate of Return | p. 199 |
Profitability Index | p. 200 |
Payback Period | p. 201 |
Discounted Payback Period | p. 201 |
References | p. 202 |
Appendix Software Requirements Specification for a Smart Home, Version 2.0, September 20, 2008 | p. 203 |
Glossary | p. 229 |
Index | p. 233 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.