Titles in the Auerbach Series on Applied Software Engineering Phillip A. Laplante, Pennsylvania State University, Series Editor Requirements Engineering for Software and Systems Phillip A. Laplante 1-4200-6467-3 Building Software: A Practioner’s Guide Nikhilesh Krishnamurthy and Amitabh Saran 0-8493-7303-4 Global Software Development Handbook Raghvinder Sangwan, Matthew Bass, Neel Mullick, Daniel J. Paulish, and Juergen Kazmeier 0-8493-9384-1 Antipatterns: Identification, Refactoring, and Management Phillip A. Laplante and Colin J. Neill 0-8493-2994-9 Software Engineering Quality Practices Ronald Kirk Kandt 0-8493-4633-9 Boca Raton London New York CRC Press is an imprint of the Taylor & Francis Group, an informa business AN AUERBACH BOOK CRC Press Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 © 2009 by Taylor & Francis Group, LLC CRC Press is an imprint of Taylor & Francis Group, an Informa business No claim to original U.S. Government works Version Date: 20130905 International Standard Book Number-13: 978-1-4200-6468-1 (eBook - PDF) This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint. Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmit- ted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers. For permission to photocopy or use material electronically from this work, please access www.copyright. com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged. Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe. Visit the Taylor & Francis Web site at http://www.taylorandfrancis.com and the CRC Press Web site at http://www.crcpress.com For my mother 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 Elicitation Summary ..................................................................................60 Which Combination of Requirements Elicitation Techniques Should Be Used? ...............................................................................60 Prevalence of Requirements Elicitation Techniques ..........................63 Elicitation Support Technologies ...............................................................63 Using Wikis for Requirements Elicitation.........................................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