Solid requirements engineering has increasingly been recognized as the key to improved, on-time, and on-budget delivery of software and systems projects. New software tools are emerging that are empowering practicing engineers to improve their requirements engineering habits. However, these tools are not usually easy to use without significant training.
Requirements Engineering for Software and Systems, Fourth Edition is intended to provide a comprehensive treatment of the theoretical and practical aspects of discovering, analyzing, modeling, validating, testing, and writing requirements for systems of all kinds, with an intentional focus on software-intensive systems. It brings into play a variety of formal methods, social models, and modern requirements writing techniques to be useful to practicing engineers. The book is intended for professional software engineers, systems engineers, and senior and graduate students of software or systems engineering.
Since the first edition, there have been made many changes and improvements to this textbook. Feedback from instructors, students, and corporate users was used to correct, expand, and improve the materials. The fourth edition features two newly added chapters: "On Non-Functional Requirements" and "Requirements Engineering: Road Map to the Future." The latter provides a discussion on the relationship between requirements engineering and such emerging and disruptive technologies as Internet of Things, Cloud Computing, Blockchain, Artificial Intelligence, and Affective Computing.
All chapters of the book were significantly expanded with new materials that keep the book relevant to current industrial practices. Readers will find expanded discussions on new elicitation techniques, agile approaches (e.g., Kanpan, SAFe, and DEVOps), requirements tools, requirements representation, risk management approaches, and functional size measurement methods. The fourth edition also has significant additions of vignettes, exercises, and references. Another new feature is scannable QR codes linked to sites containing updates, tools, videos, and discussion forums to keep readers current with the dynamic field of requirements engineering.
Table of Contents
1. Introduction to Requirements Engineering
2. Preparing for Requirements Elicitation
3. Requirements Elicitation
4. Writing the Requirements Document
5. On Non-Functional Requirements
6. Requirements Validations and Verifications
7. Formal Methods
8. Requirements Specification and Agile Methodologies
9. Tool Support for Requirements Engineering
10. Requirements Management
11. Value Engineering of Requirements
12. Requirements Engineering: A Road Map to the Future
A. Software Requirements Specification for a Smart Home
B. Software Requirements for a Wastewater Pumping Station Wet Well Control System
C. Unified Modeling Language (UML)
D. User Stories
E. Use Cases
F. IBM DOORS Requirements Management Tool
Phillip A. Laplante is Professor of Software and Systems Engineering and a member of the graduate faculty at The Pennsylvania State University. His research, teaching and consulting focuses on software quality particularly with respect to requirements, testing, and project management. Before joining Penn State he was a professor and senior academic administrator at other colleges and universities.
From 2010 through 2016 he was the founding chair of the Software Professional Engineer Licensure Committee for the National Council of Examiners of Engineers and Surveyors. This volunteer committee created, maintains and scores the exam used throughout the United States to license Professional Software Engineers.
Dr. Laplante has consulted to Fortune 500 companies, startup ventures, the U.S. Department of Defense, NASA and the National Institute for Standards and Technology (NIST). He is on the Board of Directors for a $100 million heavy infrastructure construction company and serves on various corporate technology advisory boards.
Mohamad Kassab is an associate research professor and a member of the graduate faculty at The Pennsylvania State University. He earned his Ph.D. and M.S. degrees in computer science from Concordia University in Montreal, Canada. Dr. Kassab was an affiliate assistant professor in the department of computer science and software engineering at Concordia University between 2010 and 2012 and a postdoctoral researcher in software engineering at École de Technologie Supérieure (ETS) in Montreal between 2011 and 2012, and a visiting scholar at Carnegie Mellon University (CMU) between 2014 and 2015.
Dr. Kassab has been conducting research projects jointly with the industry to develop formal and quantitative models to support the integration of quality requirements within software and systems development life cycles. The models are being further leveraged with the support of developed architectural frameworks and tools. His research interests also include bridging the gap between software engineering practices and disruptive technologies (e.g., IoT, blockchain). He has published extensively in software engineering books, journals, and conference proceedings. He is also a member of numerous professional societies and program committees, and the organizer of many software engineering workshops and conference sessions.