Requirements Engineering
and
Management
for Software
Development
Projects
Foreword
by
Tom
Gilb
1 Introduction to
Requirements Engineering
andManagement....
1 1.1 What is a"Requirement"
11.2
Requirements Management
41.3
Requirements Management
Scenarios 6 1.4Agencies
Responsible
forManaging Requirements
71.5
Approaches
toRequirements Management
81.6
Requirements Engineering
91.7
Topics
Proposed
tobe Covered in this Book 102
Understanding Requirements
132.1 Classification of
Requirements
13 2.2 Classification ofRequirements
Basedon
Functionality
Considerations 13 2.3 Classification ofRequirements
Basedon Product Construction Considerations 18 2.4 Classification of
Requirements
Basedon Source of
Requirements
212.5 Levels of
Requirements
232.6 Definition of
Requirements
in the Contextof Software
Development
24 2.7 EvolutionofRequirements
253 Elicitation and
Gathering
ofRequirements
333.1 Introduction 33
3.2 Elicitation of
Requirements
343.2.1 Personal Interviews 35 3.2.2 Customer/Market
Surveys
403.2.3
Questionnaires
413.2.4 Observation 42
3.2.5 Demonstration of Product
Prototypes
423.2.6 ProductDemonstrations 43
3.2.7
Brainstorming
443.3
Gathering Requirements
44 3.4 Elicitation andGathering
inAgile
Projects
47 3.5 Elicitation andGathering
in COTS ProductImplementation
47 3.6 Elicitation andGathering
inTesting Projects
48 3.7 Elicitation andGathering
in SoftwareMaintenance
Projects
493.8 Elicitation and
Gathering
in Real Time SoftwareDevelopment
Projects
503.9 Elicitation or
Gathering?
503.10 Deliverables of Elicitation and
Gathering
51 3.11 Pitfalls inRequirements
Elicitation andGathering
523.12 Final Words 54
4
Requirements
Analysis
55 4.1 Introduction toAnalysis
554.2
Analysis
of the Information Collected in the Elicitationand
Gathering
574.3
Resolving
the Issues thatCropped
upDuring
the
Analysis
65 4.4 Deliverables ofRequirements
Analysis
Phase 654.5 Final Words 65
5 Establishment of
Requirements
67 5.1 Introduction to Establishment ofRequirements
675.2 Documentation 68
5.2.1 User
Requirements Specification
69 5.2.2 SoftwareRequirements
Specification
705.3
Quality
Control of the Documents 755.4
Obtaining Approvals
805.5
Configuration Management
815.6 Establishment of
Requirements
in COTS ProductImplementation Projects
825.6.1
Gaps
Analysis
Document 845.6.2 SOW Document 84
5.7 Establishment of
Requirements
in SoftwareMaintenance
Projects
86 5.8 Establishment ofRequirements
inMigration, Porting
and Conversion
Projects
87 5.9 Establishment ofRequirements
inAgile
6
Quality
AssuranceinRequirements
Management
91 6.1 Introduction toQuality
Assurance 91 6.2Quality
Assurance in the Context ofRequirements
Engineering
andManagement
936.2.1
Process,
Standards and Guidelines 93 6.2.2Right People
withRight Training
956.2.3
Quality
Control 976.2.4 Measurement and
Analysis
976.2.5
Project
Postmortem 986.3 Verification 98
6.3.1 Peer Reviews 99
6.3.2
Managerial
Reviews 1026.3.3 Best Practices and Pitfalls in Verification 102
6.4 Validation 103
6.4.1
Brainstorming
1036.4.2
Storyboarding
1046.4.3
Prototyping
1046.4.4
Expert
Review 1046.4.5 End User Review 105 6.4.6 Feedback Mechanism from Validation 105
6.5 Determination of
Applicable Quality
Control Activities 1057
Planning
forRequirements Management
1077.1 Introduction to
Planning
107 7.2 Definition ofPlanning
1077.3
Planning
forRequirements Management
1087.4 To Documentor Notto Document? 109
7.5 Different
Project
Plans 1107.6
Planning
forRequirements Management
inProjects
Ill7.6.1
Requirements
Elicitation andGathering
Ill7.6.2
Requirements Analysis
1127.6.3
Requirements
Establishment 112 7.6.4Requirements Change
Control andManagement...
113 7.6.5Requirements Tracing, Tracking
andReporting.
... 1137.6.6 Measurement and Metrics 114 7.6.7 Formatsand
Templates
forPlanning
1147.7 Best Practices and Pitfalls in
Planning
1148
Requirements Change Management
1178.1 Introduction 117
8.2 Communication of
Changes
1188.3
Origination
ofChanges
1198.4
Change Request
Resolution 1218.6 CRR 125
8.7
Progress/Status Reporting
of CRs 1268.8
Handling
theImpact
of CRs 1268.9 Measurement andMetrics of
Change Management
1279
Requirements Tracing, Tracking
andReporting
1299.1 Introduction 129
9.2
Requirements Traceability
1299.3 Need for
Requirements Traceability
130 9.4 Mechanisms forTracing Requirements
1329.5 When Should We Tracethe
Requirements?
1349.6
Tracking
ofRequirements
134 9.7Requirements Reporting
135 9.8 Reconciliation ofRequirements
13610 Measurement and Metrics 139
10.1 Introduction 139
10.2 Measurement and Metrics 139 10.3 MetricsRelevant to
Requirements Engineering
and
Management
14110.3.1
Productivity
Metrics 143 10.3.2Change Request
Metrics 14510.3.3
Quality
Metrics 14710.3.4 Relative Effort Metrics 149
10.3.5 Schedule Metrics 151
10.4
Summary
of Metrics 15211 Roles and
Responsibilities
inREM 15311.1 Introduction 153
11.2 Role of the
Organization
15311.2.1
Organization
15411.2.2 Staff 155
11.2.3 Process 159
11.2.4
Quality
Assurance 16111.2.5
Training
16111.2.6
Recognition
and Rewards 162 11.3 Role of the Individuals 163 11.3.1Business/System Analysts
163 11.3.2Quality
Control 164 11.3.3Project Manager
165 11.3.4 Process Definition andImprovement Group
166 11.3.5 SeniorManagement
16712
Requirements Management Through
SDLC 16912.1 Introduction 169
12.2
Pre-Project
Phase 17012.3 RM in
Requirements
Phase ofSDLC 17112.4 Software
Design
17112.5 Construction 172
12.6
Testing
17212.7
Acceptance
Testing
17312.8 Installation and
Commissioning
17412.9 RM
Through
SDLC 175 13 Tools andTechniques
forRequirements
Engineering
and
Management
17713.1 Introduction 177
13.2 Structured
Systems Analysis
andDesign
Method 177 13.2.1Feasibility
Study
17913.2.2
Requirements Analysis
andSpecification
179 13.2.3High
LevelDesign
17913.2.4 Low Level
Design
17913.2.5 Construction 179
13.2.6
Testing
18013.2.7
Delivery
andImplementation
180 13.2.8 Software Maintenance 18013.2.9
Requirements
Engineering
andManagement
inSSADM 181
13.2.10 ER
Diagrams
18113.2.11 Data Flow
Diagrams
18313.2.12 Context
Diagram
18513.2.13 Structure Chart 186
13.3 IEEE Software
Engineering
Standards 18713.4
Object
OrientedMethodology
18813.5 Unified
Modeling
Language
191 13.5.1 ClassDiagrams
19113.5.2 Use Cases 192
13.5.3
Sequence Diagrams
19613.5.4 Statecharts 196
13.5.5
Activity Diagrams
196 13.5.6Component Diagrams
19713.5.7
Deployment
Diagrams
198 13.5.8 Final Words on UML 19813.6
Agile
Methods 19913.7
Planguage
20013.8 Final Words on Tools and
Techniques
inRequirements
14 Pitfalls and Best Practices in
Requirements Engineering
and
Management
20314.1 Introduction 203
14.2 BestPractices and Pitfalls atthe
Organizational
Level 203 14.2.1Approach
toRequirements
Engineering
and
Management
20414.2.2 Provision of Resources 205
14.2.3
Training
andUpdating
of Skills 206 14.2.4 Definition andImprovement
of Process 206 14.2.5 Motivation and Morale of the Resources 207 14.2.6Quality
Assurance 20914.2.7
Knowledge Repository
210 14.3Project
LevelPitfalls and Best Practices 21114.3.1
Planning
21114.3.2
Preparation
for Elicitation andGathering
of
Requirements
21214.3.3
Misunderstanding
AboutRequirements
212 14.3.4Vague Requirements
212 14.3.5Modeling
Issues 21314.3.6 Prioritization of
Requirements
213 14.3.7Change Management
213 14.3.8Tracing
andTracking
ofRequirements
21414.3.9
Supervision
21414.3.10
Project
Postmortem 21414.4 Final Words of Pitfalls and Best Practices 215
15 REM in
Agile Projects
21715.1 Introduction 217
15.2 Extreme
Programming
21915.3 Scrum 220
15.4
Dynamic
Systems
Development
Method 22115.5 Feature Driven
Development
22215.6 Test Driven
Development
223 15.7Adaptive
SoftwareDevelopment
22415.8 RUP and AUP 225
15.9 Kanban 226
15.10
Crystal
Clear 22815.11 Establishment of
Requirements
inAgile Projects
229 15.12Tracing
andProgress
Monitoring
ofRequirements
231Appendix
A: Documentation Guidelines 233Appendix
B:Planguage
249About the Author 261