Requirements Engineering for Software and Systems
Solid requirements engineering has become increasingly essential to improved on-time and on-budget delivery of software and systems projects. With a focus on software-intensive systems, Requirements Engineering for Software and Systems provides a comprehensive review of current technology and development in intelligent systems, soft computing techniques, and their diverse applications in manufacturing.
The book assesses practical and theoretical aspects of discovering, analyzing, modeling, validating, testing and writing requirements for various systems, and it helps readers master the complicated emerging ancillary software tools that are vital to requirements engineering.
Review By: Keith Kautzman
06/18/2010One of the most difficult and consistently underrated aspects of a software and systems project is the need for concise and clear requirements. Many failed projects can be tracked back to poorly written requirements. A project without well-written requirements lacks direction and is most often doomed to inefficiencies, rework, and, ultimately, failure.
Phillip Laplante's "Requirements Engineering for Software and Systems" provides a good overview of requirements engineering and does it in an easy to read manner. Laplante explains what requirements are and goes through the requirements elicitation, analysis, modeling, validation, and management activities. He explains the different roles people play in the process and difficulties that often arise when dealing with customers and other stakeholders. Standards are reviewed for writing and validating requirements, including IEEE and NASA standards.
The book works well for those new to requirements engineering as well as those with some experience. Novices should read the book front to back while those with requirements engineering experience may prefer to skip around and use the book as a reference. Experienced requirements engineers may want to skip the Introduction to Requirements Engineering chapter, which defines the very basics and may bore an experienced requirements engineer.
Of particular value is the section on the requirement elicitation techniques. Laplante introduces various requirement elicitation techniques to the reader, some of which could be used right away while others may need a little more research and experience in order to utilize.
Also of value are the sections on the IEEE Standard 830 for Verification and Validation as well as the NASA Requirements Testing standards. However, these subjects are rather extensive and the reader may need to reference other resources to get a complete understanding.
Laplante does a great service in this book by providing numerous examples from three sample projects, e.g., a baggage handling system, a POS system for a pet store, and a smart home, which all provide the best overall value to the reader.
The chapter on tool support for requirements engineering provides little value for someone looking to choose a requirements engineering tool, other than giving a list of tools to research. This chapter could probably have been eliminated or have been cut down to a two or three page appendix. Overall, the book is well-organized and a useful addition to a library.