Richard H. Thayer and Merlin Dorfman
IEEE Computer Society Publications
2nd Edition 1997 (1st Edition 1990 Software & Systems Requirements Engineering)
reprinted 2000
ISBN 0818677384 (paper)
Buy it from Amazon.com
Buy it from Amazon.co.uk
This substantial book is what used to be called a reader, a selection of what the editors consider to be the best papers in what Alan Davis delicately calls 'the practical literature'. This means, broadly, a set of papers that each describe a corner of the field in a way that newcomers can understand, and that can be expected still to be accepted in, say, 5 years' time.
It excludes 'researchy' papers, especially those that push one particular approach. Nearly all the authors are American, with honourable exceptions such as Sommerville and Fuggetta. It would certainly have been good to see a few more Europeans in the table of contents.
The selection criteria make the book serious, and perhaps a little dry, but it is a measure of the editors' success that three of the papers survive from the first edition, and indeed that the publishers demanded a second edition.
The book is divided, inevitably slightly arbitrarily, into six 'chapters', each with a thoughtful introduction to its subject matter. Topics covered include, after various overviews and basic questions, the Concept of Operations (document); Elicitation; Use Cases; Viewpoints; Quality of specifications; Specification Techniques; Structured Analysis; Entity-Relationship Modeling; Object-Oriented analysis; Formal Methods; CASE technology; Traceability; Verification of specifications; Life-cycles; and Prototyping. The editors have taken care to select articles that compare and contrast methods and techniques, greatly benefiting the student.
Richard and Mildred Thayer have increased the book's value for reference by developing a detailed and useful glossary - 35 pages of it. That it should lack definitions of some important terms such as constraint, stakeholder, viewpoint does not detract from the achievement.
A more serious deficiency is the lack of an index - whether of technical terms or of names. There is no unified bibliography and no recommended further reading list.
A minor quibble is the lack of a harmonised format: the wide pages are formatted into three or two columns - or even just one; and while most of the papers are in a clear serif font, one or two are in large sans-serif, and some are printed uncomfortably small or dense, especially their reference lists.
This book is aimed at practitioners and students who want to read enough about requirements engineering to get a feeling for what the subject is and to be able to place any future paper they may read in its context. The editors admit that some parts of some papers may be a little out of date; they mention these in the chapter introductions. Such a book is inevitably conservative rather than radical, and deals with basics rather than cutting-edge thought. The editors reasonably claim their audience includes managers, engineers, programmers, students and teachers; perhaps the truth is that people in each of these groups will find something to interest them here. Few readers, maybe, will attempt the Tolstoyan task of reading from cover to cover.
That said, this book does its job well. Some famous names are here - Rumbaugh, Goguen, Sommerville, Boehm and Zave, for instance. The three IEEE standards for Concept of Operations and Software and System Requirements Specifications are all here; these standards may have their weaknesses, but it is handy to have them on the bookshelf. The accounts differ in style but are all clearly written and informative. Thayer and Dorfman have worked hard to select just what the beginner, and perhaps many a practitioner, needs to know. The book is becoming a little dated but remains interesting.
© Ian Alexander 2000, 2004