Model-Driven Architecture

Model-Driven Architecture (MDA) is a framework for software development processes that is at the core of the Object Management Group's (OMG) recommendations:

There are three models in MDA:

CIM = Computation-Independent Model
PIM = Platform-Independent Model
PSM = Platform-Specific Model

All three models may consist of one or more UML diagrams.

The CIM combines the requirements and domain models. It models the system in terms of how it will interact with its environment.

The PIM is the design model. It describes the internal structure of the model without regard to the hosting platform.

The PSM is the implementation model. It adds concepts from the hosting platform to the hosting platform. Examples of platforms include .Net, J2SE, J2ME, J2EE, CORBA.

MDA also specifies formal transformations between the PIM and the PSM. This is achieved by adding marks to the PIM to indicate how certain elements can be mapped onto different platforms.

By formalizing the definition of UML 2.0, OMA hopes that tools produced by different vendors be able to exchange UML diagrams. More ambitiously, it hopes that the PIM-PSM transformations will become fully automated.

The UML Meta-Model

The Object Management Group (www.omg.org) has taken over the official specification of UML. They have concentrated on formally specifying UML. In essence, they have built a UML model of UML! The goal of the formal specification is to support the development of modeling tools, the interchange of models between tools, and ultimately, the automatic translation of UML models into running code.

Modeling Modeling Languages

A specification S of a (programming) language L is a formal description on the syntax (structure) and semantics (runtime behavior) of the phrases (programs) of L.

S might describe a translation (compiler) of the phrases of L into the phrases of a "simpler" language L-, or S might describe a virtual machine capable of executing the phrases of L.

S may be a program expressed in a language L'. In this case we say that L' is a meta-language and L is an object language. One possibility is that L' is a subset of L. In this case we say that L' is the core of L and that L is bootstrapped from L'.

OMG's MDA extends these ideas to modeling languages. A modeling language, L, is a set of rules and elements for building models. A specification, S, of L is also a model called a meta-model.

Of course the main example of a modeling language is UML. The meta-language for S is a subset of UML called the Meta-Object Facility (MOF).

MOF

MOF contains the core or infrastructure of UML.

MOF contains the following types of elements:

The Four Layer Architecture

M0 = objects
M1 = models
M2 = modeling languages (specifications, meta-models, UML)
M3 = meta-modeling languages (meta-languages, MOF)

Note: Mi elements are instances of M(i+1) elements.

Executable Models

The ultimate goal of MDA is to be able to compile models into code that runs on a specific (software) platform. Examples of platforms include J2SE, J2ME, J2EE, .Net, CORBA, MFC.

Short of the model compilers, a formal specification of UML facilitates the development of modeling tools and the ability to interchange models between different tools. This last goal is achieved by XMI (XML Metadata Interchange).

References

http://www.omg.org/mda/

InCase