• Model-driven architecture encourages the components of a software system to be described in UML models. These models are then input into code generators that automatically produce executable code corresponding to the model.
  • MDA is defined by the OMG as “an approach to IT system specification that separates the specification of functionality from the specification of the implementation”.
  • A model in MDA is a formal specification of the function, structure and/or behaviour of an application or system.

MDA Approach (CIM <-> PIM <-> PSM)

  1. An IT system is first analysed and specified as a “Computation Independent Model” (CIM), also known as a domain model. The CIM focuses on the environment and requirements of the system. The computational and implementation details of the system are hidden at this level of description, or are yet to be determined.
  2. The CIM is transformed into a “Platform Independent Model” (PIM) which contains computational information for the application, but no information specific to the underlying platform technology that will be used to eventually implement the PIM.
  3. Finally, a PIM is transformed into a “Platform Specific Model” (PSM), which includes detailed descriptions and elements specific to the targeted implementation platform
  • Models can be specified in a modeling language such as UML or MOF.
  • The three primary goals of MDA are portability, interoperability and reusability, achieved through architectural separation of concerns.
  • Critical design issues concerning the CIM, PIM and PSM are very different in nature and can evolve independently of each other.
  • Multiple CIMs, PIMs and PSMs can exist for one application, reflecting different refinement levels and viewpoints
  • DSL (Domain Specific Language) is an approach towards MDA


  • AndroMDA
  • ArcStyler

DSL (Domain Specific Language)

  • is a programming language
  • is executable
  • is to write parts of a system
  • An external DSL is a language separate from the main language of the application it works with: SQL, Awk, XML configuration files like in Spring.
  • An internal DSL is a particular way of using a GPL and is valid in its own GPL: Ruby libraries.
  • Xtext is a framework for creating DSL languages with Eclipse IDE support
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License