Industrial Foreword |
|
xvii | |
Academic Foreword |
|
xix | |
Preface |
|
xxi | |
Acknowledgments |
|
xxv | |
|
|
1 | |
|
Why Has Requirements Engineering Become So Important? |
|
|
2 | |
|
Misconceptions about Requirements Engineering |
|
|
3 | |
|
Misconception 1: Any Subject Matter Expert Can Become a Requirements Engineer after a Week or Two of Training |
|
|
4 | |
|
Misconception 2: Nonfunctional and Functional Requirements Can Be Elicited Using Separate Teams and Processes |
|
|
4 | |
|
Misconception 3: Processes That Work for a Small Number of Requirements Will Scale |
|
|
4 | |
|
Industrial Challenges in Requirements Engineering |
|
|
4 | |
|
Key Success Factors in Requirements Engineering |
|
|
5 | |
|
The Project Has a Full-Time, Qualified Chief Architect |
|
|
5 | |
|
A Qualified Full-Time Architect Manages Nonfunctional Requirements |
|
|
5 | |
|
An Effective Requirements Management Process Is in Place |
|
|
6 | |
|
Requirements Elicitation Starts with Marketing and Sales |
|
|
6 | |
|
Requirements Reviews Are Conducted for All New or Changed Requirements or Features |
|
|
6 | |
|
Requirements Engineers Are Trained and Experienced |
|
|
6 | |
|
Requirements Processes Are Proven and Scalable |
|
|
6 | |
|
Subject Matter Experts Are Available as Needed |
|
|
6 | |
|
All Stakeholders Are Identified |
|
|
7 | |
|
The Customer Is Properly Managed |
|
|
7 | |
|
Progress and Quality Indicators Are Defined |
|
|
7 | |
|
The RE Tools Increase Productivity and Quality |
|
|
7 | |
|
The Core Project Team Is Full Time and Reports into a Single Chain of Command |
|
|
7 | |
|
Definition of Requirements Engineering |
|
|
8 | |
|
Requirements Engineering's Relationship to Traditional Business Processes |
|
|
8 | |
|
Characteristics of a Good Requirement |
|
|
9 | |
|
|
9 | |
|
|
10 | |
|
|
10 | |
|
|
11 | |
|
|
11 | |
|
|
11 | |
|
|
12 | |
|
|
13 | |
|
Other Project- or Product-Specific Characteristics |
|
|
13 | |
|
Characteristics of a Good Requirements Specification |
|
|
14 | |
|
Requirements and Project Failure |
|
|
15 | |
|
Quality and Metrics in Requirements Engineering |
|
|
15 | |
|
Function Point Metrics as Leading Indicators |
|
|
16 | |
|
|
16 | |
|
|
16 | |
|
|
17 | |
|
|
17 | |
|
2 Requirements Engineering Artifact Modeling |
|
|
19 | |
|
|
20 | |
|
|
21 | |
|
|
24 | |
|
Creation of an RE Taxonomy |
|
|
24 | |
|
Other Types of Taxonomies Useful in RE |
|
|
25 | |
|
|
26 | |
|
|
27 | |
|
Elements of an Artifact Model |
|
|
27 | |
|
Creation of a Requirements Engineering Artifact Model |
|
|
28 | |
|
|
30 | |
|
Extending an Artifact Model to Augment Process Definition |
|
|
30 | |
|
Using Templates for Requirement Artifacts |
|
|
30 | |
|
Dynamic Tailoring of an Artifact Model |
|
|
34 | |
|
Organizational Artifact Model Tailoring |
|
|
34 | |
|
Creating a System Life Cycle Process |
|
|
35 | |
|
Tips for Requirements Engineering Artifact Modeling |
|
|
36 | |
|
|
37 | |
|
|
37 | |
|
|
37 | |
|
|
39 | |
|
|
40 | |
|
Issues and Problems in Requirements Elicitation |
|
|
41 | |
|
|
41 | |
|
|
42 | |
|
|
42 | |
|
Not Identifying Requirements Level |
|
|
42 | |
|
Failure to Accurately Identify Stakeholders |
|
|
43 | |
|
Problems Separating Context from Requirement |
|
|
44 | |
|
Failure to Collect Enough Information |
|
|
44 | |
|
Requirements Are Too Volatile |
|
|
45 | |
|
System Boundaries Are Not Identified |
|
|
45 | |
|
Understanding of Product Needs Is Incomplete |
|
|
46 | |
|
Users Misunderstand What Computers Can Do |
|
|
47 | |
|
The Requirements Engineer Has Deep Domain Knowledge |
|
|
47 | |
|
Stakeholders Speak Different Natural and Technical Languages |
|
|
47 | |
|
Stakeholders Omit Important, Well-Understood, Tacit Information |
|
|
48 | |
|
Stakeholders Have Conflicting Views |
|
|
48 | |
|
Requirements Elicitation Methods |
|
|
48 | |
|
|
49 | |
|
|
52 | |
|
Prioritization and Ranking of Requirements |
|
|
53 | |
|
Quality Function Deployment (QFD) Method |
|
|
55 | |
|
|
55 | |
|
Tabular Elicitation Techniques |
|
|
56 | |
|
Process Modeling Techniques |
|
|
58 | |
|
Customer-Specific Business Rules |
|
|
62 | |
|
Why Are Customer-Specific Business Rules Important? |
|
|
62 | |
|
What Are Their Characteristics? |
|
|
62 | |
|
Example Customer-Specific Business Rules |
|
|
63 | |
|
Managing the Customer Relationship |
|
|
64 | |
|
Managing Requirements Elicitation |
|
|
64 | |
|
Planning Elicitation Sessions |
|
|
64 | |
|
Requirements and Cost Estimation |
|
|
67 | |
|
Requirements Elicitation for Incremental Product Development |
|
|
67 | |
|
Tips for Gathering Requirements |
|
|
68 | |
|
|
69 | |
|
|
70 | |
|
|
70 | |
|
|
73 | |
|
|
74 | |
|
Model-Driven Requirements Engineering (MDRE) |
|
|
79 | |
|
Advantages of an MDRE Approach |
|
|
84 | |
|
Using MDRE to Estimate Project Size and Cost |
|
|
85 | |
|
Improved Management of Cross-Cutting Requirements |
|
|
85 | |
|
Navigation of Complex System Requirement Sets |
|
|
86 | |
|
Rapid Review of Business Processes and Requirements Relationships |
|
|
86 | |
|
Metrics for Quality and Progress |
|
|
86 | |
|
Semiautomatic Generation of Project Plans and Requirements Database Content |
|
|
86 | |
|
Prerequisites for Using MDRE |
|
|
87 | |
|
Modeling Skills Not Readily Available |
|
|
87 | |
|
|
87 | |
|
Organization Not Ready for MDRE |
|
|
87 | |
|
|
88 | |
|
|
88 | |
|
Understanding the Context and How the Product Will Be Used |
|
|
90 | |
|
Analyzing Product Features and Creating a Use Case Model |
|
|
92 | |
|
Extracting Requirements from the Model |
|
|
94 | |
|
|
96 | |
|
Managing Elicitation and Analysis Sessions |
|
|
96 | |
|
Improved Productivity Through Distributed Modeling |
|
|
98 | |
|
|
98 | |
|
Elicitation and Analysis Model Heuristics |
|
|
99 | |
|
The Model Should Have a Single Entry Point |
|
|
99 | |
|
All Actors Associated with the System Being Analyzed Should Appear on the Context Diagram |
|
|
99 | |
|
The Early Modeling Effort Should Cover the Entire Breadth of the Domain |
|
|
100 | |
|
Identify "Out-of-Scope" Use Cases as Early as Possible |
|
|
100 | |
|
Every Diagram Should Have an Associated Description and Status |
|
|
100 | |
|
Avoid the Early Use of Packages |
|
|
101 | |
|
Do Not Substitute Packages for Abstract Use Cases |
|
|
101 | |
|
Every Artifact in a Model Should Be Visible on a Diagram |
|
|
101 | |
|
Every Symbol Should Have a Bidirectional Hyperlink to the Diagrams That Define It |
|
|
102 | |
|
Package Dependencies Should Be Based on Content |
|
|
102 | |
|
Every Concrete Use Case Must Be Defined |
|
|
102 | |
|
Use an Activity Diagram to Show All Possible Scenarios Associated with a Use Case |
|
|
105 | |
|
Use Sequence Rather Than Collaboration Diagrams to Define One Thread/Path for a Process |
|
|
105 | |
|
Abstract Use Cases Must Be Realized with Included or Inherited Concrete Use Cases |
|
|
107 | |
|
Extending Use Case Relationships Can Only Exist Between Like Use Cases |
|
|
108 | |
|
A Concrete Use Case Cannot Include an Abstract Use Case |
|
|
108 | |
|
Avoid Realization Relationships and Artifacts in the Analysis Model |
|
|
108 | |
|
|
108 | |
|
Coherent Low-Level Processes Should Be Defined with State or Activity Diagrams |
|
|
112 | |
|
Elicit Requirements and Processes by Starting at Boundaries and Modeling Inward |
|
|
112 | |
|
Hide Complexity by Using Compound Business Objects |
|
|
112 | |
|
Initiate Prototyping Efforts Quickly |
|
|
112 | |
|
Determining Model Completeness |
|
|
113 | |
|
|
113 | |
|
|
113 | |
|
Model Faults That Should Be Corrected Before a Model Is Completed |
|
|
113 | |
|
Transitioning from Analysis to Design |
|
|
115 | |
|
Suggested Model Conversion Heuristics |
|
|
115 | |
|
Design Model Package Structure |
|
|
115 | |
|
|
115 | |
|
|
115 | |
|
|
115 | |
|
|
117 | |
|
Tracing Requirements Through the Design Model |
|
|
117 | |
|
Intermodel Quality Assurance Checks |
|
|
117 | |
|
Design Model Initial Construction |
|
|
118 | |
|
|
120 | |
|
Tips for Modeling Requirements |
|
|
120 | |
|
|
121 | |
|
|
122 | |
|
|
122 | |
|
5 Quality Attribute Requirements |
|
|
125 | |
|
Why Architectural Requirements Are Different |
|
|
126 | |
|
|
127 | |
|
|
130 | |
|
Quality Attribute Scenarios |
|
|
131 | |
|
Quality Attribute Requirements |
|
|
131 | |
|
Factors, Issues, and Strategies |
|
|
132 | |
|
|
132 | |
|
Quality Attribute Requirements |
|
|
132 | |
|
Selecting Significant Stakeholders |
|
|
140 | |
|
Identifying Potential Stakeholders |
|
|
141 | |
|
Methods for Architectural Requirements Engineering |
|
|
142 | |
|
Quality Attribute Workshop |
|
|
143 | |
|
|
145 | |
|
|
146 | |
|
|
154 | |
|
Case Study: Building Automation System |
|
|
156 | |
|
Features That Define the Product |
|
|
157 | |
|
Forces That Shape the Architecture |
|
|
159 | |
|
Constraints on the Architecture |
|
|
160 | |
|
|
161 | |
|
|
162 | |
|
|
164 | |
|
|
164 | |
|
|
168 | |
|
|
168 | |
|
|
169 | |
|
Integration of Functional Requirements, Quality Attributes, and Architecture |
|
|
170 | |
|
Tips for Quality Attribute Requirements |
|
|
171 | |
|
|
172 | |
|
|
172 | |
|
|
172 | |
|
6 Requirements Engineering for Platforms |
|
|
175 | |
|
|
176 | |
|
|
177 | |
|
|
178 | |
|
|
180 | |
|
Elicit the Stakeholders' Inputs |
|
|
181 | |
|
|
181 | |
|
Normalize Stakeholders' Inputs |
|
|
181 | |
|
Reconcile Stakeholders' Inputs |
|
|
182 | |
|
Define the NFRs for the Platform |
|
|
182 | |
|
Derive the NFRs for the Components |
|
|
183 | |
|
|
184 | |
|
|
185 | |
|
|
185 | |
|
Tune the NFRs for Feasibility |
|
|
185 | |
|
|
186 | |
|
Formal Review by Stakeholders |
|
|
186 | |
|
|
186 | |
|
Define the Questionnaires and Elicit the Stakeholders' Inputs |
|
|
186 | |
|
|
187 | |
|
Normalizing and Reconciling Stakeholders' Inputs |
|
|
188 | |
|
Derive the NFRs for the Software Platform |
|
|
190 | |
|
Check for Testability and Complete the Constraints |
|
|
190 | |
|
Tips for RE for Platforms |
|
|
190 | |
|
|
191 | |
|
|
191 | |
|
|
191 | |
|
7 Requirements Management |
|
|
193 | |
|
|
194 | |
|
|
195 | |
|
|
197 | |
|
|
198 | |
|
|
198 | |
|
Routine Requirements Management Activities |
|
|
198 | |
|
Identifying Volatile Requirements |
|
|
198 | |
|
Establishing Policies for Requirements Processes and Supporting Them with Workflow Tools, Guidelines, Templates, and Examples |
|
|
199 | |
|
Prioritizing Requirements |
|
|
199 | |
|
Establishing and Updating the Requirements Baseline |
|
|
199 | |
|
|
199 | |
|
Planning Releases and Allocating Requirements to Releases |
|
|
199 | |
|
|
200 | |
|
|
202 | |
|
|
202 | |
|
Example Engineering Project-Based Traceability Model |
|
|
202 | |
|
|
204 | |
|
|
205 | |
|
|
205 | |
|
|
207 | |
|
Creation of a Requirements Management Process |
|
|
207 | |
|
Measuring Savings with RE Processes |
|
|
209 | |
|
Organizational Issues Impacting Requirements Management |
|
|
210 | |
|
Creating a Requirements Database |
|
|
210 | |
|
Managing Requirements for Product Lines |
|
|
213 | |
|
Tips for Requirements Management |
|
|
215 | |
|
|
215 | |
|
|
217 | |
|
|
218 | |
|
|
218 | |
|
8 Requirements-Driven System Testing |
|
|
219 | |
|
|
220 | |
|
Requirements Engineering Inputs for Testing |
|
|
222 | |
|
|
222 | |
|
Testing Performance and Scalability Requirements |
|
|
227 | |
|
Rules of Thumb/Best Practices |
|
|
228 | |
|
|
229 | |
|
|
229 | |
|
|
229 | |
|
Start Early in the Development Life Cycle |
|
|
229 | |
|
|
230 | |
|
|
231 | |
|
|
231 | |
|
|
231 | |
|
9 Rapid Development Techniques for Requirements Evolution |
|
|
233 | |
|
|
234 | |
|
|
236 | |
|
Early Requirement Elicitation |
|
|
236 | |
|
Conflicting or Nonprioritized Requirements |
|
|
237 | |
|
Bridge the Skills of Stakeholders and Developers |
|
|
238 | |
|
Capture Detailed Requirements |
|
|
238 | |
|
|
239 | |
|
|
240 | |
|
Requirements Engineering and Prototype Development in Parallel |
|
|
240 | |
|
Identify and Eliminate Stakeholder Conflicts |
|
|
243 | |
|
Rapid Iteration of Requirements/Stakeholder Feedback |
|
|
244 | |
|
|
246 | |
|
|
248 | |
|
|
250 | |
|
|
250 | |
|
Modification Optimization |
|
|
251 | |
|
|
252 | |
|
|
254 | |
|
|
254 | |
|
|
254 | |
10 Distributed Requirements Engineering |
|
257 | |
|
|
258 | |
|
Requirements Engineering for Global Projects |
|
|
260 | |
|
Organizations for Distributed Projects |
|
|
261 | |
|
Managing Distributed RE Efforts |
|
|
266 | |
|
Requirements and Collaboration Tools |
|
|
267 | |
|
Communications, Culture, and Team Size |
|
|
269 | |
|
RE with OEMs and Suppliers |
|
|
270 | |
|
Tips for Distributed Requirements Engineering |
|
|
271 | |
|
|
272 | |
|
|
272 | |
|
|
273 | |
11 Hazard Analysis and Threat Modeling |
|
275 | |
|
|
276 | |
|
Terms Used in Hazard Analysis |
|
|
276 | |
|
Hazard Analysis Processes |
|
|
277 | |
|
Reflecting Actions into the Requirements Database |
|
|
280 | |
|
|
281 | |
|
Importance of Hazard Analyses |
|
|
282 | |
|
|
284 | |
|
|
284 | |
|
|
285 | |
|
|
286 | |
|
|
286 | |
|
|
286 | |
|
|
286 | |
12 Conclusion |
|
287 | |
A Configuring and Managing a Requirements Database |
|
291 | |
|
|
292 | |
|
Prerequisites for the Use of a Requirements Database |
|
|
293 | |
|
|
295 | |
|
|
297 | |
|
Automatic Upward Propagation of Attributes |
|
|
297 | |
|
Automatic Downward Propagation of Attributes |
|
|
298 | |
|
Unique Needs for a Product Line RDB |
|
|
299 | |
|
|
299 | |
|
Generation of Product Maps |
|
|
299 | |
|
|
300 | |
Index |
|
301 | |