Use Cases: Requirements in Context
Use Cases: Requirements in Context came about, as most books probablydo, as the result of a complaint. We felt that there weren't any good booksthat addressed use cases for requirements gathering. It seemed that a lot ofpeople agreed that use cases were a perfectly good tool to solve the requirementsproblem, but no one had put down on paper any detailed process to help peopleunderstand how to use them this way. In fact, even as we write today, in late1999, there is no book of this sort that we know of.Requirements gathering has been a problem on almost every project we've beeninvolved with. The fuzzy nature of requirements makes working with them slipperyand unintuitive for most software analysts. Use cases are the first tool we'veseen that addresses the specification and communication concerns usually associatedwith requirements gathering.Although use cases in themselves are quite intuitive, the process around themis often done poorly. The questions that people have--How many iterations doI do? How fine-grained should a use case be?--are not answered or even addressedin most texts. This is probably because they are hard questions and the answerscan vary greatly from one situation to another. However, they are importantquestions, and we decided to describe our own best practices as a first volleyin what we hope will become a spirited industry dialog on how to generate requirementsthat will address user needs.Use Cases: Requirements in Context is a practical book for the everydaypractitioner. As consultants in the information technology industry, we employuse cases to specify business systems as part of our daily lives. We think weunderstand the issues facing people when they deliver software using tools suchas the Unified Modeling Language and use cases. Our main intent is not to describeuse case notation, although we do address that. Instead, we show a requirementsprocess that addresses requirements gathering in a way that produces qualityresults.While writing, we considered the factors that cause problems in requirementsgathering, and we developed a use case method for delivering a requirements-orientedset of deliverables. The methodology breaks down the activity of producing requirementsinto a series of steps, and it answers the questions that usually come up whenpeople employ use cases. This book relates directly to the real work of deliveringa specification, managing that effort with a team, and getting the most bangfor your buck.The sample use cases and use case diagrams that appear throughout the bookare also presented in Appendixes B and C. These appendixes demonstrate the developmentof the use cases and other requirements analysis artifacts through each phaseof their development. Appendix B documents a business system for real estate,and Appendix C documents a business system for the garment industry.We hope you enjoy this book. It was a labor of love for us. This is a processthat works well for us. If it works for you, too, that's great. If it doesn't,perhaps you can adapt some of the tools, ideas, or suggestions to your own wayof addressing the requirements problem.0201657678P04062001