Writing use cases as a means of capturing the behavioral requirements of software systems and business processes is a practice that is quickly gaining popularity. Use cases provide a beneficial means of project planning because they clearly show how people will ultimately use the system being designed. On the surface, use cases appear to be a straightforward and simple concept. Faced with the task of writing a set of use cases, however, practitioners must ask: "How exactly am I supposed to write use cases?" Because use cases are essentially prose essays, this question is not easily answered, and as a result, the task can become formidable.
Review By: Carol A. Dekkers
06/15/2010This book is part of The Crystal Collection for Software Professionals written by the Collection Editor, Alistair Cockburn. In the author’s own words, “The book is organized as a general introduction to use cases followed by a close description of the use case body parts, frequently asked questions, reminders for the busy, and end notes.” In addition, there are four appendixes including: A. Use Cases in UML, B. Answers to (Some) Exercises, C. Glossary, D. Readings.
It is rare to find a book today that imparts as much information and experience per page as this one. Its strength lies in the combination of the author’s practical ideas and insights into the often confusing world of use cases. It is clear the author knows about the subject—he presents his practice-based ideas succinctly, and evinces his expertise with the subject through such illustrative chapter and section headings as: Your Use Case is Not My Use Case, The Use Case as a Contract for Behavior, Three Named Goal Levels (relating to different levels of use cases), When are We Done?, and The Missing Requirements.
As a notable expert in the field, the author could rightly claim oracle status; however, it is refreshing that he remains humble enough to admit that he doesn’t have all the answers. Acknowledging the myriad approaches to use cases does not weaken this book; in fact, the statement strengthens it. The book is presented as "a technique guide, describing the nuts-and-bolts of use case writing. Although you can use the techniques on almost any project, the templates and writing standards must be selected according to each project’s needs." Sage advice, indeed.
I was pleasantly surprised that from the beginning (starting with the inside cover), the author practices what he preaches. An example of this is how the aim of the book ("To be a self-study guide to writing good [i.e., usable] use cases") is achieved, by having the inside cover be a quick reference summary to both the symbols and the key concepts presented later.
This book is easy to digest and, at the same time, immediately practical: "People rarely have time to make the use cases formal, complete and pretty. They usually only have time to make them "sufficient," which is all that is necessary" (5). This is a welcome respite from the volumes of technical books that expound on theory before practicality. As an added bonus, the author has liberally sprinkled examples, symbols, and easy-to-follow exercises demonstrating the use case principles throughout the book. I recommend this book for seasoned use case practitioners and novices alike—everyone working with use cases should have a copy on their shelf.