With the emergence of the Unified Modeling Language (UML) over the last few years, developers new to the advantages of thorough software-engineering practices now have a better notational system for designing more effective software. To use UML effectively, you will want to create use cases, which help describe the requirements of a system. In their concise and very readable book, the authors of Applying Use Cases show how use cases can benefit all aspects of the software-design process and let you create better software in less time.
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
From the Back Cover
Many projects struggle to define the specific functions of software, and end users often find that the final product does not perform as expected. Use cases allow analysts to identify the required features of a software system based on how each end user will use the system. This efficient and straightforward analysis process gives end users direct input into the design of the system that will serve them.
Applying Use Cases provides a practical and clear introduction to developing use cases, demonstrating their use via a continuing case study. Using the Unified Software Development Process as a framework and the Unified Modeling Language (UML) as a notation, the authors step the reader through applying use cases in the different phases of the process, focusing on where and how use cases are best applied.
Other highlights include:A collection of realistic examples showing how to apply use cases, drawn from the authors' extensive experience in this area A case study that offers insight into the common mistakes and pitfalls that can plague an object-oriented project An illustration of the latest version of the UML notation for diagramming use cases A practical "how-to" discussion on applying use cases to identify system requirements
About the Author
Geri Schneider is a senior consultant and trainer at Andrews Technology, Inc., in the areas of iterative development, software project management, object-oriented analysis and design, software architecture, design patterns, and use cases. In addition, she teaches in the software engineering management certificate program for the University of California Santa Cruz Extension. She previously worked for Rational Software Corporation mentoring customers in the areas of iterative development, object technologies, and use case analysis. Jason P. Winters is a staff design engineer for Cadence Design Systems, Inc. He was previously with Lucent Technologies as a staff engineer. At Lucent, he designed and built specialized tools, promoted the use of modern software development practices and tools throughout the company, and mentored projects on object-oriented analysis and design, UML, and use cases.
Excerpt. © Reprinted by permission. All rights reserved.
There have been many changes for us and for the UML since the first edition was released in September 1998. The book has changed to stay current. The material in the first edition is also in the second edition, but you may find it in a new location. We moved the engineering-oriented material to the end of the book, and the business-oriented material to the beginning. This should make it easier for different audiences to find the material that interests them.
We updated the book to UML 1.3. A lot of the changes are in Chapters 3 and 4 because that is where we described most of the notation. The uses relationship became two relationships in UML 1.3, include and generalization. The extends relationship became extend. In both cases the notation changed as well. The definition of scenarios changed a bit too. What we used to call scenarios are now called paths.
We have added some new material that we found useful and important. Chapter 6 is a new chapter on setting the level of detail in use cases. This includes information on business process-level use cases and maintaining traceability between use cases at different levels of detail. Chapter 7, Documenting Use Cases, includes some ideas on handling login and CRUD (create, read, update, delete) in use cases. Chapter 8, Reviews, has a new section on common mistakes we have seen and how to fix them. We have included more information on sequence diagrams in Chapters 5 and 9.
There have been changes for me and Jason as well. Jason left Octel and is now a staff engineer at Cadence Design Systems. I liked having my own business, but didn't like the bookkeeping, so I took a job running the OO division of Andrews Technology, Inc. We still have Wyyzzk and Jason does some weekend consulting for that business. Things even changed on the publishing side. Addison-Wesley is now part of Pearson Education, and we have a whole new team managing the Object Technology series. They have been wonderful to work with and made the transition as smooth as possible.
One question we get asked a lot is: What do the footprints and people talking icons mean? The footprints mark major steps in the process. The people talking appear next to the storyline.
Thank you for all the e-mail about the book. We don't always get a chance to reply, but we have read all your letters and hope we have answered most of your questions in this second edition.Geri Schneider Winters
Santa Clara, California
0201708531P04062001 --This text refers to an alternate Paperback edition.