requirements engineering for software and systems
TRANSCRIPT
Requirements Engineering for Software and Systems
Phillip A. Laplante
(g) CRC Press Taylor S* Francis Group
Boca Raton London New York
CRC Press is an imprint of the Taylor & Francis Group, an informa business
AN AUERBACH BOOK
Contents
Acknowledgments xv
Introduction xvii
About the Author xxi
1 Introduction to Requirements Engineering 1 Motivation 1 What Is Requirements Engineering? 2 You Probably Don't Do Enough Requirements Engineering 3 What Are Requirements? 4
Requirements Versus Goals 4 Requirements Level Classification 4 Requirements Specifications Types 6
Functional Requirements 6 Nonfunctional Requirements 7 Domain Requirements 10
Domain Vocabulary Understanding 11
Requirements Engineering Activities 11 Requirements Elicitation/Discovery 11 Requirements Analysis and Reconciliation 12 Requirements Representation and Modeling 12 Requirements Validation 12 Requirements Management 13
The Requirements Engineer 13
Requirements Engineering Paradigms 13 Requirements Engineer as Software Systems Engineer 14 Requirements Engineer as Subject Matter Expert 14 Requirements Engineer as Architect 14 Requirements Engineer as Business Process Expert 14
Ignorance as Virtue 15 Role of the Customer? 15
vii
viii • Contents
Problems with Traditional Requirements Engineering 16
Complexity 17 Four Dark Corners (Zave and Jackson) 18 Difficulties in Enveloping System Behavior 19
The Danger of "All" in Specifications 21 References 22
2 Mission Statement, Customers, and Stakeholders 23 Mission Statements 23
Encounter with a Customer? 24 Stakeholders 26
Negative Stakeholders 27 Stakeholder Identification 27
Stakeholder Questions 27 Stakeholder/Customer Classes 29
Customer Wants and Needs 30 What Do Customers Want? 30
What Don't Customers Want? 33 Why Do Customers Change Their Minds? 34 Stakeholder Prioritization 35 Communicating with Customers and Other Stakeholders 36
Managing Expectations 37 Stakeholder Negotiations 38 References 40
3 Requirements Elicitation 41 Introduction 41 Elicitation Techniques Survey 42
Brainstorming 42 Card Sorting 42
Designer as Apprentice 44 Domain Analysis 45 Ethnographic Observation 45 Goal-Based Approaches 46 Group Work 48 Interviews 48 Introspection 50
Joint Application Design (JAD) 50 Laddering 51 Protocol Analysis 52 Prototyping 53
Quality Function Deployment 54 Questionnaires 55
Contents • ix
Repertory Grids 56
Scenarios 57
Task Analysis 57
User Stories 58
Viewpoints 59
Workshops 60
Ehcitation Summary 60
Which Combination of Requirements Ehcitation Techniques
Should Be Used? 60
Prevalence of Requirements Ehcitation Techniques 63
Ehcitation Support Technologies 63
Using Wikis for Requirements Ehcitation 63
Mobile Technologies 65
Content Analysis 65
References 66
4 Writing the Requirements Document 69 Requirements Representation Approaches 69
IEEE Standard 830-1998 71
IEEE Standard 830 Recommendations on Representing
Non-Functional Requirements 72
IEEE Standard 830 Recommendations on Representing
Functional Requirements 73
Operating System 74
Command Validation 75
ISO/IEC Standard 25030 76
Use Cases 78
Behavioral Specifications 79
The Requirements Document 81
Users of a Requirements Document 82
Requirements Document Requirements 82
Preferred Writing Style 83
Text Structure 83
Best Practices and Recommendations 84
References 86
5 Requirements Risk Management 87 What Is Requirements Risk Management? 87
Requirements Validation and Verification 89
Techniques for Requirements V&V 90
Goal-Based Requirements Analysis 90
Requirements Understanding 91
x • Contents
Validating Requirements Use Cases 92 Prototyping 92
The Requirements Validation Matrix 92 The Importance of Measurement in Requirements Verification and Validation 93
Goal/Question/Metric Analysis 94 Standards for Verification and Validation 95
IEEE Standard 830 96 Correctness 97 Ambiguity 97 Completeness 98 Consistency 99 Ranking 99 Verifiability 100 Modifiability 100 Traceability 100
NASA Requirements Testing 101 NASA A R M Tool 101 Imperatives 103 Continuances 103 Directives 105 Options 105 Weak Phrases 105
Incomplete 106 Subjects 107 Specification Depth 107 Readability Statistics 108 Summary of NASA Metrics 108
References I l l
6 Formal Methods 113 Motivation 113 What Are Formal Methods? 114
A Little History 115 Using Formal Methods 116 Formal Methods Types 116
Examples 117 Formalization of Train Station in В 117 Formalization of Space Shuttle Flight Software Using МигФ 121 Formalization of an Energy Management System Using Category Theory 122
Example: An Energy Management System 124 Requirements Validation 126
Contents • xi
Theorem Proving 128 Program Correctness 128 Hoare Logic 129
Model Checking 133
Objections, Myths, and Limitations 134
Objections and Myths 134 Limitations of Formal Methods 135
Final Advice 136 References 137
7 Requirements Specification and Agile Methodologies 139 Introduction to Agile Methodologies 139
Principles Behind the Agile Manifesto 140 Extreme Programming (XP) 142
Scrum 143 Requirements Engineering for Agile Methodologies 144
General Practices in Agile Methodologies 145
Agile Requirements Best Practices 145 Requirements Engineering in XP 147 Requirements Engineering in Scrum 147
Writing User Stories 148 Agile Requirements Engineering 150 Challenges for Requirements Engineering in Agile Methodologies 152 Bibliography 153
8 Tool Support for Requirements Engineering 155 Introduction 155
Traceability Support 156 Commercial Requirements Engineering Tools 159
D O O R S 160 Rational RequisitePro 160 Requirements and Traceability Management 160
CaliberRM 160 QFD/Capture 161
Open Source Requirements Engineering Tools 161
FreeMind 161 Open Source Requirements Management Tool (OSRMT) 163
FitNesse 166 Requirements Engineering Tool Best Practices 167 References 168
9 Requirements Management 171 Introduction 171
Managing Divergent Agendas 171
xii • Contents
Expectation Revisited: Pascal's Wager 173
Global Requirements Management 174
Antipatterns in Requirements Management 176 Environmental Antipatterns 177
Divergent Goals 177 Process Clash 178
Management Antipatterns 178
Metric Abuse 178
Mushroom Management 179
Other Paradigms for Requirements Management 180
Requirements Management and Improvisational Comedy 180 Requirements Management as Script-writing 181
Reference Models for Requirements Management 182
ISO 9000-3 (1997) 183 Six Sigma 183 Capability Maturity Model (CMMI) 184
IEEE 830 185 IEEE 12207 (2002) 185
ISO/IEC 25030 185
A Case Study: FBI Virtual Case File 186 References 187
1 0 Value Engineering of Requirements 189 What, Why, When, and How of Value Engineering? 189
What Is Value Engineering? 189
When Does Value Engineering Occur? 190
Estimating Using C O C O M O and Its Derivatives 190
C O C O M O 191 W E B M O 192
COSYSMO 193
Estimating Using Function Points 194
Function Point Cost Drivers 194 Feature Points 196
Use Case Points 196
Requirements Feature Cost Justification 197
Return on Investment 197
Net Present Value 198
Internal Rate of Return 199 Profitability Index 200
Payback Period 201 Discounted Payback Period 201
References 202
Contents • xiii
Appendix Software Requirements Specification for a Smart Home,
Version 2.0, September 20, 2008 203
Glossary 229
Index 233