Book Review: Requirements Engineering : Processes and Techniques

Gerald Kotonya and Ian Sommerville.
John Wiley 1998.


ISBN 0471972088 (boards).

Buy it from Amazon.com
Buy it from Amazon.co.uk

Other Reviews

 

This book is the companion to Requirements Engineering: A Good Practice Guide (Ian Sommerville and Pete Sawyer, John Wiley 1997). There is as the authors say very little overlap: the Guide gave short bits of advice, whereas Processes and Techniques is a systematic textbook.

The book is aimed at trainee software engineers at second year undergraduate level and above. It is very plainly and clearly written without jargon or pomposity, and it manages to be fair to all sides in the structured/object-oriented wars. It accordingly covers both traditional and modern industrial approaches such as SADT and CORE.

The book is structured into two parts: 5 chapters on the RE process (the 'what'), and 5 on RE techniques (the 'how').

Part 1 contains an excellent introduction which includes FAQs about RE, its place within system engineering, and the nature of the requirements document. There follow chapters on processes, elicitation, validation, and requirements management.

Part 2 introduces the various methods for RE, including data-flow modelling, semantic data models, object-oriented approaches, and formal methods. There follow chapters on viewpoint-oriented requirements methods including SADT, CORE, VOSE, and VORD, non-functional requirements, and interactive system specification. The book closes with a case study for a (real) electronic document distribution system which the authors were involved in.

Each chapter is well and helpfully organized, aided by a clean and spacious page design. Each chapter begins with a short Contents list and a one-paragraph summary. The body of the chapter is a discussion of the topic, divided into sections and often with numbered or bulleted points for the student to distinguish. The text is well supported by line diagrams and tables, which like the text also focus on classifying the various factors involved. The chapters close with a list of key points, a set of five or ten exercises, a list of references, and some useful suggestions for further reading.

There is a short but effective index. One topic unaccountably lacking both from the index and the book is verification / testing; validation is mentioned briefly in the introduction but there is no discussion of, for instance, the use of requirements to generate test scripts, or the importance of tracing between requirements and system tests.

The book was written before Use Cases emerged as a fashionable topic, though they are mentioned in the discussion of Jacobson's object(ory) method. Rumbaugh's OMT and scenarios also get brief mentions. On UML, the book merely observes that

"efforts are underway to integrate several object-oriented methods to create a tailorable universal method, and these are likely to come to fruition in the next few years" !

The authors, in a similarly wry tone, state that several object-oriented methods have been proposed, from Colbert, Coad & Yourdon, Rumbaugh, Jacobson, and others, and that

"These notations are semantically similar and any of them could be used for model description".

The section on methods wisely concentrates on the principles, supporting the discussion with examples worked through in sufficient depth to make clear how the methods work.

The authors have chosen to avoid explicit mention of requirements tools, though there are sensible discussions of related topics, such as of techniques for requirements identification and traceability, leading to the conclusion that you need a database "with each requirement represented as one or more database entities. The facilities of the database can be used to link related requirements…" The discussion compares relational and object-oriented approaches, concluding that the latter "are structurally more suited to requirements management". The only tools actually named are ORACLE and INGRES, however:

"Commercial requirements management systems usually rely on such commercial databases for requirements storage."

This claim is hard to quantify, but is untrue both of those tools which rely on cheap PC databases, and of those which include a specialised requirements database engine. The practical advantages of using a tool designed for managing requirements are perhaps slightly overlooked.

Requirements Engineering - Processes and Techniques comes with its own website - http://www.comp.lancs.ac.uk/computing/resources/re so you can find out more and keep in touch with updates to the authors' thinking.

The book is a solid and useful reference on the more established current techniques for practitioners, an excellent up-to-date guide to the literature, and a practical university text. The careful blend of theory, pragmatism and worked examples is especially welcome. As such, this is one of the first textbooks on RE that can be recommended almost unreservedly to RQ readers.

© Ian Alexander 1998