requirements engineering for software and systems

8
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

Upload: others

Post on 07-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Requirements Engineering for Software and Systems

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

Page 2: Requirements Engineering for Software and Systems

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

Page 3: Requirements Engineering for Software and Systems

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

Page 4: Requirements Engineering for Software and Systems

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

Page 5: Requirements Engineering for Software and Systems

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

Page 6: Requirements Engineering for Software and Systems

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

Page 7: Requirements Engineering for Software and Systems

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

Page 8: Requirements Engineering for Software and Systems

Contents • xiii

Appendix Software Requirements Specification for a Smart Home,

Version 2.0, September 20, 2008 203

Glossary 229

Index 233