Preface |
|
xv | |
Acknowledgments |
|
xxi | |
Authors |
|
xxiii | |
|
1 Introduction to Requirements Engineering |
|
|
1 | (26) |
|
|
1 | (1) |
|
What Is Requirements Engineering? |
|
|
1 | (1) |
|
You Probably Don't Do Enough Requirements Engineering |
|
|
2 | (1) |
|
|
3 | (1) |
|
Requirements vs. Features vs. Goals |
|
|
3 | (1) |
|
Requirements Classifications |
|
|
4 | (1) |
|
Requirements Level Classification |
|
|
4 | (1) |
|
Requirements Specifications Types |
|
|
5 | (1) |
|
|
6 | (1) |
|
Nonfunctional Requirements |
|
|
7 | (1) |
|
|
7 | (1) |
|
Domain Vocabulary Understanding |
|
|
7 | (2) |
|
Requirements Engineering Activities |
|
|
9 | (1) |
|
Requirements Elicitation/Discovery |
|
|
9 | (1) |
|
Requirements Analysis and Agreement |
|
|
9 | (1) |
|
Requirements Representation |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
10 | (1) |
|
|
10 | (3) |
|
The Requirements Engineer |
|
|
13 | (1) |
|
Requirements Engineer Roles |
|
|
14 | (1) |
|
Requirements Engineer as Software or Systems Engineer |
|
|
14 | (1) |
|
Requirements Engineer as Subject Matter Expert |
|
|
14 | (1) |
|
Requirements Engineer as Architect |
|
|
15 | (1) |
|
Requirements Engineer as Business Process Expert |
|
|
15 | (1) |
|
|
15 | (1) |
|
|
16 | (1) |
|
Problems with Traditional Requirements Engineering |
|
|
16 | (1) |
|
|
17 | (1) |
|
Gold-Plating and Ridiculous Requirements |
|
|
18 | (1) |
|
|
18 | (1) |
|
|
19 | (1) |
|
Difficulties in Enveloping System Behavior |
|
|
20 | (1) |
|
The Danger of "All" in Specifications |
|
|
21 | (1) |
|
|
22 | (1) |
|
|
23 | (4) |
|
2 Preparing for Requirements Elicitation |
|
|
27 | (28) |
|
Product Business Goals and Mission Statements |
|
|
27 | (2) |
|
Encounter with a Customer |
|
|
29 | (1) |
|
Identifying the System Boundaries |
|
|
30 | (1) |
|
|
30 | (1) |
|
|
31 | (1) |
|
|
32 | (1) |
|
Stakeholder Identification |
|
|
32 | (1) |
|
Stakeholder Identification Questions |
|
|
32 | (2) |
|
|
34 | (2) |
|
|
36 | (1) |
|
Stakeholders vs. Use Case Actors |
|
|
37 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
38 | (2) |
|
What Don't Customers Want? |
|
|
40 | (1) |
|
Why Do Customers Change Their Minds? |
|
|
41 | (1) |
|
Stakeholder Prioritization |
|
|
42 | (1) |
|
Communicating with Customers and Other Stakeholders |
|
|
43 | (1) |
|
|
44 | (4) |
|
|
48 | (1) |
|
Uncovering Stakeholder Goals |
|
|
49 | (2) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
52 | (3) |
|
3 Requirements Elicitation |
|
|
55 | (36) |
|
|
55 | (1) |
|
Requirements Elicitation - First Step |
|
|
56 | (1) |
|
Elicitation Techniques Survey |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
58 | (1) |
|
|
59 | (2) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
62 | (1) |
|
|
63 | (1) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
68 | (1) |
|
|
68 | (1) |
|
|
69 | (2) |
|
Quality Function Deployment |
|
|
71 | (2) |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
75 | (1) |
|
|
76 | (2) |
|
|
78 | (1) |
|
|
78 | (1) |
|
|
79 | (1) |
|
Eliciting Nonfunctional Requirements |
|
|
79 | (1) |
|
|
80 | (1) |
|
Which Combination of Requirements Elicitation Techniques Should Be Used? |
|
|
80 | (4) |
|
Prevalence of Requirements Elicitation Techniques |
|
|
84 | (1) |
|
|
84 | (1) |
|
|
85 | (1) |
|
|
85 | (1) |
|
|
86 | (2) |
|
|
88 | (1) |
|
|
88 | (1) |
|
|
89 | (2) |
|
4 Writing the Requirements Document |
|
|
91 | (22) |
|
Requirements Agreement and Analysis |
|
|
91 | (1) |
|
Requirements Representation |
|
|
92 | (1) |
|
Approaches to Requirements Representation |
|
|
92 | (2) |
|
ISO/IEC/IEEE Standard 29148 |
|
|
94 | (1) |
|
Recommendations on Representing Nonfunctional Requirements |
|
|
95 | (1) |
|
Recommendations on Representing Functional Requirements |
|
|
96 | (1) |
|
|
97 | (1) |
|
|
98 | (1) |
|
|
99 | (1) |
|
The Requirements Document |
|
|
100 | (1) |
|
Users of a Requirements Document |
|
|
100 | (1) |
|
Requirements Document Requirements |
|
|
101 | (1) |
|
|
101 | (1) |
|
|
102 | (1) |
|
|
102 | (2) |
|
|
104 | (1) |
|
|
104 | (1) |
|
Avoiding Imprecision in Requirements |
|
|
105 | (2) |
|
Requirements Document Size |
|
|
107 | (1) |
|
Behavioral Specifications |
|
|
107 | (1) |
|
Best Practices and Recommendations |
|
|
108 | (2) |
|
|
110 | (1) |
|
|
111 | (2) |
|
5 On Nonfunctional Requirements |
|
|
113 | (18) |
|
Motivation to Consider NFRs Earlier in Development |
|
|
113 | (2) |
|
|
115 | (2) |
|
What Are the Different Types of NFRs? |
|
|
117 | (2) |
|
Quality Requirements in Practice |
|
|
119 | (2) |
|
Specifying with Quality Attribute Scenarios |
|
|
121 | (1) |
|
Specifying with Planguage |
|
|
121 | (1) |
|
Popular Quality Requirements |
|
|
122 | (1) |
|
|
122 | (1) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
124 | (1) |
|
|
124 | (1) |
|
|
124 | (1) |
|
Other Approaches to Handle NFRs in RE |
|
|
125 | (1) |
|
|
125 | (1) |
|
Incorporating NFRs with UML Models |
|
|
126 | (2) |
|
|
128 | (1) |
|
|
128 | (3) |
|
6 Requirements Validations and Verifications |
|
|
131 | (36) |
|
What Is Requirements Risk Management? |
|
|
131 | (3) |
|
Validation and Verification |
|
|
134 | (1) |
|
Techniques for Requirements V&V |
|
|
135 | (1) |
|
|
135 | (1) |
|
|
135 | (1) |
|
Goal-Based Requirements Analysis |
|
|
136 | (1) |
|
Requirements Understanding |
|
|
137 | (1) |
|
Validating Requirements Use Cases |
|
|
138 | (1) |
|
|
138 | (1) |
|
|
138 | (2) |
|
Requirements V&V Matrices |
|
|
140 | (1) |
|
|
141 | (1) |
|
ISO/IECIEEE Standard 29148 |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
144 | (1) |
|
|
144 | (1) |
|
|
145 | (1) |
|
|
145 | (2) |
|
|
147 | (1) |
|
|
147 | (1) |
|
|
148 | (1) |
|
Example Validation of Requirements |
|
|
148 | (1) |
|
|
148 | (1) |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
150 | (1) |
|
|
150 | (1) |
|
The Importance of Measurement in Requirements V&V |
|
|
150 | (1) |
|
Goal/Question/Metric Analysis |
|
|
151 | (2) |
|
NASA Requirements Testing |
|
|
153 | (1) |
|
|
154 | (1) |
|
|
154 | (2) |
|
|
156 | (1) |
|
|
156 | (1) |
|
|
156 | (1) |
|
|
156 | (1) |
|
|
157 | (1) |
|
|
158 | (1) |
|
|
158 | (2) |
|
|
160 | (1) |
|
|
161 | (3) |
|
|
164 | (1) |
|
|
164 | (1) |
|
|
165 | (2) |
|
|
167 | (28) |
|
|
167 | (1) |
|
|
168 | (1) |
|
Formal Methods Classification |
|
|
169 | (1) |
|
|
169 | (1) |
|
|
170 | (1) |
|
|
170 | (1) |
|
Formalization of Train Station in B |
|
|
171 | (2) |
|
Formalization of Space Shuttle Flight Software Using MurΦ |
|
|
173 | (1) |
|
Formalization of an Energy Management System Using Category Theory |
|
|
174 | (2) |
|
Example: An Energy Management System |
|
|
176 | (2) |
|
Other Notable Formal Methods for Requirements Engineering |
|
|
178 | (1) |
|
|
178 | (1) |
|
Consistency Checking Using Truth Tables |
|
|
179 | (1) |
|
Consistency Checking by Inspection |
|
|
180 | (1) |
|
Consistency Checking Limitations |
|
|
180 | (2) |
|
|
182 | (1) |
|
|
182 | (1) |
|
|
182 | (3) |
|
|
185 | (1) |
|
|
186 | (1) |
|
Which Formal Approach to Use? |
|
|
187 | (1) |
|
Objections, Myths, and Limitations |
|
|
187 | (1) |
|
|
188 | (1) |
|
Limitations of Formal Methods |
|
|
189 | (1) |
|
Combining Formal and Informal Methods |
|
|
190 | (1) |
|
Bowen and Hinchey's Advice |
|
|
190 | (2) |
|
|
192 | (1) |
|
|
193 | (1) |
|
|
193 | (2) |
|
8 Requirements Specification and Agile Methodologies |
|
|
195 | (24) |
|
Introduction to Agile Methodologies |
|
|
195 | (1) |
|
Principles Behind the Agile Manifesto |
|
|
196 | (1) |
|
Benefits of Agile Software Development |
|
|
197 | (1) |
|
|
197 | (1) |
|
|
198 | (2) |
|
|
200 | (1) |
|
|
200 | (1) |
|
Requirements Engineering for Agile Methodologies |
|
|
201 | (4) |
|
|
205 | (1) |
|
Example Application of Agile Software Development |
|
|
206 | (1) |
|
When Is Agile Recommended? |
|
|
207 | (1) |
|
Requirements Engineering in XP |
|
|
208 | (1) |
|
Requirements Engineering in Scrum |
|
|
209 | (1) |
|
|
210 | (1) |
|
|
210 | (1) |
|
|
211 | (1) |
|
Prioritizing User Stories |
|
|
212 | (1) |
|
User Stories vs. Use Cases |
|
|
212 | (1) |
|
Agile Requirements Engineering vs. Requirements Engineering in Agile |
|
|
212 | (1) |
|
Story-Test-Driven Development |
|
|
212 | (2) |
|
State of Practice for Requirements Engineering in Agile Methodologies |
|
|
214 | (1) |
|
Challenges for Requirements Engineering in Agile Methodologies |
|
|
214 | (2) |
|
|
216 | (1) |
|
|
217 | (1) |
|
|
217 | (2) |
|
9 Tool Support for Requirements Engineering |
|
|
219 | (24) |
|
|
219 | (2) |
|
|
221 | (2) |
|
Requirements Linkage Traceability Matrix |
|
|
223 | (2) |
|
Requirements Source Traceability Matrix |
|
|
225 | (1) |
|
Requirements Stakeholder Traceability Matrix |
|
|
226 | (1) |
|
Requirements Management Tools |
|
|
227 | (1) |
|
|
228 | (1) |
|
Open-Source Requirements Engineering Tools |
|
|
229 | (1) |
|
|
230 | (2) |
|
|
232 | (1) |
|
Requirements Engineering Tool Best Practices |
|
|
233 | (1) |
|
Elicitation Support Technologies |
|
|
234 | (1) |
|
Using Wikis for Requirements Elicitation |
|
|
234 | (1) |
|
|
235 | (1) |
|
|
235 | (1) |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
237 | (1) |
|
|
238 | (1) |
|
|
239 | (4) |
|
10 Requirements Management |
|
|
243 | (26) |
|
|
243 | (1) |
|
Requirements Management Process |
|
|
243 | (2) |
|
Configuration Management and Control |
|
|
245 | (1) |
|
|
245 | (1) |
|
Managing Divergent Agendas |
|
|
246 | (1) |
|
|
247 | (1) |
|
Analytical Hierarchical Process (AHP) |
|
|
247 | (2) |
|
Wideband Delphi Technique |
|
|
249 | (1) |
|
Expectation Revisited: Pascal's Wager |
|
|
250 | (1) |
|
Global Requirements Management |
|
|
251 | (2) |
|
Antipatterns in Requirements Management |
|
|
253 | (1) |
|
Environmental Antipatterns |
|
|
254 | (1) |
|
|
254 | (1) |
|
|
255 | (1) |
|
|
255 | (1) |
|
|
255 | (1) |
|
|
256 | (1) |
|
Other Paradigms for Requirements Management |
|
|
257 | (1) |
|
Requirements Management and Improvisational Comedy |
|
|
257 | (1) |
|
Requirements Management as Scriptwriting |
|
|
258 | (2) |
|
Standards for Requirements Management |
|
|
260 | (1) |
|
Capability Maturity Model Integration |
|
|
261 | (1) |
|
|
262 | (1) |
|
|
263 | (1) |
|
|
263 | (3) |
|
|
266 | (1) |
|
|
266 | (1) |
|
|
266 | (3) |
|
11 Value Engineering of Requirements |
|
|
269 | (26) |
|
What, Why, When, and How of Value Engineering |
|
|
269 | (1) |
|
What Is Value Engineering? |
|
|
270 | (1) |
|
When Does Value Engineering Occur? |
|
|
271 | (1) |
|
Challenges to Simple Cost vs. Risk Analysis |
|
|
272 | (1) |
|
Estimating Software Effort |
|
|
273 | (1) |
|
The Aspect of Software Size |
|
|
273 | (1) |
|
|
274 | (1) |
|
|
274 | (1) |
|
|
275 | (1) |
|
Estimating Using Function Points |
|
|
275 | (1) |
|
Function Point Cost Drivers |
|
|
275 | (2) |
|
|
277 | (1) |
|
The Relationship between Functional Size and Effort |
|
|
277 | (2) |
|
Estimating Using COCOMO and Its Derivatives |
|
|
279 | (1) |
|
|
279 | (2) |
|
|
281 | (1) |
|
|
282 | (1) |
|
|
283 | (1) |
|
|
284 | (1) |
|
Considerations for Nonfunctional Requirements in Size Measurements |
|
|
284 | (1) |
|
Software Effort Estimation in Practice |
|
|
285 | (2) |
|
Requirements Feature Cost Justification |
|
|
287 | (1) |
|
|
287 | (1) |
|
|
288 | (1) |
|
|
288 | (1) |
|
|
289 | (1) |
|
|
289 | (1) |
|
|
290 | (1) |
|
|
290 | (2) |
|
|
292 | (1) |
|
|
293 | (1) |
|
|
293 | (2) |
|
12 Requirements Engineering: A Road Map to the Future |
|
|
295 | (12) |
|
Shaping Factors of the Future Landscape of Requirements Engineering |
|
|
295 | (1) |
|
The Changing Landscape of Requirements Engineering |
|
|
296 | (1) |
|
Requirements Engineering for Small Businesses |
|
|
296 | (2) |
|
Requirements Engineering and Disruptive Technologies |
|
|
298 | (1) |
|
Requirements Engineering and Blockchain |
|
|
298 | (2) |
|
Requirements Engineering and Internet of Things |
|
|
300 | (2) |
|
Requirements Engineering and Artificial Intelligence (AI) |
|
|
302 | (1) |
|
Requirements Engineering and Cloud Computing |
|
|
303 | (1) |
|
Requirements Engineering and Affective Computing |
|
|
304 | (1) |
|
|
304 | (3) |
Appendix A Software Requirements Specification for a Smart Home |
|
307 | (22) |
Appendix B Software Requirements for a Wastewater Pumping Station Wet-Well Control System |
|
329 | (12) |
Appendix C Unified Modeling Language (UML) |
|
341 | (14) |
Appendix D User Stories |
|
355 | (8) |
Appendix E Use Cases |
|
363 | (18) |
Appendix F IBM DOORS Requirements Management Tool |
|
381 | (8) |
Glossary |
|
389 | (6) |
Index |
|
395 | |