Requirements Engineering:
|
Klaus Pohl Springer, 2010 ISBN 0470012706 (boards, 813 pages) Buy it from Amazon.com
|
Requirements Engineering:
|
Given that the title Requirements Engineering has been used a few times before (Berenbach et al, Bray, Hull et al, Kotonya & Sommerville, Rupp (auf Deutsch), Sommerville & Sawyer, Sutcliffe, Thayer & Dorfman, van Lamsweerde, Wieringa, Young - not to mention all the books on Requirements Management or just Requirements for Systems or Software), it might be thought brave to employ it yet again. But Klaus Pohl, professor at the University of Duisberg-Essen, shows triumphantly in this magnificent book that there is certainly room for one more.
Whereas Professor van Lamsweerde's textbook describes the world from the standpoint of a specific formal method - the KAOS goal modelling approach, Pohl's book (barring a 70-page section on a proposed goal-and-scenario-based method) attempts a comprehensive tour of the whole of RE, in classic academic style. Nothing on this scale has been attempted for requirements engineering before; for comparisons one has to look at texts like Ian Sommerville's enormously popular and wide-ranging Software Engineering, but even that is considerably shorter, and with a much wider brief.
For German readers, Pohl is also very different from Chris Rupp's Requirements-Engineering und Management, which despite its length (565 pages) is much more of an introductory text. Rupp's book also looks far more industrially at how to manage requirements using tools and questions such as how to handle messy practical issues like requirements versioning. In contrast, Pohl aims to provide a conceptual framework that covers everything, and is not afraid of creating definitions to classify and organize RE knowledge where he feels things were not clear. Another notable German text is Christof Ebert's Systematisches Requirements Engineering und Management, which comes from a background of large industrial systems such as in telecommunications, and emphasizes project practice and project management.
Part I introduces RE - comprehensively - and sets up the framework by which the book understands and explains RE.
The framework defines:
Part VII departs from the framework's description of the whole world of RE to cover Pohl's own team's COSMOD-RE method which uses goals and scenarios to support "intertwined development" of requirements and design for software-intensive (i.e. embedded) systems.
Part VIII looks at RE and testing, as well as contrasting RE for one-off systems and software product lines.
The goal of being comprehensive about anything as large and rapidly-growing as RE is daunting. Pohl approaches it in a methodical style which combines Definitions (marked with a bold circled D in the margin) and Examples (marked E). The narrative text is consistently clear, beautifully proofread, and in excellent English. It is handsomely supported by plentiful tables and diagrams, revealing Pohl's strong teaching skills.
Behind the scenes there is a tremendous depth of academic knowledge, with an extensive Literature section. There are in addition "Recommended Literature" sections for each part or sub-part of the book; these too are often academic, but are helpfully divided into Basic Reading and Advanced Reading lists, and many of the basic recommendations are books rather than research papers. The definitions are collected in the admirably clear and helpful Glossary. The Index is a model of good organisation.
The book is based directly on Pohl's teaching experience as well as on much primary research. All the material has been used on students for some years, but exercises for students and home study are not provided. The material is consistently reliable, accurate and (despite the book's length) concise. It can be whole-heartedly recommended to students, lecturers and practitioners who want a comprehensive textbook. In this it is the first of its kind, and a major contribution to the RE literature.
"Completeness"No model of an infinite world can ever be complete. It is an easy game for reviewers to look for a favourite topic in the index of any book and to complain it is missing. Of course, the usual reason is simply that the indexer chose a different term for the "missed" concept. I had a look around and was pleasantly surprised by how good the coverage was. One concept I couldn't find was Rationale; its near-synonyms, Justification and Argumentation, weren't there either, and nor was Explanation, the nearest being Explanatory Scenario (page 154). That page explains that an explanatory scenario not only describes a sequence of interactions "but also provides rationales for specific interaction steps". So the concept is present but rationale is not treated as a topic in its own right. Perhaps this is a useful simplification: every kind of model offers some kind of explanation. For instance, a context model explains what the analyst sees as the relevant parts of the world for the proposed system or product. It is only in disputed cases where competing architectures and goals must be traded-off, and where not all goals can be satisfied in full, that actual reasons for and against need to be described explicitly. (Neither Trade-off nor the trendy Triage occur in the index, either, but the book has a whole chapter on prioritisation and another on negotiation.) The moral of this story is that even a comprehensive 800-page book cannot say everything, and like any other product must embody trade-offs and human judgements about priorities. Pohl's emphasis on soft skills like negotiation shows that he interprets RE as much more of a human activity than as a formal model-based activity in the manner of, for instance, van Lamsweerde. |
Requirements Engineering: Fundamentals, Principles, and Techniques (2010) is based on but is not simply a translation of the German textbook Requirements Engineering: Grundlagen, Prinzipien, Techniken (1st Edition 2007, 2nd Edition 2008). In particular, the coverage of solution-oriented requirements, COSMOD-RE and product lines has been extended. The 3rd German Edition "will be based on the English version", so it sounds as if the two language-variants (to use a product-line term) will continue to leapfrog each other. Long may they continue to do so.
© Ian Alexander 2010
From the rear cover:
Requirements engineering is the process of eliciting individual stakeholder requirements and needs and developing them into detailed, agreed requirements documented and specified in such a way that they can serve as the basis for all other system development activities.
In this textbook, Klaus Pohl provides a comprehensive and well-structured introduction to the fundamentals, principles, and techniques of requirements engineering. He presents approved techniques for eliciting, negotiating and documenting as well as validating, and managing requirements for software-intensive systems. The various aspects of the process and the techniques are illustrated using numerous examples based on his extensive teaching experience and his work in industrial collaborations.
His presentation aims at professionals, students, and lecturers in systems and software engineering or business applications development. Professionals such as project managers, software architects, systems analysts, and software engineers will benefit in their daily work from the didactically well-presented combination of validated procedures and industrial experience. Students and lecturers will appreciate the comprehensive description of sound fundamentals, principles, and techniques, which is completed by a huge commented list of references for further reading. Lecturers will find additional teaching material on the book’s website, www.requirements-book.com.
You may also like:
und auf Deutsch: