Applied Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example provides a practical, hands-on guide to putting use case methods to work in real-world situations. This companion workbook to Use Case Driven Object Modeling with UML bridges the gap between the theory presented in the authors' first book, and the practical issues involved in the development of an internet/e-commerce application.
Uniquely conceived as a workbook, featuring an e-commerce system for an on-line bookstore as a running example, the book dissects its design in detail, demonstrates the most common design mistakes, and reveals the correct solutions. The hands-on exercises give you the opportunity to detect, identify, and correct critical errors on your own, before reviewing the solutions provided in the book.
The workbook is structured around the proven ICONIX Process, a streamlined approach to UML modeling designed to avoid analysis paralysis without skipping analysis and design. It presents the four key phases of this minimalist approach to use case driven design: domain modeling; use case modeling; robustness analysis; and sequence diagramming. For each of these topics, the book provides an overview, detailed discussion, top 10 mistakes, and a set of exercises for honing object modeling and design skills.
Another unique aspect of this book is the three chapters on reviews. The authors devote a chapter each to requirements review; preliminary design review; and critical design review. This focus on "designing quality in" by teaching how to review UML models fills a major gap in the published literature.
The book shows you, by example, how to avoid more than 70 specific design errors as shown in the "Top 10" error lists on the inside covers and within each chapter. With the information, examples, and exercises in this book, you will develop the knowledge and skills you need to apply use case modeling more effectively to your next application.
Theory, in Practice.
A Walk (Backwards) Through the ICONIX Process.
Key Features of the ICONIX Process.
The Process in a Nutshell.
The Key Elements of Domain Modeling.
The Top 10 Domain Modeling Errors.
The Key Elements of Use Case Modeling.
The Top 10 Use Case Modeling Errors.
The Key Elements of Requirements Review.
The Top 10 Requirements Review Errors.
The Key Elements of Robustness Analysis.
The Top 10 Robustness Analysis Errors.
The Key Elements of Preliminary Design Review (PDR).
The Top 10 PDR Errors.
The Key Elements of Sequence Diagrams.
The Top 10 Sequence Diagramming Errors.
The Key Elements of Critical Design Review (CDR).
The Top 10 CDR Errors.
In our first book, Use Case Driven Object Modeling with UML, we suggested that the difference between theory and practice was that in theory there is no difference between theory and practice, but in practice, there is. In that book, we attempted to reduce OOAD modeling theory to a practical subset that was easy to learn and pretty much universally applicable, based on our experience in teaching this material to people working on hundreds of projects since about 1993.
Now, two years after hitting the shelves, that book is in its fifth printing. But even though our work has been favorably received, it seems like the job isn't all the way done yet. "We need to see more use case and UML modeling examples" is a phrase we've been hearing fairly often over the last couple of years. And, as we've used the first book as the backbone of training workshops where we apply the theory to real client projects, it's become clear that the process of reviewing the models is critically important and not well understood by many folks.
So, although we present a fairly extensive example in our first book, we convinced Addison-Wesley to let us produce this companion workbook, in which we dissect the design of an Internet bookstore, step-by-step, in great detail. This involves showing many common mistakes, and then showing the relevant pieces of the model with their mistakes corrected. We chose an Internet Bookstore because it's relevant to many of today's projects in the Web-driven world, and because we've been teaching workshops using this example and, as a result, had a rich source of classroom UML models with real student mistakes in them.
We collected some of our favorite mistakes--that is, the kind of mistakes we saw getting repeated over and over again--and built this workbook around those models. And then we added three new chapters about reviews--one on requirements reviews, one on preliminary design reviews, and one on critical design reviews. What really makes this book unique, though, is the fact that you, the reader, get to correct the mistakes.
After we give you an overview of the ICONIX process, in Chapter 1, four of the seven subsequent chapters address the four key phases of the process in some detail. The format of each of these chapters is as follows:
The following aspects are common to each set of exercises:
Your task is to write corrections on each "bad" exercise page before you flip it over to see the "good" exercise diagram.
Chapter 2 presents classes used by 10 sample use cases. Chapter 3 presents fragments from all of those use cases. Chapters 5 and 7 present diagrams connected with five of the use cases. The idea is that you'll move from a partial understanding of the use cases through to sequence diagrams that present full text, and some of the associated elements of the detailed design, for each use case.
What about the other three chapters, you ask?
All three of these chapters offer overviews, details, and top 10 lists, but we don't make you work any more exercises. What these reviews have in common is the goal of ensuring consistency of the various parts of the model, as expressed on the "good" exercise diagrams.
The appendix wraps things up in a nice bow by offering a report that shows the "good" model in its entirety--all of the class diagrams, use case text, robustness diagrams, and sequence diagrams represented in the body of the book, plus some other stuff too.
Cool premise, isn't it? We're not aware of another book like this one, and we're hoping you'll find it useful in your efforts to apply use case driven object modeling with UML.