OMG promotes Model Driven Architecture (MDA) as the new direction for system development, especially supporting integration, interoperability and portability. But what is MDA really about, and what is model driven architecture? These are fundamental questions, to which precise answers are surprisingly hard to find. Not even the term "model driven" is clearly defined.
This article views MDA as a framework for constructing methodologies for model driven development of system architectures. The exact meaning of this position is presented in detail, and a definition of the term "model driven" is proposed. The main concepts in MDA are explained, with an emphasis on giving specific guidelines as to which interpretation should be chosen in cases where the official documentation is ambiguous or unclear. In particular, the important notions of refinement and transformation are examined, and it is explained how these similar, but different, concepts are related. The conclusion gives a short survey describing to which extent current methodologies fulfil the visions of MDA, and points at important areas with a particular need for more research.