Davis has revised his earlier book [1]. The chapter titles remain the same as in the earlier work:
Introduction
Problem Analysis
Software Requirements Specification
Specifying Behavioral Requirements
Specifying Nonbehavioral Requirements
Requirements Prototyping
Some Final Thoughts
A glossary and an annotated bibliography complete the book. Although the book is about the same length, the revisions become apparent early. Chapter 1 now includes a section on objects, functions, and states and their impact on requirements, which sets the tone for some of the later material.
This tone is reflected almost immediately in chapter2, “Problem Analysis.” Section 2.3, “Survey of Techniques,” includes material on object-oriented problem analysis, function-oriented problem analysis, and state-oriented problem analysis. This material has been revised and enhanced compared to the sections in the earlier book on notations and approaches to problem analysis. The object, function, and state orientation provides a much better framework for the concepts presented.
In chapter 3, section 3.4, “Attributes of a Well-written SRS,” includes material on traced (as well as traceable) requirements, design independence, concise requirements, and organized requirements. In chapter 4, the survey of techniques in Section 4.2 includes state, function, and object-oriented requirements specification techniques. Again, some of the content of the earlier text is carried over and presented in the new framework. Chapter 6 contains a brief new section, “Combining Throwaway and Evolutionary Prototyping,” and chapter 7 includes a brief new section on the use of word processor and database systems for requirements development.
As before, the book has two intended audiences: software practitioners and advanced students of software engineering. To support possible use as a text, exercises are included at the end of most chapters. References are also included at the ends of all the chapters. The annotated bibliography remains a gem as a source of requirements information.
This book remains the most practical text on software requirements engineering. Although much work has been done elsewhere on specific methodologies, this book still provides the best broad coverage of the subject.