We partitioned a system into several domains so we could understand each one, but to build a system we need to define how they join together to make a system. This chapter shows how to approach the process of modeling other domains and how to together link individual domains' models. There are two primary mechanisms for linking domains, both of which may be used in a particular system. One approach is explicit, if anonymous, linkages and invocations, such as inheritance or bridge operations. The second style is implicit, whereby we specify separately from both domains, a set of join points between elements in each domain. This latter style is akin to that used in aspect-oriented programming.[1]
The next, final chapter describes how to compile the several domains into a system using a model compiler. This chapter and the next provide only an overview of the process the subjects of bridging domains and building model compilers are really the subject of books yet to come. These books will focus on the "translatable" part of Executable and Translatable UML, and they will describe mapping techniques for model-driven architectures (MDA). |