This guide provides a case study for a mail-order business (with some e-commerce as well) as its central example. Use cases define how actors (i.e., users) are defined for all the various components of a mail-order business, including inventory, accounting, and order fulfillment. The authors suggest that while use cases are particularly useful at the beginning of a project cycle--for assessing risks and setting project timetables, for instance--they are also useful for testing and deployment of systems (specifically, for creating documentation and help manuals). The sample use cases--and supporting design documents--are what's best in this text. --Richard Dragan
From the Inside Flap
You're about to start a new project. Sometimes it seems like colonizing the moon would be easier. But you assemble a stalwart team and prepare to set sail on the good ship Requirements hoping to reach the fabled land of Success. They say there are no failed projects in Success and the profit margin is so high, the streets are paved with gold.
There are many dangers between here and Success. Many a ship is sunk on the way some say as many as 80 percent never reach that fabled land. You query those who have tried before. Use a ship from the OO line, they say. Booch, OMT, OOSE, UML are all good models to choose from. You'll also need a chart showing risks along the way and an architecture of the major land masses. And finally you'll need to plot a course of use cases to reach your destination. Use Cases are included in the Unified Modeling Language and are used throughout the Rational Unified Process. They are gaining wide acceptance in many different businesses and industries. Most often, use cases are applied to software projects and enterprise-wide applications.
This book is for anyone interested in applying use cases to project development. While we can't guarantee you will always have successful projects when using use cases, we can give you another way of looking at the projects you are developing and some tools that will make success more likely. You will get more benefit out of the book if you have some basic knowledge of object-oriented concepts. We will use the Unified Modeling Language for the notation, explaining the notation as we use it. A good book to use for reference on the notation is UML Distilled by Fowler. This is an excellent book on the topic and easy to read.
This book is organized using the Rational Unified Process as a framework. Within the phases of the process, we talk about the activities in the phase, focusing on activities based on use cases. We touch lightly on activities that interact with use cases, such as software architecture, project management, and object-oriented analysis and design. These are very important activities, with whole books devoted to each topic. Therefore, in the resource list in Appendix A, you will find our favorite books on these topics.
We have used one example, an order-processing system for a mail order company, throughout the book. This allows us to maintain consistency and build up a reasonably complex example. Parts of the solution are given in the various chapters to illustrate the concepts.
This book is presented as a sequence of steps, though life is never that simple. Each part will contribute to the rest until the system is complete. So if a section says to create an architecture, do what you can at that time, using what you currently know. You will add to it and refine it based on knowledge gained while working through the process.
You don't have to read the whole book before starting with use cases. Chapters 1 through 5 give the basics of working with use cases. We recommend that everyone reads those chapters. Chapter 6 covers architecture and mapping use cases into the architecture. Chapter 7 covers documenting use cases. Chapter 8 covers project planning with use cases, and Chapter 9 covers reviewing the use case documents. Chapter 10 goes into moving from use cases to OOAD. Ultimately, use cases are about documenting your system. Plan on doing a lot of writing. Appendix A provides a list of books we reference throughout the text, as well as other books we have found useful when developing projects. Appendix B shows the document templates used. These provide an example and a starting point for your own project. Modify them as needed to work with your project.
In October of 1995, Rational Software Corporation merged with Objective Systems. Among other things, this merger brought with it Ivar Jacobson and his use cases. In February 1996, I wrote and delivered the first use case course for Rational, which combined use cases with the object-oriented methodologies of Grady Booch and Jim Rumbaugh. Since that time, I have taught and run workshops on use cases with many of Rational's customers, as well as customers of my consulting company, Wyyzzk Training and Consulting. As I have taught them, so they have taught me. This book came out of what I've learned through the workshops.
Acknowledgments Thanks to:
My parents, Phil and Joan Schneider. Their love and faith give me the confidence to reach for the stars and the persistence to succeed.
My professors at Southern Illinois University, Edwardsville, in particular Dr. Nadine Verderber, Dr. Greg Stephen, and Dr. Eric Sturley. The education I received has proved to be a firm foundation on which I could build knowledge and skills.
Dr. Ivar Jacobson for the original work on use cases. I've built on the foundations he defined. Thanks also for his comments on the book in its early stages. His comments got me past a stuck point at a critical time.
My colleagues at Rational Software Corporation for their encouragement and support, particularly the men and women in the North American Field Organization, the International Field Organization, and Technical Support. Each one is an outstanding engineer, always willing to share with the rest what he or she has learned. This free exchange of ideas has been invaluable for maturing the processes we all teach use cases, OOAD, and OOPM. In particular I want to thank my former team, Deborah Bell, Sue Mickel, and Jean-Pierre Schoch, for their support and encouragement.
Neal Reizer, Bill Fairfield, and Garth Andrews for their support and encouragement and my customers and students, who taught me much while I was mentoring them.
Karin Palmkvist who helped us tremendously by doing a final review of the manuscript.
Bob and Norma Hughes for mowing our lawn when we got too busy with the book to do it. And we didn't even ask!
Special thanks to Dr. James Rumbaugh. He has helped me through the publishing process, giving advice and encouragement along the way. His intercession led to Addison-Wesley reviewing and publishing this book. Many thanks to our distinguished reviewers. They worked as hard as we did to make this book happen.
Kurt Bittner -- Rational Software Corporation
Lois Delcambre -- Professor, Computer Science and Engineering Department, Oregon Graduate Institute
Kelli A. Houston -- Rational Software Corporation
John Sunda Hsia
Phil Price -- Qualcomm
Arthur J. Riel
Speaking of hard workers, we were most fortunate to be working with J. Carter Shanklin, Angela Buenning, Rachel Beavers, and Krysia Bebick at Addison Wesley Longman. Our most heartfelt thanks for all your support and encouragement. You guys did all the tough work to make this book a reality. Special thanks to Marilyn Rash, and her team of editing and typesetting experts, who made sure this book got through production.
Last, but not least, thank you to Jason Winters for his love, support, and encouragement. He is the storyteller who brought the book to life. His unique insights brought clarity to a sometimes difficult subject. Geri Schneider Winters
Santa Clara, California 0201309815P04062001