- Raising the Level of Abstraction
- Executable UML
- Making UML Executable
- Model Compilers
- Model-Driven Architecture
Executable UML is one pillar supporting the Model-Driven Architecture (MDA) initiative announced by the Object Management Group (OMG) in early 2001, the purpose of which is to enable specification of systems using models.
Model-driven architecture depends on the notion of a Platform-Independent Model (PIM), a model of a solution to a problem that does not rely on any implementation technologies. A PIM is independent of its platform(s). A model of a online bookstore, for example, is independent of the user interface and messaging services it employs.
A PIM can be built using an executable UML.
Some proponents of MDA hold that a specification of the interface in a language such as the OMG's Interface Description Language (IDL), plus some constraints, is sufficient to specify without overspecifying. The views of these two camps are not contradictory, but complementary. There is no technical reason why a PIM specified using an executable UML cannot be bridged to one specified in terms of interfaces and constraints. One is just a more complete version of the other.
It is because an executable model is required as a way to specify PIMs completely that we view an executable UML as a foundation of model-driven architectures.
MDA also defines the concept of a Platform-Specific Model (PSM): a model that contains within it the details of the implementation, enough that code can be generated from it. A PSM is produced by weaving together the application model and the platforms on which it relies. The PSM contains information about software structure, enough information, possibly, to be able to generate code. Executable UML views the PSM as an intermediate graphical form of the code that is dispensable in the case of complete code generation.
At the time of writing, MDA is still being defined. However, some variation of the concepts of executable UML will, in our opinion, be required to support MDA. fie offer our view on executable UML concepts here. Describing and defining MDA is another project and another book.