skip to main content
Skip header Section
Writing Better RequirementsSeptember 2002
Publisher:
  • Pearson Education
ISBN:978-0-321-13163-8
Published:01 September 2002
Pages:
159
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Book: It isn't that they can't see the solution. It is that they can't see the problem.G. K. Chesterton Requirements are essential Requirements are the key to project success. We all know this, but we often forget n and pay the price. Many projects, both in industry and in the public sector, fail to do what is needed. They deliver late, over budget, and poor quality. Missing out on requirements is disastrous. Who this book is for Writing Better Requirements is designed as a short, convenient overview for practising systems engineers and others who find they need to write requirements. Because it is about practical techniques, it should be useful in many different kinds of system and software project. We aim to enable readers to write requirements good enough for successful systems to be specified, designed, and tested against them. This book should also form a useful introduction for students who want to learn how to get started with requirements. What this book does and does not cover This book specifically focuses on how to discover and express requirements. It is not about system specification, nor how to make a design that meets user needs, nor even about how users should ensure their requirements are met.Since users own the requirements, these must be expressed in a way users can understand. This book treats requirements as simple pieces of text, supported by operational scenarios and informal diagrams. Many attempts have been made to improve on these simple means, using more formal structures and notations with varying success. We have not tried to cover all these approaches. To place requirements in context,the book must of course cover some aspects of the development process. Project management, verification, quality assurance, and the development life cycle are all closely linked with requirements n indeed each of these areas is meaningless in isolation. But in this book, we concentrate on the tasks of capturing and writing requirements. Each chapter contains exercises to help readers to practice their skills. We recommend some good books for readers who want to go beyond writing good requirements to other aspects of systems and requirements engineering. Getting the best from this book This book is meant to be read in the order in which it is written, taking the reader through a disciplined process of identifying, gathering, organizing, and reviewing. This is vital for success. Each chapter introduces a stage in the requirements process. Key terms are defined informally, explained, and illustrated with examples and exercises to develop the practical skills of good requirements writing. These skills involve looking at problems, dealing with people, looking critically at what is being written, and reviewing requirements effectively. Reviewing is to some extent a separate skill and can be looked at separately; the others belong together in a more or less strict sequence. Structure of this book We begin by illustrating the importance of requirements. You may need this chapter to convince other people that they have a problem. Too many projects have poor requirements, and never recover. If you are already convinced, you can skip this introductory chapter. We then show in a non-technical way how to define a problem, in close co-operation with the only people who know what the problem is, the users. The body of the book steps through the process, looking at: how to capture requirements from users; how to organize these into a clear message from users to developers; techniques for the special kind of writing needed for requirements; how to review requirements informally at every stage, then formally. Practical Exercises All the chapters in the body of the book contain practical exercises for the reader. These are designed to take about half an hour each. Some are sufficiently open-ended for more extended self-instruction, or student projects. We recommend that readers attempt each exercise, at least briefly, to get an actual feeling for the difficulties involved. At the back of the book are short answers to all the questions, with hints to the reader for more complete projects. Problems before Solutions If the message of this book can be stated in a sentence, it is: Get agreement on what people want, before attempting to create solutions. Finding out what is needed, instead of rushing into presumed solutions, is the key to every aspect of system development. Most technical problems can be solved, given determination, patience, a skilled team n and a good definition of the problem to be solved. Acknowledgements We would like to thank the anonymous reviewers who checked the book so carefully; our wives and families for tolerating us while we wrote; and all our consultancy, training and workshop clients who experienced the material first-hand and showed us the way it needed to be explained. We are specially Richard Marshall for reading an early draft, and to Professor Ken Jackson for his perceptive and precise comments.

Cited By

  1. Tiwari S and Gupta A (2020). Use case specifications, Journal of Software: Evolution and Process, 32:1, Online publication date: 15-Jan-2020.
  2. (Weber) Dupree J, Lank E and Berry D (2018). A case study of using grounded analysis as a requirement engineering method, Science of Computer Programming, 152:C, (1-37), Online publication date: 15-Jan-2018.
  3. Ryan M and Wheatcraft L (2017). On a Cohesive Set of Requirements Engineering Terms, Systems Engineering, 20:2, (118-130), Online publication date: 1-Mar-2017.
  4. Tiwari S and Gupta A (2017). Investigating comprehension and learnability aspects of use cases for software specification problems, Information and Software Technology, 91:C, (22-43), Online publication date: 1-Nov-2017.
  5. Wheatcraft L, Ryan M and Dick J (2016). On the Use of Attributes to Manage Requirements, Systems Engineering, 19:5, (448-458), Online publication date: 1-Sep-2016.
  6. Maiden N, Lockerbie J, Zachos K, Bertolino A, Angelis G and Lonetti F A Requirements-Led Approach for Specifying QoS-Aware Service Choreographies Proceedings of the 20th International Working Conference on Requirements Engineering: Foundation for Software Quality - Volume 8396, (239-253)
  7. Philippo E, Heijstek W, Kruiswijk B, Chaudron M and Berry D Requirement ambiguity not as important as expected Proceedings of the 19th international conference on Requirements Engineering: Foundation for Software Quality, (65-79)
  8. Hussain R, Lockett H and Annamalai Vasantha G (2012). A framework to inform PSS Conceptual Design by using system-in-use data, Computers in Industry, 63:4, (319-327), Online publication date: 1-May-2012.
  9. ACM
    Gilson F and Englebert V Towards handling architecture design, variability and evolution with model transformations Proceedings of the 5th International Workshop on Variability Modeling of Software-Intensive Systems, (39-48)
  10. Maiden N, Seyff N, Grunbacher P, Otojare O and Mitteregger K (2007). Determining Stakeholder Needs in the Workplace, IEEE Software, 24:2, (46-52), Online publication date: 1-Mar-2007.
  11. Sampaio A, Rashid A, Chitchyan R and Rayson P EA-Miner Transactions on aspect-oriented software development III, (4-39)
  12. Ahn S and Chong K Eliciting potential requirements with feature-oriented gap analysis Proceedings of the 9th international conference on Reuse of Off-the-Shelf Components, (427-431)
Contributors

Recommendations

Reviews

Andres Silva

Each year, new books appear on the critical topic of requirements engineering (RE). Compared with the situation some years ago, it is clear that interest in this field is growing. So now, when a new book arrives, the question to ask is Do we really need another RE book__?__ In this particular case, the answer is yes, since this book fills a gap in the RE bookshelf: the need for a brief, small tutorial, aimed at RE practitioners, that can be read and (ideally) put into practice quickly. This is a 160-page, small-format book that arises from the practical experience accumulated by both authors during real projects, and from their elaboration of requirements management (RM) tools. In fact, one of the authors (Stevens) is the founder of QSS, the company behind the famous DOORS tool, which was recently absorbed by Telelogic. The authors, however, resisted the temptation to use the book as a showcase for DOORS, even though there are some DOORS screenshots in the book. Instead, they concentrate on the ideas that underlie DOORS and other tools, like prioritization of requirements, requirements attributes, traceability, and so on; they put the emphasis on the good practices that every serious practitioner should follow, with or without DOORS. The book is structured into eight chapters. Chapter 1 is an introduction to the importance of requirements. In this chapter, the authors make the inevitable contribution to the terminological confusion that, unfortunately, is so common in this field. They (re)define requirements, goals, functions, affordances, capabilities, and so on. However, they use their terminology clearly and consistently through the book, unlike so many other existing books on RE. The rest of the book is structured to follow a requirements process: chapter 2 is about stakeholder identification; chapters 3 and 4 introduce basic techniques for gathering requirements from stakeholders and other sources. In chapter 5, the authors present a case for organizing the requirements into scenarios, and chapter 6 deals with contextualizing the requirements, mainly by means of adding attributes and traceability links. Guidelines for requirements writing are presented in chapter 7, and, finally, chapter 8 addresses the crucial issue of checking and reviewing requirements. The book includes some exercises (with solutions), an example user requirements document, and a glossary of terms. The exercises are very interesting and illustrative, making this book useful for instructors. An approach is defended for requirements documentation based on two separate documents: the user requirements document (containing what the user needs) and the system specification (containing what the system would have to do to meet user needs). This approach has been defended many times before in the literature, by authors like Jackson [1] and Kovitz [2], whose influence is clear in this work. The novelty of the book, however, is that it concentrates exclusively on how to write the user requirements document, not the system specification, forcing the authors to establish an extremely clear and helpful distinction between them. This distinction, consistent with Jacksons approach, is wonderfully illustrated with examples, and the authors provide useful advice and heuristics. For instance, throughout the book, there is a constant, strong emphasis on asking why questions as a means to discriminate design decisions from requirements. I found many positive details spread throughout the book: the focus on the structure of the document, the relation made between goals and requirements, useful advice based directly on the authors experiences, suggestions on how to make sense of poorly organized documents, and instructions for organizing a requirements document according to scenarios. In this last point, the authors are very careful: they recommend a scenario-based approach for structuring the requirements document, but, to their credit, they never make the mistake of equating requirements and scenarios. What could be the most positive value of the book, however, is at the same time its main drawback: its short length. Even though chapters can be read in less than 30 minutes each, there are many topics left out of the book. It is clear, however, that the authors tried to write a short book, intentionally excluding some non-core topics. Readers can get further information from other sources, for example those recommended by the authors in the Further Reading section. This book is recommended for people who cannot (or do not want to) spend too much time reading technical literature. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.