Model Driven Development (MDD) is an emerging practice supported by research and commercially-available tool suites. Artifacts in MDD are used to formally describe user behavior, requirements, architecture, and designs. MDD includes the transformation of models of systems into platform-dependent architectures and designs, the automatic generation of source code, and the automatic generation of test data. MDD is one of a number of technologies raising the level of abstraction in software development and maintenance.
MDD is a tool-intensive practice, and various professional groups have developed standards to support tools throughout the tool chains. Particularly notable are standards maintained by the Object Management Group (OMG), such as Model- Driven Architecture (MDA), the Object Constraint Language (OCL), the Unified Modeling Language (UML), and the XML Metadata Interchange (XMI). Domain-Specific Modeling (DSM) provides another approach to MDD.