Model-driven architecture: Difference between revisions

Content deleted Content added
Overview: Entirely reworked, with authoritative reference
Corrected "Model-driven architecture" to "Model Driven Architecture" to reflect normative usage by the OMG, the trademark holder.
Line 1:
'''Model'''-'''driven Driven architecture'''® (MDA®) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as '''models'''. Model-driven architectureDriven Architecture is a kind of ___domain engineering, and supports [[model-driven engineering]] of software systems. It was launched by the [[Object Management Group]] (OMG) in 2001.<ref name=proposal>[http://www.omg.org/news/releases/pr2001/2001-03-08a.htm "OMG pursues new strategic direction to build on success of past efforts"] {{webarchive|url=https://web.archive.org/web/20060924103531/http://www.omg.org/news/releases/pr2001/2001-03-08a.htm |date=2006-09-24 }}</ref>
 
== Overview ==
Line 7:
 
=== Related standards ===
The MDA model is related to multiple standards, including the [[Unified Modeling Language]] (UML), the [[Meta-Object Facility]] (MOF), [[XML Metadata Interchange]] (XMI), [[Enterprise Distributed Object Computing]] (EDOC), the [[Software Process Engineering Metamodel]] (SPEM), and the [[Common Warehouse Metamodel]] (CWM). Note that the term “architecture” in Model-driven architectureDriven 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.{{citation needed}}
 
[[Executable UML]] was the UML profile used when MDA was born. Now, the OMG is promoting [[Executable UML#fUML and ALF|fUML]], instead. (The action language for fUML is ALF.)
Line 14:
The [[Object Management Group]] holds registered trademarks on the term Model Driven Architecture and its acronym MDA, as well as trademarks for terms such as: Model Based Application Development, Model Driven Application Development, Model Based Application Development, Model Based Programming, Model Driven Systems, and others.<ref>http://www.omg.org/legal/tm_list.htm</ref>
 
== Model-driven architectureDriven Architecture topics ==
=== MDA approach ===
OMG focuses Model-driven architectureDriven Architecture® on forward engineering, i.e. producing code from abstract, human-elaborated modellingmodeling diagrams (e.g. class diagrams){{Citation needed|date=February 2007}}. OMG's ADTF (Analysis and Design Task Force) group leads this effort. With some humour, the group chose ADM (MDA backwards) to name the study of reverse engineering. ADM decodes to Architecture-Driven Modernization. The objective of ADM is to produce standards for model-based reverse engineering of legacy systems.<ref>adm website http://adm.omg.org</ref> [[Knowledge Discovery Metamodel]] (KDM) is the furthest along of these efforts, and describes information systems in terms of various assets (programs, specifications, data, test files, database schemas, etc.).
 
As the concepts and technologies used to realize designs and the concepts and technologies used to realize architectures have changed at their own pace, decoupling them allows system developers to choose from the best and most fitting in both domains. 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 architecture]]s.
 
Of particular importance to model-drivenModel architectureDriven Architecture is the notion of [[model transformation]]. A specific standard language for model transformation has been defined by [[Object Management Group|OMG]] called [[QVT]].
 
=== MDA tools ===