Acknowledgments |
|
xv | |
Introduction |
|
xvii | |
About the Author |
|
xxi | |
1 Introduction to Requirements Engineering |
|
1 | |
|
|
1 | |
|
What Is Requirements Engineering? |
|
|
2 | |
|
You Probably Don't Do Enough Requirements Engineering |
|
|
3 | |
|
|
4 | |
|
Requirements Versus Goals |
|
|
4 | |
|
Requirements Level Classification |
|
|
4 | |
|
Requirements Specifications Types |
|
|
6 | |
|
|
6 | |
|
Nonfunctional Requirements |
|
|
7 | |
|
|
10 | |
|
Domain Vocabulary Understanding |
|
|
11 | |
|
Requirements Engineering Activities |
|
|
11 | |
|
Requirements Elicitation/Discovery |
|
|
11 | |
|
Requirements Analysis and Reconciliation |
|
|
12 | |
|
Requirements Representation and Modeling |
|
|
12 | |
|
|
12 | |
|
|
13 | |
|
The Requirements Engineer |
|
|
13 | |
|
Requirements Engineering Paradigms |
|
|
13 | |
|
Requirements Engineer as Software Systems Engineer |
|
|
14 | |
|
Requirements Engineer as Subject Matter Expert |
|
|
14 | |
|
Requirements Engineer as Architect |
|
|
14 | |
|
Requirements Engineer as Business Process Expert |
|
|
14 | |
|
|
15 | |
|
|
15 | |
|
Problems with Traditional Requirements Engineering |
|
|
16 | |
|
|
17 | |
|
Four Dark Corners (Zave and Jackson) |
|
|
18 | |
|
Difficulties in Enveloping System Behavior |
|
|
19 | |
|
The Danger of "All" in Specifications |
|
|
21 | |
|
|
22 | |
2 Mission Statement, Customers, and Stakeholders |
|
23 | |
|
|
23 | |
|
Encounter with a Customer? |
|
|
24 | |
|
|
26 | |
|
|
27 | |
|
Stakeholder Identification |
|
|
27 | |
|
|
27 | |
|
Stakeholder/Customer Classes |
|
|
29 | |
|
|
30 | |
|
|
30 | |
|
What Don't Customers Want? |
|
|
33 | |
|
Why Do Customers Change Their Minds? |
|
|
34 | |
|
Stakeholder Prioritization |
|
|
35 | |
|
Communicating with Customers and Other Stakeholders |
|
|
36 | |
|
|
37 | |
|
|
38 | |
|
|
40 | |
3 Requirements Elicitation |
|
41 | |
|
|
41 | |
|
Elicitation Techniques Survey |
|
|
42 | |
|
|
42 | |
|
|
42 | |
|
|
44 | |
|
|
45 | |
|
|
45 | |
|
|
46 | |
|
|
48 | |
|
|
48 | |
|
|
50 | |
|
Joint Application Design (JAD) |
|
|
50 | |
|
|
51 | |
|
|
52 | |
|
|
53 | |
|
Quality Function Deployment |
|
|
54 | |
|
|
55 | |
|
|
56 | |
|
|
57 | |
|
|
57 | |
|
|
58 | |
|
|
59 | |
|
|
60 | |
|
|
60 | |
|
Which Combination of Requirements Elicitation Techniques Should Be Used? |
|
|
60 | |
|
Prevalence of Requirements Elicitation Techniques |
|
|
63 | |
|
Elicitation Support Technologies |
|
|
63 | |
|
Using Wikis for Requirements Elicitation |
|
|
63 | |
|
|
65 | |
|
|
65 | |
|
|
66 | |
4 Writing the Requirements Document |
|
69 | |
|
Requirements Representation Approaches |
|
|
69 | |
|
|
71 | |
|
IEEE Standard 830 Recommendations on Representing Non-Functional Requirements |
|
|
72 | |
|
IEEE Standard 830 Recommendations on Representing Functional Requirements |
|
|
73 | |
|
|
74 | |
|
|
75 | |
|
|
76 | |
|
|
78 | |
|
Behavioral Specifications |
|
|
79 | |
|
The Requirements Document |
|
|
81 | |
|
Users of a Requirements Document |
|
|
82 | |
|
Requirements Document Requirements |
|
|
82 | |
|
|
83 | |
|
|
83 | |
|
Best Practices and Recommendations |
|
|
84 | |
|
|
86 | |
5 Requirements Risk Management |
|
87 | |
|
What Is Requirements Risk Management? |
|
|
87 | |
|
Requirements Validation and Verification |
|
|
89 | |
|
Techniques for Requirements V&V |
|
|
90 | |
|
Goal-Based Requirements Analysis |
|
|
90 | |
|
Requirements Understanding |
|
|
91 | |
|
Validating Requirements Use Cases |
|
|
92 | |
|
|
92 | |
|
The Requirements Validation Matrix |
|
|
92 | |
|
The Importance of Measurement in Requirements Verification and Validation |
|
|
93 | |
|
Goal/Question/Metric Analysis |
|
|
94 | |
|
Standards for Verification and Validation |
|
|
95 | |
|
|
96 | |
|
|
97 | |
|
|
97 | |
|
|
98 | |
|
|
99 | |
|
|
99 | |
|
|
100 | |
|
|
100 | |
|
|
100 | |
|
NASA Requirements Testing |
|
|
101 | |
|
|
101 | |
|
|
103 | |
|
|
103 | |
|
|
105 | |
|
|
105 | |
|
|
105 | |
|
|
106 | |
|
|
107 | |
|
|
107 | |
|
|
108 | |
|
|
108 | |
|
|
111 | |
6 Formal Methods |
|
113 | |
|
|
113 | |
|
|
114 | |
|
|
115 | |
|
|
116 | |
|
|
116 | |
|
|
117 | |
|
Formalization of Train Station in B |
|
|
117 | |
|
Formalization of Space Shuttle Flight Software Using MurΦ |
|
|
121 | |
|
Formalization of an Energy Management System Using Category Theory |
|
|
122 | |
|
Example: An Energy Management System |
|
|
124 | |
|
|
126 | |
|
|
128 | |
|
|
128 | |
|
|
129 | |
|
|
133 | |
|
Objections, Myths, and Limitations |
|
|
134 | |
|
|
134 | |
|
Limitations of Formal Methods |
|
|
135 | |
|
|
136 | |
|
|
137 | |
7 Requirements Specification and Agile Methodologies |
|
139 | |
|
Introduction to Agile Methodologies |
|
|
139 | |
|
Principles Behind the Agile Manifesto |
|
|
140 | |
|
|
142 | |
|
|
143 | |
|
Requirements Engineering for Agile Methodologies |
|
|
144 | |
|
General Practices in Agile Methodologies |
|
|
145 | |
|
Agile Requirements Best Practices |
|
|
145 | |
|
Requirements Engineering in XP |
|
|
147 | |
|
Requirements Engineering in Scrum |
|
|
147 | |
|
|
148 | |
|
Agile Requirements Engineering |
|
|
150 | |
|
Challenges for Requirements Engineering in Agile Methodologies |
|
|
152 | |
|
|
153 | |
8 Tool Support for Requirements Engineering |
|
155 | |
|
|
155 | |
|
|
156 | |
|
Commercial Requirements Engineering Tools |
|
|
159 | |
|
|
160 | |
|
|
160 | |
|
Requirements and Traceability Management |
|
|
160 | |
|
|
160 | |
|
|
161 | |
|
Open Source Requirements Engineering Tools |
|
|
161 | |
|
|
161 | |
|
Open Source Requirements Management Tool (OSRMT) |
|
|
163 | |
|
|
166 | |
|
Requirements Engineering Tool Best Practices |
|
|
167 | |
|
|
168 | |
9 Requirements Management |
|
171 | |
|
|
171 | |
|
Managing Divergent Agendas |
|
|
171 | |
|
Expectation Revisited: Pascal's Wager |
|
|
173 | |
|
Global Requirements Management |
|
|
174 | |
|
Antipatterns in Requirements Management |
|
|
176 | |
|
Environmental Antipatterns |
|
|
177 | |
|
|
177 | |
|
|
178 | |
|
|
178 | |
|
|
178 | |
|
|
179 | |
|
Other Paradigms for Requirements Management |
|
|
180 | |
|
Requirements Management and Improvisational Comedy |
|
|
180 | |
|
Requirements Management as Scriptwriting |
|
|
181 | |
|
Reference Models for Requirements Management |
|
|
182 | |
|
|
183 | |
|
|
183 | |
|
Capability Maturity Model (CMMI) |
|
|
184 | |
|
|
185 | |
|
|
185 | |
|
|
185 | |
|
A Case Study: FBI Virtual Case File |
|
|
186 | |
|
|
187 | |
10 Value Engineering of Requirements |
|
189 | |
|
What, Why, When, and How of Value Engineering? |
|
|
189 | |
|
What Is Value Engineering? |
|
|
189 | |
|
When Does Value Engineering Occur? |
|
|
190 | |
|
Estimating Using COCOMO and Its Derivatives |
|
|
190 | |
|
|
191 | |
|
|
192 | |
|
|
193 | |
|
Estimating Using Function Points |
|
|
194 | |
|
Function Point Cost Drivers |
|
|
194 | |
|
|
196 | |
|
|
196 | |
|
Requirements Feature Cost Justification |
|
|
197 | |
|
|
197 | |
|
|
198 | |
|
|
199 | |
|
|
200 | |
|
|
201 | |
|
Discounted Payback Period |
|
|
201 | |
|
|
202 | |
Appendix Software Requirements Specification for a Smart Home, Version 2.0, September 20, 2008 |
|
203 | |
Glossary |
|
229 | |
Index |
|
233 | |