We use Executable UML to build a complete model of a single subject matter. Executable UML has a defined semantics for an execution model, which enables the construction of models that can be verified directly in advance of further system design or coding.
Executable UML models are also translatable into multiple software platforms. Archetypes provide for complete flexibility in the structure of the generated code by weaving together execution engine components, legacy code, and application models. Marks, in addition to their normal role of directing the selection of mapping rules, may also be used to incorporate point optimizations and hand-written code. A model compiler targets a specific software platform, optimized to meet the performance properties of the application models.
The direct execution provided by Executable UML enables an agile process, in which a model can be built and executed in cahoots with a customer. We take up this process in Chapter 10.