Read an Excerpt
About This Book
This is a practical book that we hope will save you a great deal of time and effort in your software development projects. It gives you a set of archetype patterns and the theory you need to use them effectively. We’re planning to publish some more volumes of archetype patterns over the next few years, and because this book is the first volume, it sets the theoretical groundwork for future work on archetypes.
Archetype patterns are high-value model components that you can easily use in your own UML models. Each archetype pattern provides a solution for understanding and modeling a specific part of a business system. These patterns are valuable—a similar, but much less mature, set of patterns was recently independently valued at about $300,000 by a blue chip company. Using any one of these patterns, or even a pattern fragment, may save you many days or months of work. Even more important than this saving is the fact that each archetype pattern may prevent you from making expensive mistakes! All of the patterns presented in this volume work together harmoniously and so provide a unified pattern language for talking about selling systems. This harmony greatly adds to their value.
We think that in the year 2003, we are at the start of a revolution in software development. Much as the 1990s saw an increase in the level of abstraction from procedural to object-oriented code, we believe that this decade will see a further, and more significant, increase in the level of abstraction. This will be a change from code-centric software development to model-centric software development through the OMG’s Model Driven Architecture (MDA) initiative. Wehope that the concepts, techniques, tools and patterns that we describe in this book will help us all to make this revolution in software development a reality.
One of the reasons this book came about was through boredom! After modeling for many years, we decided that we were often just doing the same old thing over and over again. At their most abstract levels, most businesses seem to be made up of the same semantic elements—Customer, Product, Order, Party, etc. In fact, so pervasive are some of these elements, that it led us to the notion of business archetype patterns. We speculated that most business systems could be assembled, like Lego bricks, from a sufficiently complete set of archetype patterns.
The essence of our vision is that archetype patterns should be treated as a type of “model component” that can be taken off the shelf, customized and instantiated in your own models. This process can be done manually, but ideally should be automated to as high a degree as possible, by using an MDA (Model Driven Architecture) tool.
Today, you can use a GUI builder to create graphical user interfaces rapidly from GUI components. The work we describe in Chapter 2 enables you to construct semantically correct and verifiable UML models rapidly from platform independent, generic, model components with a high degree of automation. We believe that this may be the future of software development. We call this “component based modeling.”
This is reuse writ large—software systems are not considered to be composed of reusable classes, reusable code components, or even reusable subsystems, but rather from the reusable semantic elements that we call archetype patterns. In fact, to a great extent the essence of the business system lies in its archetypes and their patterns, rather than in any code or design artifacts. Coding practices, design practices and even architectures come and go with technology changes, but the archetypes survive, largely unchanged, sometimes over millennia.
Why We Haven’t Done It Sooner
We have wanted to write this book for several years but there have been obstacles that we have only recently overcome. These obstacles were:
- The state of the art of UML modeling. Until the OMG’s recent Model Driven Architecture initiative, we have not really had the conceptual tools necessary to describe archetype patterns in good form.
- The problem of pattern variation—business patterns often need to adapt their form to a specific business context. We have now formulated a simple solution to this problem that allows us to create archetype patterns that are adaptable to different business environments.
- The problem of communicating UML models to a wide audience. In fact, we’ve had a good solution to this for a few years now, in the form of literate modeling (described in Chapter 3).
- UML modeling tool support. It’s all very well presenting a theory of archetype patterns, but such a theory is useful to the average software engineer only if it can be put into practice. Modeling tools have recently come on to the market that can accommodate our requirements for archetype pattern automation.
The Structure of This Book
There are four main threads to this book:
- The theory of archetypes and archetype patterns (Chapters 1 and 2)
- Pattern automation using Model Driven Architecture (Chapter 2)
- Increasing the business value of UML models by making them accessible to a wide audience through literate modeling (Chapter 3)
- A valuable pattern catalog that you can use in your own models (Chapter 4 onward)
Chapters 1, 2 and 3 provide you with the theoretical basis for the rest of the book, and you will find that they cover a lot of new material. In Chapter 1 we describe a new approach to dealing with the problem of pattern variation—how to adapt patterns for different usage contexts. In Chapter 2 we show you how you can automate the process of using archetype patterns using an MDA-enabled UML modeling tool. The first two Chapters are intimately related. The pattern automation described in Chapter 2 depends on the theory of archetypes and archetype patterns presented in Chapter 1. Chapter 3 describes the technique of literate modeling that you can use to document your patterns. This chapter is pretty much self-contained. Literate modeling is a powerful way of communicating UML models to a wide audience.
Each of the first three chapters contains a summary that reiterates the key information in the chapter in a very concise outline form. This is great for revision and it is also a useful source of bullet points for presentations.
The pattern catalog can stand alone. If you choose to use the book primarily as a pattern catalog (Chapter 4 through Chapter 12), then you can skip much of the theoretical background in the first three chapters. Use the pattern catalog as a valuable resource for your own models. Each of the pattern chapters ends with a very brief summary that lists the key concepts and archetypes introduced in that chapter. Again, we do this in outline form.
Having said that the pattern catalog can stand alone, we believe that you will be able to apply the patterns much more effectively if you have at least a basic understanding of archetype theory first. You can find all you need to know in Chapter 1. All the patterns in the in the pattern catalog are a direct result of the application of the theories and techniques described in the first three chapters. The notions of archetypes, archetype patterns, pattern configuration and literate modeling have allowed us to create much more complete and robust patterns than would otherwise have been possible. Finally, we provide a glossary of archetypes, a bibliography and a complete index.