PREFACE Strategies, Patterns, and Applications APPLICATIONS How do people really learn? A proverb in Latin says it best: “The example educates.”
Truly, the example educates. It's a wonder if anything else ever does. Educating by example is what true education is all about.
An elementary education innovator startled us with these words:
“Educate right at the moment someone can apply it with success.”
This book is a book of education by example.
You won't find the obligatory 125 pages about object philosophy. You won't find page after page of icons and adornments. Why? Because the purpose of this book is to communicate how to build effective object models. And the only way to do that is to give you good examples, presenting key “lessons” right at the moment you can apply them with success.
The best shortcut to building effective object models is to study real-life examples of building effective object models. ThatÕs why this book presents applications—along with strategies and patterns, applied along the way.
The core of this book is its six application chapters. Each example is a real-life example of building an object model. Each application has enough detail in it, so that you might read it and say, “Yes, I get it. I can build real systems this way.” Moreover, each application is one that, by analogy, is applicable to most businesses and industries. For example, “point of sale” and warehouse are applications that nearly every business needs.
Chapters 1 to 6 present the applications, delivering new strategies and patterns at the moment you can apply them with success. Chapter 1, “Connie's Convenience Store,” presents a point-of-sale application (nearly every business has one, in one form or another). Chapter 2, "Wally's Warehouse," presents a warehousing application (again, nearly every business has one). Chapter 3, "Ollie's Order Center," presents an order processing application (nearly every business has one). Chapter 4, "Dani's Diverters," presents a soft real-time application: a sensor-and-diverter system (nearly every manufacturing or shipping business has one). Chapter 5, "Andi's Autopilot," presents a hard real-time application: an autopilot system (many hard real-time systems have similar needs). Chapter 6, "All Five Applications, At High Speed," presents instructions for building initial object models entirely with patterns, resulting in object models that are ready for subsequent refinement with strategic Strategies and Patterns.
As you read through the applications, you'll also discover specific strategies and patterns, practical and repeatable "how to" advice that will help you develop an intuitive feel for building object models. Strategies and patterns are nuggets of wisdom about building object models. In this book, you'll learn 148 strategies and 31 patterns, which appear in sequence in Chapter 7.
A strategy is a plan of action intended to accomplish a specific objective.
A pattern is a template, one worthy of emulation. "Pattern" can apply to the plans for a product rather than to the creations made from its specifications. The word often suggests blueprints or templates to be followed in constructing the product. More generally, the word indicates the design or configuration that something takes in actuality. But the word can also refer to the perfect representative of a type, or to any example thought worthy of emulation" (Use the Right Word). Observe that:
A pattern is a plan, rather than a specific implementation.
A pattern is a template, to be followed during construction.
A pattern is something observed from something in actuality.
A pattern is an example worthy of emulation.1
An object-model pattern is a template of objects with stereotypical responsibilities and interactions; the template may be applied again and again, by analogy.
Object patterns are repetitive forms, just like those in music. They occur again and again and again. You'll learn how to use them to your advantage, in building effective object models.
Strategies and patterns express examples of good practice, ones that can be used to help object modelers develop more effective results. Both help developers gain an intuitive understanding, a "gut feel," for good object models.
Strategies and patterns make it possible to communicate object-modeling expertise effectively. Without such patterns, that much-needed expertise is only acquired by trial-and-error. Where did these strategies and patterns come from? From continual introspection, while building hundreds of object models over a five-year period.
Through time, strategies and patterns join the language of analysts and designers, even when discussing the architectural aspects of an object model. For example, as soon s someone on the team describes a pair of objects as "participant-transaction," others on the team immediately know what kinds of objects and stereotypical responsibilities are involved.
Strategies and patterns move object-model building to something more than just "one object a time."
Chapter 7 is a strategy and pattern handbook. The appendices address supporting issues: notation, patterns in other fields, data management, the executive decision to adopt object technology, and a histogram of initial object modeling. A glossary defines key terms.
Why READ This Book?
What makes this book unique? In other words, why read this book?
It teaches a software method by example—entirely by example.
This is the world's first software method book to do so. It's about time!
It presents applications that occur in nearly every industry.
You'll find it easy to relate to the applications.
You'll find it easier to transfer what you learn to your own software development projects.
It uses real-world applications, with a depth that readers can say, "Yes, it can be done."
The book selectively explores specific aspects of each application, to expose you to specific strategies and patterns.
No trivial examples!
No rambling case studies, either (the applications expose strategies and patterns, not mind-numbing minutia).
It delivers 148 strategies and 31 patterns—practical, ready-to-use insights for building effective object models.
This is the world's first (and only) methods book to do so.
It's a no-BS guide that really helps.
It delivers tangible chunks of "how to" advice, designed to help you more quickly develop an intuitive sense in building effective object models.
It offers practical insights into how to build better object models, no matter what notation you use.
It presents four activities and four object model components—not steps and phased models.
You're free to follow the development path that best suits your customer, your company, your project—and your time-to-market needs.
You apply four activities—purposes and features, objects, responsibilities, and scenariosÑfollowing whatever path best fits your project needs.
You work with objects in four model components—problem domain, human interaction, data management, and system interaction—as you see fit, on your project. You get the "separation of concerns" benefit of :analysis and design" approaches—without forcing people to work with those considerations in separate phases or steps.
It presents the Coad notation, fully integrating class diagrams, object interaction diagrams, and object timing diagram—one model, from concept to code.
Such a unified notation is an essential ingredient, an absolute must:
for delivering frequent, tangible, working results—and corresponding risk reduction.
for acquiring and using tools that support continuously up-to-date object models and object-oriented programming.
Chapter 1 describes the notation, right when you need it. In addition, Appendix A summarizes it.
All six application chapters present object model results in all three leading notations: Coad, OMT, and Unified. Here's why:
To communicate better with those readers already familiar with any of these notations.
To facilitate multinotation literacy, for all readers.
To demonstrate that the heart and soul of effective object models is its strategies and patterns (not the shape of an icon or the number of adornments).
Automated Tool, Included on diskette.
This book comes with automated tool support, called Playgroundª.
Playground is a low-cost, easy-to-use tool for building objects models. It's shareware. And you can use it free, while working through the examples in this book.
Playground is especially suited for teams of domain experts and object modelers, working together during the early stages of a new project. It's a great way to get started with building effective object models.
Features: Drag-and-drop classes, attributes, services, connections; multiple views, always in-sync; view management, with view categories, selective hiding/showing, and view update options; full control over connections, including routing points, right-angled or diagonal connections, and more; and extensive customization with preferences.
Requirements. Windows with Win32s, 486-33 or better, 8 MB RAM, 4 MB disk space. Maximum recommended model size: 50 classes.
Tech support for Playground is provided by e-mail (playground@oi) or regular mail only.
Try it out for free. Use Playground for free, while working out examples in this book or using it in a classroom. The "Classroom and Personal Study ONLY" version is included with this book on diskette (the newest version is at ftp://ftp.oi/pub/oi/playground).
Registered version benefits package. Diskette of most recent release, priority tech support, automatic notification of upgrades—and freedom from the "Classroom and Personal Study ONLY" watermark (a tiny label that appears at the bottom of windows and printed outputs).
Registered version pricing. For individual use: $40. For individual use within a company or organization: $95. The registration fee applies only to the version you receive at that time. Site licenses are available.
Guarantee. Full 30-day money-back guarantee.
How to register. Send your name, address, e-mail address, and payment to Object Intl., Inc. Payment by check (US funds) or Visa/MC/Amex (for credit card orders, be sure to include both your card number and its expiration date).
For object models and C++, we use Object International's Togetherª/C++, the tool for continuously up-to-date object modeling and C++ programming.
Contact Object International, Inc., 1720 Leigh Drive, Raleigh NC 27603 USA
(om-book@oi or visit oi).
Additional strategies and patterns
What about updates, including additional strategies and patterns?
As a reader of this book, you qualify for a free one-year subscription to The Coad Letter¨, a continuing series of special reports on object technology.
Enjoy reading about new advances in object technology. Recent issues include "Amplified Learning" (16 pages on accelerating mastery of "object think") and an advance copy of the hypertext version of the "Strategies and Patterns Handbook."
Delivered by e-mail. To subscribe: just send a message to us at majordomo@oi. The body of the message should read: subscribe coad-letter.
(If you don't have e-mail and would like to receive an issue whenever we print one, please feel free to send in your contact information.)
Object model workshops
What about object workshops, for the latest advances in strategies and patterns?
Announcing: lively and engaging workshops that deliver practical insights into building better object models.
In each hands-on session, you'll learn and apply specific strategies and patterns for building objects models (applicable with whatever notation you prefer: Coad, Booch, or Rumbaugh).
Peter Coad and Mark Mayfield will personally work with your team. Your team will "learn-by-doing," building actual project results, mastering more and more strategies and patterns, including new breakthroughs, not yet in print.
Delivered at your site or ours. Money-back guarantee. Our goal is customer delight. "I've been working with OOA/OOD and C++ for 3 years, yet I learned more in this workshop than in all that time!" (sr. developer in a "big 3" C++ software company).
Contact Object International, Inc., 1720 Leigh Drive, Raleigh NC 27603 USA
(om-book@oi or visit oi).
creativity and innovation
Creativity and innovation are essential. The global marketplace demands them from all of us.
Methods, at their best, help people move to greater heights of creativity and innovation. We hope that this method—the Coad method—might serve you in this way.
Object International, Inc., Raleigh NC USA
3D BA 3B DD 57 B6 04 EB
B7 30 9D 06 A1 E1 05 50
Applied Intelligence Group, Oklahoma City OK USA
Austin TX USA
B1 CB BE 43 1E 74 22 57
08 AF 7E CE 5B DA A5 3B