What is Model Driven Architecture? (MDA)

The Model-Driven Architecture (MDA™) is a software design approach that was officially launched in 2001 by its sponsor, the Object Management Group (OMG).

MDA is intended to support model-driven engineering of software systems. The MDA is a specification that provides a set of guidelines for structuring specifications expressed as models. Using the MDA methodology, system functionality may first be defined as a platform-independent model (PIM) through an appropriate Domain Specific Language. Given a Platform Definition Model (PDM) corresponding to CORBA, .Net, the Web, etc., the PIM may then be translated to one or more platform-specific models (PSMs) for the actual implementation, using different Domain Specific Languages, or a General Purpose Language like Java, C#, Python, etc. The translations between the PIM and PSMs are normally performed using automated tools, like model transformation tools, for example tools compliant to the new OMG standard named QVT. The overall process is documented in a document produced and regularly maintained by the OMG and called the MDA Guide. The principles of MDA can also be applied to other areas like business process modeling where the architecture and technology neutral PIM is mapped onto either system or manual processes.

The MDA model is related to multiple standards, such as the Unified Modeling Language (UML). Note that the term “architecture” in Model-driven architecture does not refer to the architecture of the system being modeled, but rather to the architecture of the various standards and model forms that serve as the technology basis for MDA.

The Object Management Group holds trademarks on MDA, as well as several similar terms including Model Driven Development (MDD).

Model Driven Architecture approach

One of the main aims of the MDA is to separate design from architecture and realization technologies facilitating that design and architecture can alter independently. The design addresses the functional (use case) requirements while architecture provides the infrastructure through which non-functional requirements like scalability, reliability and performance are realized. MDA envisages that the platform independent model (PIM), which represents a conceptual design realizing the functional requirements, will survive changes in realization technologies and software architectures.

Of particular importance to model-driven architecture is the notion of model transformation. A specific standard for model transformation has been defined called QVT. One example of a QVT language for model transformation is ATL.

MDA tools

An MDA tool is a tool used to develop, interpret, compare, align, measure, verify, transform, etc. models or metamodels.¹ In the following section "model" is interpreted as meaning any kind of model (e.g. a UML model) or metamodel. In any MDA approach we have essentially two kinds of models: initial models are created manually by human agents while derived models are created automatically by programs. For example an analyst may create a UML initial model from its observation of some loose business situation while a Java model may be automatically derived from this UML model by a Model transformation operation. An MDA tool may be one or more of the following types:

  • Creation
  • Analysis
  • Transformation
  • Composition
  • Test
  • Simulation
  • Metadata Management
  • Reverse Engineering

Some tools perform more than one of the functions listed above. For example, the Select Solution for MDA covers all of the above except Metadata Management.

Usually MDA tools focus on rudimentary architecture specification, although in some cases the tools are architecture-independent (or platform independent).