Murali Chemuturi Requirements Engineering and Management for Software Development Projects Foreword by Tom Gilb ^ Springer
Contents 1 Introduction to Requirements Engineering and Management... 1 1.1 What is a "Requirement" 1 1.2 Requirements Management 4 1.3 Requirements Management Scenarios 6 1.4 Agencies Responsible for Managing Requirements 7 1.5 Approaches to Requirements Management 8 1.6 Requirements Engineering 9 1.7 Topics Proposed to be Covered in this Book 10 2 Understanding Requirements 13 2.1 Classification of Requirements 13 2.2 Classification of Requirements Based on Functionality Considerations 13 2.3 Classification of Requirements Based on Product Construction Considerations 18 2.4 Classification of Requirements Based on Source of Requirements 21 2.5 Levels of Requirements 23 2.6 Definition of Requirements in the Context of Software Development 24 2.7 Evolution of Requirements 25 3 Elicitation and Gathering of Requirements 33 3.1 Introduction 33 3.2 Elicitation of Requirements 34 3.2.1 Personal Interviews 35 3.2.2 Customer/Market Surveys 40 3.2.3 Questionnaires 41 3.2.4 Observation 42 3.2.5 Demonstration of Product Prototypes 42 xi
xii Contents 3.2.6 Product Demonstrations 43 3.2.7 Brainstorming 44 3.3 Gathering Requirements 44 3.4 Elicitation and Gathering in Agile Projects 47 3.5 Elicitation and Gathering in COTS Product Implementation 47 3.6 Elicitation and Gathering in Testing Projects 48 3.7 Elicitation and Gathering in Software Maintenance Projects 49 3.8 Elicitation and Gathering in Real Time Software Development Projects 50 3.9 Elicitation or Gathering? 50 3.10 Deliverables of Elicitation and Gathering 51 3.11 Pitfalls in Requirements Elicitation and Gathering 52 3.12 Final Words 54 4 Requirements Analysis 55 4.1 Introduction to Analysis 55 4.2 Analysis of the Information Collected in the Elicitation and Gathering 57 4.3 Resolving the Issues that Cropped up During the Analysis 65 4.4 Deliverables of Requirements Analysis Phase 65 4.5 Final Words 65 5 Establishment of Requirements 67 5.1 Introduction to Establishment of Requirements 67 5.2 Documentation 68 5.2.1 User Requirements Specification 69 5.2.2 Software Requirements Specification 70 5.3 Quality Control of the Documents 75 5.4 Obtaining Approvals 80 5.5 Configuration Management 81 5.6 Establishment of Requirements in COTS Product Implementation Projects 82 5.6.1 Gaps Analysis Document 84 5.6.2 SOW Document 84 5.7 Establishment of Requirements in Software Maintenance Projects 86 5.8 Establishment of Requirements in Migration, Porting and Conversion Projects 87 5.9 Establishment of Requirements in Agile Development Projects 88
Contents xiii 6 Quality Assurance in Requirements Management 91 6.1 Introduction to Quality Assurance 91 6.2 Quality Assurance in the Context of Requirements Engineering and Management 93 6.2.1 Process, Standards and Guidelines 93 6.2.2 Right People with Right Training 95 6.2.3 Quality Control 97 6.2.4 Measurement and Analysis 97 6.2.5 Project Postmortem 98 6.3 Verification 98 6.3.1 Peer Reviews 99 6.3.2 Managerial Reviews 102 6.3.3 Best Practices and Pitfalls in Verification 102 6.4 Validation 103 6.4.1 Brainstorming 103 6.4.2 Storyboarding 104 6.4.3 Prototyping 104 6.4.4 Expert Review 104 6.4.5 End User Review 105 6.4.6 Feedback Mechanism from Validation 105 6.5 Determination of Applicable Quality Control Activities 105 7 Planning for Requirements Management 107 7.1 Introduction to Planning 107 7.2 Definition of Planning 107 7.3 Planning for Requirements Management 108 7.4 To Document or Not to Document? 109 7.5 Different Project Plans 110 7.6 Planning for Requirements Management in Projects Ill 7.6.1 Requirements Elicitation and Gathering Ill 7.6.2 Requirements Analysis 112 7.6.3 Requirements Establishment 112 7.6.4 Requirements Change Control and Management... 113 7.6.5 Requirements Tracing, Tracking and... Reporting. 113 7.6.6 Measurement and Metrics 114 7.6.7 Formats and Templates for Planning 114 7.7 Best Practices and Pitfalls in Planning 114 8 Requirements Change Management 117 8.1 Introduction 117 8.2 Communication of Changes 118 8.3 Origination of Changes 119 8.4 Change Request Resolution 121 8.5 CR Implementation 122
xiv Contents 8.6 CRR 125 8.7 Progress/Status Reporting of CRs 126 8.8 Handling the Impact of CRs 126 8.9 Measurement and Metrics of Change Management 127 9 Requirements Tracing, Tracking and Reporting 129 9.1 Introduction 129 9.2 Requirements Traceability 129 9.3 Need for Requirements Traceability 130 9.4 Mechanisms for Tracing Requirements 132 9.5 When Should We Trace the Requirements? 134 9.6 Tracking of Requirements 134 9.7 Requirements Reporting 135 9.8 Reconciliation of Requirements 136 10 Measurement and Metrics 139 10.1 Introduction 139 10.2 Measurement and Metrics 139 10.3 Metrics Relevant to Requirements Engineering and Management 141 10.3.1 Productivity Metrics 143 10.3.2 Change Request Metrics 145 10.3.3 Quality Metrics 147 10.3.4 Relative Effort Metrics 149 10.3.5 Schedule Metrics 151 10.4 Summary of Metrics 152 11 Roles and Responsibilities in REM 153 11.1 Introduction 153 11.2 Role of the Organization 153 11.2.1 Organization 154 11.2.2 Staff 155 11.2.3 Process 159 11.2.4 Quality Assurance 161 11.2.5 Training 161 11.2.6 Recognition and Rewards 162 11.3 Role of the Individuals 163 11.3.1 Business/System Analysts 163 11.3.2 Quality Control 164 11.3.3 Project Manager 165 11.3.4 Process Definition and Improvement Group 166 11.3.5 Senior Management 167 11.4 Final Words 167
Contents xv 12 Requirements Management Through SDLC 169 12.1 Introduction 169 12.2 Pre-Project Phase 170 12.3 RM in Requirements Phase of SDLC 171 12.4 Software Design 171 12.5 Construction 172 12.6 Testing 172 12.7 Acceptance Testing 173 12.8 Installation and Commissioning 174 12.9 RM Through SDLC 175 13 Tools and Techniques for Requirements Engineering and Management 177 13.1 Introduction 177 13.2 Structured Systems Analysis and Design Method 177 13.2.1 Feasibility Study 179 13.2.2 Requirements Analysis and Specification 179 13.2.3 High Level Design 179 13.2.4 Low Level Design 179 13.2.5 Construction 179 13.2.6 Testing 180 13.2.7 Delivery and Implementation 180 13.2.8 Software Maintenance 180 13.2.9 Requirements Engineering and Management inssadm 181 13.2.10 ER Diagrams 181 13.2.11 Data Flow Diagrams 183 13.2.12 Context Diagram 185 13.2.13 Structure Chart 186 13.3 IEEE Software Engineering Standards 187 13.4 Object Oriented Methodology 188 13.5 Unified Modeling Language 191 13.5.1 Class Diagrams 191 13.5.2 Use Cases 192 13.5.3 Sequence Diagrams 196 13.5.4 Statecharts 196 13.5.5 Activity Diagrams 196 13.5.6 Component Diagrams 197 13.5.7 Deployment Diagrams 198 13.5.8 Final Words on UML 198 13.6 Agile Methods 199 13.7 Planguage 200 13.8 Final Words on Tools and Techniques in Requirements Engineering and Management 200
xvi Contents 14 Pitfalls and Best Practices in Requirements Engineering and Management 203 14.1 Introduction 203 14.2 Best Practices and Pitfalls at the Organizational Level 203 14.2.1 Approach to Requirements Engineering and Management 204 14.2.2 Provision of Resources 205 14.2.3 Training and Updating of Skills 206 14.2.4 Definition and Improvement of Process 206 14.2.5 Motivation and Morale of the Resources 207 14.2.6 Quality Assurance 209 14.2.7 Knowledge Repository 210 14.3 Project Level Pitfalls and Best Practices 211 14.3.1 Planning 211 14.3.2 Preparation for Elicitation and Gathering of Requirements 212 14.3.3 Misunderstanding About Requirements 212 14.3.4 Vague Requirements 212 14.3.5 Modeling Issues 213 14.3.6 Prioritization of Requirements 213 14.3.7 Change Management 213 14.3.8 Tracing and Tracking of Requirements 214 14.3.9 Supervision 214 14.3.10 Project Postmortem 214 14.4 Final Words of Pitfalls and Best Practices 215 15 REM in Agile Projects 217 15.1 Introduction 217 15.2 Extreme Programming 219 15.3 Scrum 220 15.4 Dynamic Systems Development Method 221 15.5 Feature Driven Development 222 15.6 Test Driven Development 223 15.7 Adaptive Software Development 224 15.8 RUP and AUP 225 15.9 Kanban 226 15.10 Crystal Clear 228 15.11 Establishment of Requirements in Agile Projects 229 15.12 Tracing and Progress Monitoring of Requirements 231 15.13 Final Words on REM in Agile Projects 232
Contents xvii Appendix A: Documentation Guidelines 233 Appendix B: Planguage 249 About the Author 261 Index 263