In most MDA and MDD implementations there is a separation between the modeling environment and the run-time environment. As a result, applying changes to a run-time system can be awkward. For example adding a new type to a running system means regenerating the code of the system, recompiling and restarting the system. This leads to downtime of the system, thus blocking the normal business. Riehle et al made the observation that in order to enable such changes without having to stop the run-time system and thus to allow incremental model-driven development, a direct "causal" connectedness is needed between the modeling environment and the run-time environment, such that every change or addition can also directly, and only locally (without disturbing other models and their run-time instances), affect the run-time system. describes a causally connected implementation of a UML-based model driven system. It is based on the principle of "Adaptive Object-models" (AOMs). The idea of AOMs is that an object-oriented application can be adapted through meta-data available at run-time. However, a problem of all AOM implementations known to us is that they are based on interpretation. Both instance structure and behavior is realized interpretatively. As a result the storage structures for instances is not efficient, e.g., each property value will be stored in a separate object. Moreover, programming support such as optimization, type checking and normal debugging is lost. The approach of [6] is therefore only used to create satisfactory applications through interactive model-driven development. The final system is still generated in a "traditional" way, and can no longer be changed incrementally.
展开▼