Acknowledgments |
|
xiii | |
About the Author |
|
xv | |
Introduction |
|
xvii | |
1 Introduction to Requirements Engineering |
|
1 | (28) |
|
|
1 | (1) |
|
What Is Requirements Engineering? |
|
|
2 | (1) |
|
You Probably Don't Do Enough Requirements Engineering |
|
|
3 | (1) |
|
|
3 | (8) |
|
Requirements versus Goals |
|
|
4 | (1) |
|
Requirements Level Classification |
|
|
4 | (2) |
|
Requirements Specifications Types |
|
|
6 | (5) |
|
|
6 | (1) |
|
Nonfunctional Requirements |
|
|
7 | (3) |
|
|
10 | (1) |
|
Domain Vocabulary Understanding |
|
|
11 | (1) |
|
Requirements Engineering Activities |
|
|
11 | (2) |
|
Requirements Elicitation/Discovery |
|
|
11 | (1) |
|
Requirements Analysis and Agreements |
|
|
12 | (1) |
|
Requirements Representation |
|
|
12 | (1) |
|
|
12 | (1) |
|
|
13 | (1) |
|
|
13 | (4) |
|
|
17 | (1) |
|
Requirements Engineering Paradigms |
|
|
17 | (2) |
|
Requirements Engineer as Software Systems Engineer |
|
|
18 | (1) |
|
Requirements Engineer as Subject Matter Expert |
|
|
18 | (1) |
|
Requirements Engineer as Architect |
|
|
18 | (1) |
|
Requirements Engineer as Business Process Expert |
|
|
18 | (1) |
|
|
18 | (1) |
|
|
19 | (1) |
|
Problems with Traditional Requirements Engineering |
|
|
20 | (2) |
|
|
21 | (1) |
|
|
22 | (1) |
|
Difficulties in Enveloping System Behavior |
|
|
23 | (2) |
|
Danger of "All" in Specifications |
|
|
25 | (1) |
|
|
25 | (1) |
|
|
26 | (3) |
2 Preparing for Requirements Elicitation |
|
29 | (20) |
|
Product Mission Statement |
|
|
29 | (1) |
|
Encounter with a Customer |
|
|
30 | (2) |
|
|
32 | (5) |
|
|
33 | (1) |
|
Stakeholder Identification |
|
|
33 | (4) |
|
|
33 | (2) |
|
Stakeholder/Customer Classes |
|
|
35 | (1) |
|
Stakeholder Characteristics |
|
|
36 | (1) |
|
|
37 | (3) |
|
|
37 | (2) |
|
What Don't Customers Want? |
|
|
39 | (1) |
|
Why Do Customers Change Their Minds? |
|
|
40 | (1) |
|
Stakeholder Prioritization |
|
|
41 | (2) |
|
Communicating with Customers and Other Stakeholders |
|
|
43 | (2) |
|
|
44 | (1) |
|
|
45 | (1) |
|
Uncovering Stakeholder Goals |
|
|
46 | (1) |
|
|
47 | (1) |
|
|
48 | (1) |
3 Requirements Elicitation |
|
49 | (32) |
|
|
49 | (1) |
|
Preparing for Requirements Elicitation |
|
|
50 | (1) |
|
Elicitation Techniques Survey |
|
|
51 | (20) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (1) |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
59 | (1) |
|
Joint Application Design (JAD) |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
62 | (1) |
|
Quality Function Deployment |
|
|
63 | (3) |
|
|
66 | (2) |
|
|
68 | (1) |
|
|
68 | (1) |
|
|
69 | (1) |
|
|
69 | (1) |
|
|
70 | (1) |
|
|
71 | (1) |
|
|
71 | (2) |
|
Which Combination of Requirements Elicitation Techniques-Should Be Used? |
|
|
72 | (1) |
|
Prevalence of Requirements Elicitation Techniques |
|
|
72 | (1) |
|
|
73 | (5) |
|
|
77 | (1) |
|
|
77 | (1) |
|
|
78 | (1) |
|
|
78 | (1) |
|
|
79 | (2) |
4 Writing the Requirements Document |
|
81 | (24) |
|
Requirements Agreement and Analysis |
|
|
81 | (1) |
|
Requirements Representation Approaches |
|
|
82 | (3) |
|
|
85 | (7) |
|
IEEE Standard 830 Recommendations on Representing Nonfunctional Requirements |
|
|
86 | (1) |
|
IEEE Standard 830 Recommendations on Representing Functional Requirements |
|
|
87 | (3) |
|
|
88 | (1) |
|
|
89 | (1) |
|
|
90 | (2) |
|
|
92 | (1) |
|
|
93 | (5) |
|
Users of a Requirements Document |
|
|
93 | (1) |
|
Requirements Document Requirements |
|
|
94 | (14) |
|
|
95 | (1) |
|
|
95 | (1) |
|
|
96 | (2) |
|
|
98 | (1) |
|
Behavioral Specifications |
|
|
98 | (2) |
|
Best Practices and Recommendations |
|
|
100 | (2) |
|
|
102 | (1) |
|
|
103 | (2) |
5 Requirements Risk Management |
|
105 | (34) |
|
What Is Requirements Risk Management? |
|
|
105 | (3) |
|
Requirements Validation and Verification |
|
|
108 | (8) |
|
Techniques for Requirements V&V |
|
|
109 | (4) |
|
|
110 | (1) |
|
|
110 | (1) |
|
Goal-Based Requirements Analysis |
|
|
110 | (1) |
|
Requirements Understanding |
|
|
111 | (1) |
|
Validating Requirements Use Cases |
|
|
112 | (1) |
|
|
113 | (1) |
|
Requirements Validation and Verification Matrices |
|
|
113 | (2) |
|
Importance of Measurement in Requirements Validation and Verification |
|
|
115 | (1) |
|
Goal/Question/Metric Analysis |
|
|
116 | (1) |
|
Standards for Validation and Verification |
|
|
116 | (8) |
|
|
117 | (7) |
|
|
117 | (2) |
|
|
119 | (1) |
|
|
120 | (1) |
|
|
120 | (1) |
|
|
121 | (1) |
|
|
121 | (1) |
|
|
122 | (1) |
|
|
122 | (1) |
|
Example Validation of Requirements |
|
|
122 | (2) |
|
NASA Requirements Testing |
|
|
124 | (12) |
|
|
124 | (2) |
|
|
126 | (1) |
|
|
126 | (1) |
|
|
127 | (1) |
|
|
127 | (1) |
|
|
127 | (13) |
|
|
128 | (3) |
|
|
131 | (1) |
|
|
131 | (1) |
|
|
131 | (2) |
|
|
133 | (3) |
|
|
136 | (1) |
|
|
136 | (3) |
6 Formal Methods, |
|
139 | (28) |
|
|
139 | (1) |
|
|
140 | (3) |
|
Formal Methods Classification |
|
|
142 | (1) |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
143 | (16) |
|
Formalization of Train Station in B |
|
|
144 | (3) |
|
Formalization of Space Shuttle Flight Software Using MurΦ |
|
|
147 | (1) |
|
Formalization of an Energy Management System Using Category Theory |
|
|
148 | (4) |
|
Example: Energy Management System |
|
|
149 | (3) |
|
|
152 | (1) |
|
|
153 | (6) |
|
|
154 | (1) |
|
|
154 | (5) |
|
|
159 | (1) |
|
|
159 | (1) |
|
Objections, Myths, and Limitations |
|
|
159 | (4) |
|
|
160 | (2) |
|
Limitations of Formal Methods |
|
|
162 | (1) |
|
Bowen and Hinchey's Advice |
|
|
163 | (1) |
|
|
164 | (1) |
|
|
164 | (3) |
7 Requirements Specification and Agile Methodologies |
|
167 | (18) |
|
Introduction to Agile Methodologies |
|
|
167 | (3) |
|
Principles behind Agile Manifesto |
|
|
168 | (2) |
|
|
170 | (1) |
|
|
171 | (1) |
|
Requirements Engineering for Agile Methodologies |
|
|
172 | (6) |
|
General Practices in Agile Methodologies |
|
|
173 | (1) |
|
Example Application of Agile Software Development |
|
|
173 | (2) |
|
When Is Agile Recommended? |
|
|
175 | (1) |
|
Agile Requirements Best Practices |
|
|
175 | (2) |
|
Requirements Engineering in XP |
|
|
177 | (1) |
|
Requirements Engineering in Scrum |
|
|
177 | (1) |
|
|
178 | (2) |
|
Agile Requirements Engineering |
|
|
180 | (2) |
|
Story-Test-Driven Development |
|
|
181 | (1) |
|
Challenges for Requirements Engineering in Agile Methodologies |
|
|
182 | (1) |
|
|
183 | (1) |
|
|
183 | (2) |
8 Tool Support for Requirements Engineering |
|
185 | (20) |
|
|
185 | (2) |
|
|
187 | (5) |
|
Requirements Linkage Traceability Matrix |
|
|
188 | (2) |
|
Requirements Source Traceability Matrix |
|
|
190 | (1) |
|
Requirements Stakeholder Traceability Matrix |
|
|
191 | (1) |
|
Requirements Management Tools |
|
|
192 | (1) |
|
Open Source Requirements Engineering Tools |
|
|
193 | (3) |
|
|
193 | (3) |
|
Open Source Requirements Management Tool (OSRMT) |
|
|
196 | (2) |
|
|
196 | (2) |
|
Requirements Engineering Tool Best Practices |
|
|
198 | (1) |
|
Elicitation Support Technologies |
|
|
198 | (3) |
|
Using Wikis for Requirements Elicitation |
|
|
199 | (1) |
|
|
199 | (1) |
|
|
199 | (1) |
|
|
200 | (1) |
|
|
201 | (1) |
|
|
202 | (1) |
|
|
202 | (3) |
9 Requirements Management |
|
205 | (24) |
|
|
205 | (1) |
|
|
206 | (3) |
|
Managing Divergent Agendas |
|
|
206 | (1) |
|
|
207 | (2) |
|
Expectation Revisited: Pascal's Wager |
|
|
209 | (2) |
|
Global Requirements Management : |
|
|
211 | (1) |
|
Antipatterns in Requirements Management |
|
|
212 | (5) |
|
Environmental Antipatterns |
|
|
213 | (1) |
|
|
213 | (1) |
|
|
214 | (1) |
|
|
214 | (3) |
|
|
214 | (2) |
|
|
216 | (1) |
|
Other Paradigms for Requirements Management |
|
|
217 | (2) |
|
Requirements Management and Improvisational Comedy |
|
|
217 | (1) |
|
Requirements Management as Scriptwriting |
|
|
218 | (1) |
|
Standards for Requirements Management |
|
|
219 | (6) |
|
|
221 | (1) |
|
|
221 | (1) |
|
Capability Maturity Model Integrative (CMMI) |
|
|
222 | (1) |
|
|
223 | (1) |
|
|
224 | (1) |
|
|
224 | (1) |
|
A Case Study: FBI Virtual Case File |
|
|
225 | (1) |
|
|
226 | (1) |
|
|
227 | (2) |
10 Value Engineering of Requirements |
|
229 | (20) |
|
What, Why, When, and How of Value Engineering |
|
|
229 | (5) |
|
What Is Value Engineering? |
|
|
230 | (1) |
|
When Does Value Engineering Occur? |
|
|
231 | (1) |
|
Challenges to Simple Cost versus Risk Analysis |
|
|
232 | (2) |
|
Estimating Using COCOMO and Its Derivatives |
|
|
234 | (4) |
|
|
234 | (1) |
|
|
235 | (2) |
|
|
237 | (1) |
|
Estimating Using Function Points |
|
|
238 | (3) |
|
Function Point Cost Drivers |
|
|
239 | (1) |
|
|
240 | (1) |
|
|
240 | (1) |
|
Requirements Feature Cost Justification |
|
|
241 | (5) |
|
|
241 | (1) |
|
|
242 | (1) |
|
|
243 | (1) |
|
|
244 | (1) |
|
|
245 | (1) |
|
|
245 | (1) |
|
|
246 | (1) |
|
|
246 | (1) |
|
|
247 | (2) |
Appendix A: Software Requirements Specification for a Smart Home |
|
249 | (26) |
Appendix B: Software Requirements for a Wastewater Pumping Station Wet Well Control System |
|
275 | (12) |
Glossary |
|
287 | (6) |
Index |
|
293 | |