Requirements Engineering
for Software
and
Systems
Second
Edition
Phillip
A.
Laplante
CRC Press
Taylor& FrancisGroup
Boca Raton London NewYork CRC Press isanimprintofthe
Taylor&FrancisCroup,anInforms business
Acknowledgments
xiiiAbout the Author
xvIntroduction
xvii1
Introduction
toRequirements
Engineering
1Motivation 1
What Is
Requirements
Engineering?
2You
Probably
Don't DoEnough Requirements Engineering
3What
AreRequirements?
3Requirements
versus Goals 4Requirements
LevelClassification
4Requirements
Specifications
Types
6Functional
Requirements
6Nonfunctional
Requirements
7Domain
Requirements
10Domain
Vocabulary Understanding
11Requirements
Engineering
Activities 11Requirements
Elicitation/Discovery
11Requirements
Analysis
and
Agreements
12Requirements
Representation
12Requirements
Validation 12Requirements Management
13Bodies of
Knowledge
13Requirements Engineer
17Requirements Engineering
Paradigms
17Requirements Engineer
asSoftware
Systems
Engineer
18Requirements Engineer
asSubject
MatterExpert
18Requirements Engineer
asArchitect 18Requirements Engineer
asBusiness ProcessExpert
18Ignorance
asVirtue 18vi Contents
Customer'sRole
19
Problems with
Traditional
Requirements
Engineering
20Complexity
21Four Dark Comers 22
Difficulties in
Enveloping System
Behavior 23Danger
of "All"
inSpecifications
25
Exercises
25
References 26
2
Preparing
forRequirements
Elicitation 29Product
Mission
Statement29
Encounter withaCustomer 30
Stakeholders 32
Negative
Stakeholders
33Stakeholder
Identification 33Stakeholder
Questions
33
Stakeholder/Customer Classes
35
StakeholderCharacteristics
36Customer Wants and Needs 37
What
Do Customers Want? 37What Don't
Customers Want? 39Why
DoCustomersChange
Their Minds?
40Stakeholder Prioritization 41
Communicating
with Customers and OtherStakeholders
43
Managing Expectations
44
Stakeholder
Negotiations
45
Uncovering
Stakeholder Goals
46Exercises
47
References 48
3
Requirements
Elicitation...
49
Introduction
49
Preparing
forRequirements
Elicitation 50Elicitation
Techniques Survey
51Brainstorming
51Card
Sorting
52Designer
asApprentice
53
DomainAnalysis
54
Ethnographic
Observation55
Goal-BasedApproaches
56Group
Work 57 Interviews 58Introspection
59Joint
Application Design
(JAD)
60Laddering
61Protocol
Analysis
62
Prototyping
62Quality
FunctionDeployment
63
Questionnaires/Surveys
66Repertory
Grids 68 Scenarios 68 TaskAnalysis
69
User Stories69
Viewpoints
70
Workshops
71
ElicitationSummary
71Which
Combination
ofRequirements
Elicitation
Techniques
ShouldBe Used? 72
Prevalence of
Requirements
ElicitationTechniques
72Eliciting
Hazards
73
Misuse Cases 77Antimodels
77Formal Methods
78 Exercises 78 References 794
Writing
theRequirements
Document
81Requirements Agreement
andAnalysis
81Requirements
Representation
Approaches
82IEEE Standard 830-1998 85
IEEE Standard 830 Recommendationson
Representing
Nonfunctional
Requirements
86 IEEE Standard 830Recommendations
onRepresenting
Functional
Requirements
87Operating
System
88 CommandValidation
89
ISO/IEC Standard 25030 90 Use Cases 92Requirements
Document 93Users ofa
Requirements
Document 93Requirements
DocumentRequirements
94
Preferred
Writing Style
. 95Text Structure
Analysis
95
Requirement
Format 96 Useof
Imperatives
98viii Contents
Best Practices and Recommendations 100
Exercises 102
References
1035
Requirements
RiskManagement
105 WhatIsRequirements
RiskManagement?
105Requirements
Validation and Verification 108Techniques
forRequirements
V&V 109Walkthroughs
110Inspections
110Goal-Based
Requirements
Analysis
110Requirements
Understanding
IllValidating Requirements
Use Cases 112Prototyping
113Requirements
Validation and Verification Matrices113
Importance
of
Measurement inRequirements
Validation
andVerification
115
Goal/Question/Metric
Analysis
116
Standards for Validation and Verification
116
IEEE Standard 830 117 Correctness 117
Ambiguity
119
Completeness
120Consistency
120Ranking
121Verifiability
121Modifiability
122Traceability
122Example
Validation of
Requirements
122 NASARequirements
Testing
124
NASA ARM Tool
124
Imperatives
126
Continuances126
Directives 127Options
127Weak Phrases
127
Incomplete
128Subjects
131Specification Depth
131Readability
Statistics 131Summary
of NASA Metrics 133Exercises
136
6
Formal Methods 139Motivation 139
WhatAreFormal Methods? 140
Formal
Methods
Classification 142A Little
History
142Using
Formal Methods143
Examples
143
Formalization
of Train Stationin B 144Formalization of
Space
ShuttleFlight
SoftwareUsing
MurO 147 Formalizationof
anEnergy
Management System Using
Category Theory
148Example: Energy
Management System
149
Requirements
Validation152
Theorem
Proving
153Program
Correctness 154 HoareLogic
154 ModelChecking
159Integrated
Tools 159Objections,
Myths,
andLimitations
159
Objections
andMyths
160Limitations
of
Formal Methods 162Bowen and
Hinchey's
Advice
163Exercises 164
References 164
7
Requirements
Specification
andAgile
Methodologies
167
Introductionto
Agile Methodologies
167Principles
behind
Agile
Manifesto
168Extreme
Programming
(XP)
170Scrum 171
Requirements Engineering
for
Agile Methodologies
172General Practices in
Agile Methodologies
173Example Application
ofAgile
SoftwareDevelopment
173When Is
Agile
Recommended?175
Agile
Requirements
Best Practices 175Requirements Engineering
inXP 177Requirements Engineering
inScrum 177Writing
UserStories 178Agile Requirements
Engineering
180Story-Test-Driven Development
181Challenges
forRequirements Engineering
inAgile
Methodologies
182Exercises 183
x Contents
8
ToolSupport
for
Requirements Engineering
185Introduction
185
Traceability Support
187
Requirements
Linkage Traceability
Matrix 188Requirements
SourceTraceability
Matrix 190Requirements
StakeholderTraceability
Matrix 191Requirements Management
Tools 192Open
SourceRequirements Engineering
Tools
193
FreeMind 193
Open
SourceRequirements Management
Tool(OSRMT)
196
FitNesse
196
Requirements Engineering
Tool Best Practices 198Elicitation
Support
Technologies
198Using
Wikis forRequirements
Elicitation 199Mobile
Technologies
199 Virtual Environments 199 ContentAnalysis
200 Metrics 201 Exercises 202 References 202 9Requirements
Management
205 Introduction 205Reconciling
Differences
206Managing
Divergent
Agendas
206Consensus
Building
207
Expectation
Revisited: Pascal'sWager
209Global
Requirements
Management
211Antipatterns
inRequirements Management
212Environmental
Antipatterns
213Divergent
Goals
213 Process Clash 214Management Antipatterns
214 Metric Abuse 214 MushroomManagement
216Other
Paradigms
forRequirements
Management
217Requirements
Management
andImprovisational Comedy
217Requirements
Management
asScriptwriting
218Standards for
Requirements
Management
219ISO 9001 221
Six
Sigma
221Capability Maturity
ModelIntegrative (CMMI)
222ISO/IEEE 12207 224
Usage
of Standards 224A Case
Study:
FBI Virtual CaseFile
225Exercises 226
References
22710 Value
Engineering
of
Requirements
229What,
Why,
When,
and
How of ValueEngineering
229What Is Value
Engineering?
230When Does Value
Engineering
Occur? 231Challenges
toSimple
CostversusRisk
Analysis
232Estimating
Using
COCOMO and ItsDerivatives 234COCOMO
234
WEBMO 235
COSYSMO 237
Estimating
Using
Function Points 238Function Point Cost Drivers 239
Feature Points 240
Use Case Points 240
Requirements
FeatureCostJustification
241Returnon
Investment
241Net Present Value 242
Internal Rate of Return 243
Profitability
Index 244Payback
Period 245Discounted
Payback
245Putting
ItAllTogether
246Exercises 246
References
247
Appendix
A: SoftwareRequirements
Specification
foraSmart Home249
Appendix
B:SoftwareRequirements
for
aWastewaterPumping
StationWetWell Control