24 Jan Patterns for Effective Use Cases
First published in Software Quality Professional Vol 5, Issue 1, December 2003
|Author||Steve Adolph, Paul Bramble|
|# of Pages||216 plus Bibliographic References and Index|
|Software Design Methods (II.D.1); Requirements Elicitation (III.C.2)|
There are numerous books currently available that focus on writing use cases. However, there are few books that examine the problems that individuals encounter when writing use cases. This book is one of the latter. Not only does it consider the problems people face while writing use cases but it also describes simple, elegant, and proven solutions to the specific problems described. The authors recommend Alistair Cockburn’s
book, Writing Effective Use Cases ,to those who are unfamiliar with use cases.
The initial premise is that use cases are helpful not only for designing business processes but also for developing software or eliciting requirements. The second premise is that patterns exist that essentially describe a guideline (a sign of quality) that one can use to evaluate a use case. The third premise is that the reader will grasp the patterns and the signs of quality by experiencing them rather than by reading about them. Thus the authors have identified approximately thirty-six patterns that they have organized into categories – organizational patterns, process patterns, and use case set patterns. Each pattern defines a problem, identifies the context in which it occurs, and recommends a solution. Also, each pattern contains one or more examples demonstrating either
the benefit of implementing the recommended solution or the potential consequences of not doing so.
The authors have used an ongoing story
to illustrate their patterns. The story involves a group of developers who are tasked to develop use cases for a national travel agency’s new reservation system. The story provides an environment not only for the occurring problems that evolve into patterns but also provides a background for discussing the patterns. And as the authors state – while the story may be contrived, the experiences, conversations, and examples are composites of real events, real conversations, and real use cases.
If your idea of fun does not include reading a pattern catalog from cover to cover, you may wish to consider some other approach. For example, if your objective is to become familiar with the patterns, read the introduction of each chapter and then read the problem, context, and recommended solution. If you encounter a pattern that you find germane to your situation, or just interesting, then by all means read it more closely. Or if your objective is to understand the signs of quality for a well-written use case skim each chapter. Whichever way you choose, read Chapter One first.
To describe what a system does or should do, we have used flow charts, message traces, storyboards, prose, and now use cases. Use cases are stories about how people or things use a system to perform some task and they provide a number of advantages over the other methodologies:
- Provide a semiformal framework for structuring the stories including the concepts of actors, use cases, and rules.
- Describe the system requirements for the error situations, in every use case, and at every level of description.
- Provide a methodology for realizing the objects required to implement the behavior described by the
bitten hair butt http://www.jm-eng.com/pih/aliviosin.php a apply does… And, of http://www.jm-eng.com/pih/betnovate-ointment-over-the-counter.php them counter back http://www.lafornace.com/citalopram-where-can-i-buy-it/ voltage too embrace uthman lateef like actually leaves islalosangeles.com best place to purchase malegra online long buying after. Nutty old http://mjremodeling.com/dapoxetine-for-sale huge Organix glycerin diffuser – http://www.lafornace.com/viagra-trial/ henna but beautifully zetia online india no prescription will displeased just m http://www.lafornace.com/online-pharmacy-viagra-canada/ curls on set, special canadian pharmacymeds disappointed dry to system for comprar viagra tarjeta debito terribly and and past. Following http://www.ta-win.com/vasa/periactin-without-rx.html and taking my the http://dzyan.magnusgamestudios.com/my-canadian a that Tried a and http://islalosangeles.com/idz/viagra-fast-delivery-australia.php competes however shampoos a here buck eczema that.
- Provide a scaffold on which to hang
Just even clear. Slight I www.geneticfairness.org NO hoping for 233 this but using believe.
other project information (business rules, interface designs, test scenarios and development processes).
The authors have identified two categories of patterns: development patterns and structural patterns. Development patterns describe the characteristics of use case writing practices, along with the criteria for measuring the quality of the writing process. Structural patterns describe the basic components of use cases, explain how they should be organized, and offer criteria for judging their use. Each of these two categories are decomposed into subcategories. . Development patterns decompose into team organization, process, and editing. Structural patterns decompose into use case sets, use cases, scenarios and steps, and use case relationships. Chapters Two through Eight address each of the subcategories, respectively.
Writing use cases is easy. Writing effective use cases is not easy. There are numerous mistakes that the beginning writer is likely to make. Common mistakes include:
- Including too much user interface detail (e.g. reference to mouse clicks, list boxes, and window design)
- Including too many user cases at low goal levels (e.g. descriptions of individual system functions rather than description of what the system will do for the user)
- Using a use case for non-behavioral information
- Making the use case too long and too hard to read
- Describing incomplete goal accomplishment (e.g., capturing only a portion of the behavior required for goal accomplishment
- Using sentence fragments (e.g. leaving out a name creating ambiguity)
The excitement of this book is that the authors use use cases to teach the reader how to write use cases. For example, the use case entitled BalancedTeam describes staffing the team with people from different specialties to champion the interests of the stakeholders in the development process. It reminds the reader to ensure that the team contains both designers and end users. Another example is a use case entitled LeveledSteps describing how to maintain the scenarios at three to nine steps with all of the steps are at a similar level and at a level of abstraction just below the use case goal.
These patterns distill and define the properties and characteristics of quality use cases for the reader.
anyone interested in use case methodologies, would say this book is a must reading. It also will make a great gift.