Model-driven architecture: Difference between revisions
added a cat |
mNo edit summary |
||
(41 intermediate revisions by 27 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Software design approach}} |
|||
'''Model-driven architecture''' ('''MDA''') is a |
'''Model-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 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 == |
== Overview == |
||
Model Driven Architecture® (MDA®) "provides an approach for deriving value from models and architecture in support of the full life cycle of physical, organizational and I.T. systems". A model is a (representation of) an abstraction of a system. MDA® provides value by producing models at varying levels of abstraction, from a conceptual view down to the smallest implementation detail. OMG literature speaks of three such levels of abstraction, or architectural viewpoints: the Computation-independent Model (CIM), the Platform-independent model (PIM), and the [[Platform-specific model]] (PSM). The CIM describes a system conceptually, the PIM describes the computational aspects of a system without reference to the technologies that may be used to implement it, and the PSM provides the technical details necessary to implement the system. The OMG Guide notes, though, that these three architectural viewpoints are useful, but are just three of many possible viewpoints.<ref name="omgmdaguide2_0">{{cite web |title=OMG MDA Guide rev. 2.0 |url=https://www.omg.org/cgi-bin/doc?ormsc/14-06-01 |website=OMG {{!}} Object Management Group |publisher=The Object Management Group |access-date=4 September 2021}}</ref> |
|||
The model-driven architecture approach defines system functionality using a [[platform-independent model]] (PIM) using an appropriate [[domain-specific language]] (DSL).{{Citation needed|date=January 2011}} |
|||
⚫ | |||
Then, given a [[platform model]] corresponding to [[CORBA]], [[.NET Framework|.NET]], the Web, etc., the PIM is translated to one or more [[platform-specific model]]s (PSMs) that computers can run. This requires mappings and transformations and should be modeled too. |
|||
The PSM may use different DSLs or a [[General-purpose programming languages|general purpose language]].{{Citation needed|date=February 2007}}. Automated tools generally perform this translation. |
|||
⚫ | |||
MDA principles can also apply to other areas such as [[business process modeling]] (BPM) where the PIM is translated to either automated or manual processes{{Citation needed|date=February 2007}}. |
|||
=== Related standards === |
=== 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 |
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 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|date=September 2021}} |
||
[[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.) |
|||
[[Executable UML]] is another specific approach to implement MDA |
|||
=== Trademark === |
=== Trademark === |
||
The [[Object Management Group]] holds trademarks on MDA, as well as |
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>{{Cite web|url=http://www.omg.org/legal/tm_list.htm|title=OMG Trademarks | Object Management Group}}</ref> |
||
⚫ | |||
{{See also|Round-trip engineering}} |
|||
⚫ | |||
=== MDA approach === |
=== MDA approach === |
||
OMG focuses Model |
OMG focuses Model Driven Architecture® on forward engineering, i.e. producing code from abstract, human-elaborated modeling 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 |
Of particular importance to Model Driven 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 === |
=== MDA tools === |
||
The OMG organization provides rough specifications rather than implementations, often as answers to [[Request for Proposal|Requests for Proposals]] (RFPs). The OMG documents the overall process in a document called the MDA Guide. |
The OMG organization provides rough specifications rather than implementations, often as answers to [[Request for Proposal|Requests for Proposals]] (RFPs). The OMG documents the overall process in a document called the MDA Guide. |
||
Basically, an MDA tool is a tool used to develop, interpret, compare, align, measure, verify, transform, etc. models or metamodels.<ref>{{cite |
Basically, an MDA tool is a tool used to develop, interpret, compare, align, measure, verify, transform, etc. models or metamodels.<ref>{{cite web|last1=Bézivin |first1=J |last2=Gérard |first2=S |last3=Muller |first3=P-A |last4=Rioux |first4=L|title=MDA components: Challenges and Opportunities|version=In: Metamodelling for MDA|year=2003|url=http://www.sciences.univ-nantes.fr/lina/atl/www/papers/MDAComponents-ChallengesOpportunities.V1.3.PDF|url-status=dead|archiveurl=https://web.archive.org/web/20061206191031/http://www.sciences.univ-nantes.fr/lina/atl/www/papers/MDAComponents-ChallengesOpportunities.V1.3.PDF|archivedate=2006-12-06}}</ref> In the following section "model" is interpreted as meaning any kind of model (e.g. a UML model) or metamodel (e.g. the CWM 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{{Citation needed|date=February 2007}}: |
|||
; Creation Tool |
|||
: A tool used to elicit initial models and/or edit derived models. |
|||
; Analysis Tool |
|||
⚫ | |||
; Transformation Tool |
|||
: A tool used to transform models into other models or into code and documentation. |
|||
; Composition Tool |
|||
: A tool used to compose (i.e. to merge according to a given composition semantics) several source models, preferably conforming to the same metamodel. |
|||
; Test Tool |
|||
: A tool used to "test" models as described in [[Model-based testing]]. |
|||
; Simulation Tool |
|||
: A tool used to simulate the execution of a system represented by a given model. This is related to the subject of model execution. |
|||
; Metadata Management Tool |
|||
: A tool intended to handle the general relations between different models, including the metadata on each model (e.g. author, date of creation or modification, method of creation (which tool? which transformation? etc.)) and the mutual relations between these models (i.e. one metamodel is a version of another one, one model has been derived from another one by a transformation, etc.) |
|||
; Reverse Engineering Tool |
|||
: A tool intended to transform particular legacy or information artifact portfolios into full-fledged models. |
|||
Some tools perform more than one of the functions listed above. For example, some creation tools may also have transformation and test capabilities. There are other tools that are solely for creation, solely for graphical presentation, solely for transformation, etc. |
Some tools perform more than one of the functions listed above. For example, some creation tools may also have transformation and test capabilities. There are other tools that are solely for creation, solely for graphical presentation, solely for transformation, etc. |
||
⚫ | Implementations of the OMG specifications come from private companies or [[open source]] groups. One important source of implementations for OMG specifications is the [[Eclipse Foundation]] (EF). Many implementations of OMG modeling standards may be found in the [[Eclipse Modeling Framework]] (EMF) or [[Graphical Modeling Framework]] (GMF), the Eclipse foundation is also developing other tools of various profiles as GMT. Eclipse's compliance to OMG specifications is often not strict. This is true for example for OMG's EMOF standard, which EMF approximates with its Ecore implementation. More examples may be found in the M2M project implementing the QVT standard or in the M2T project implementing the MOF2Text standard. |
||
One of the characteristics of MDA tools is that they mainly take models (e.g. MOF models or metamodels) as input and generate models as output{{Citation needed|date=February 2007}}. In some cases however the parameters may be taken outside the MDA space like in model to text or text to model transformation tools. |
|||
⚫ | Implementations of the OMG specifications come from private companies or [[open source]] groups. One important source of implementations for OMG specifications is the [[Eclipse Foundation]] (EF). Many implementations of OMG modeling standards may be found in the [[Eclipse Modeling Framework]] (EMF) or [[Graphical Modeling Framework]] (GMF), the Eclipse foundation is also developing other tools of various profiles as GMT. Eclipse's compliance to OMG specifications is often not strict. This is true for example for OMG's EMOF standard, which |
||
One should be careful not to confuse the ''List of MDA Tools'' and the [[List of UML tools]], the former being much broader. This distinction can be made more general by distinguishing 'variable metamodel tools' and 'fixed metamodel tools'. A UML CASE tool is typically a 'fixed metamodel tool' since it has been hard-wired to work only with a given version of the UML metamodel (e.g. UML 2.1). On the contrary, other tools have internal generic capabilities allowing them to adapt to arbitrary metamodels or to a particular kind of metamodels. |
One should be careful not to confuse the ''List of MDA Tools'' and the [[List of UML tools]], the former being much broader. This distinction can be made more general by distinguishing 'variable metamodel tools' and 'fixed metamodel tools'. A UML CASE tool is typically a 'fixed metamodel tool' since it has been hard-wired to work only with a given version of the UML metamodel (e.g. UML 2.1). On the contrary, other tools have internal generic capabilities allowing them to adapt to arbitrary metamodels or to a particular kind of metamodels. |
||
Line 67: | Line 46: | ||
=== MDA concerns === |
=== MDA concerns === |
||
Some key concepts that underpin the MDA approach (launched in 2001) were first elucidated by the [[ |
Some key concepts that underpin the MDA approach (launched in 2001) were first elucidated by the [[Shlaer–Mellor method]] during the late 1980s. Indeed, a key absent technical standard of the MDA approach (that of an action language syntax for [[Executable UML]]) has been bridged by some vendors by adapting the original Shlaer–Mellor Action Language (modified for UML){{Citation needed|date=February 2007}}. However, during this period the MDA approach has not gained mainstream industry acceptance; with the [[Gartner Group]] still identifying MDA as an "on the rise" technology in its 2006 "[[Hype cycle|Hype Cycle]]",<ref name=gartnermda>[https://web.archive.org/web/20060829123915/http://www.gartner.com/DisplayDocument?ref=g_search&id=494180&subref=simplesearch "Hype Cycle for Emerging Technologies, 2006"] $495.00</ref> and [[Forrester Research]] declaring MDA to be "D.O.A." in 2006.<ref name=forrestermda>[http://www.forrester.com/Research/Document/Excerpt/0,7211,39156,00.html "MDA Is DOA, Partly Thanks To SOA"] {{webarchive|url=https://web.archive.org/web/20071013004355/http://forrester.com/Research/Document/Excerpt/0,7211,39156,00.html |date=2007-10-13 }}</ref> Potential concerns that have been raised with the OMG MDA approach include: |
||
* Incomplete Standards: The MDA approach is underpinned by a variety of technical standards, some of which are yet to be specified (e.g. an action semantic language for [[Executable UML|xtUML]]), or are yet to be implemented in a standard manner (e.g. a [[QVT]] transformation engine or a |
* Incomplete Standards: The MDA approach is underpinned by a variety of technical standards, some of which are yet to be specified (e.g. an action semantic language for [[Executable UML|xtUML]]), or are yet to be implemented in a standard manner (e.g. a [[QVT]] transformation engine or a PIM with a virtual execution environment).<ref name=mdanoaslsyntaxone>[http://www.jot.fm/issues/issue_2003_01/column1 "UML - Unified or Universal Modeling Language? UML2, OCL, MOF, EDOC - The Emperor Has Too Many Clothes"]</ref><ref name=mdanoaslsyntaxtwo>[http://www.theserverside.com/tt/articles/article.tss?l=MDA_Haywood "MDA: Nice Idea. Shame about the..."]</ref> |
||
* Vendor Lock-in: Although MDA was conceived as an approach for achieving (technical) platform independence, current MDA vendors have been reluctant to engineer their MDA toolsets to be interoperable. Such an outcome could result in vendor lock-in for those pursuing an MDA approach.{{Citation needed|date=February 2007}} |
* Vendor Lock-in: Although MDA was conceived as an approach for achieving (technical) platform independence, current MDA vendors have been reluctant to engineer their MDA toolsets to be interoperable. Such an outcome could result in vendor lock-in for those pursuing an MDA approach.{{Citation needed|date=February 2007}} |
||
* Idealistic: MDA is conceived as a forward engineering approach in which models that incorporate Action Language programming are transformed into implementation artifacts (e.g. executable code, database schema) in one direction via a fully or partially automated "generation" step. This aligns with OMG's vision that MDA should allow modelling of a problem domain's full complexity in UML (and related standards) with subsequent transformation to a complete (executable) application.<ref name=eclipsemda>[http:// |
* Idealistic: MDA is conceived as a forward engineering approach in which models that incorporate Action Language programming are transformed into implementation artifacts (e.g. executable code, database schema) in one direction via a fully or partially automated "generation" step. This aligns with OMG's vision that MDA should allow modelling of a problem domain's full complexity in UML (and related standards) with subsequent transformation to a complete (executable) application.<ref name=eclipsemda>[http://alt.java-forum-stuttgart.de/jfs/2006/folien/A5_Schoenhage_Compuware.pdf "Bringing MDA to Eclipse, using a pragmatic approach"]</ref> This approach does, however, imply that changes to implementation artifacts (e.g. database schema tuning) are not supported . This constitutes a problem in situations where such post-transformation "adapting" of implementation artifacts is seen to be necessary. Evidence that the full MDA approach may be too idealistic for some real world deployments has been seen in the rise of so-called "pragmatic MDA".<ref name=forresterresponse>[http://www.bptrends.com/publicationfiles/04-06-COL-MDA-ResponseToForrester-Frankel.pdf#search=%22%22pragmatic%20MDA%22%22 "A Response to Forrester"]</ref> Pragmatic MDA blends the literal standards from OMG's MDA with more traditional model driven approaches such as [[round-trip engineering]] that provides support for adapting implementation artifacts (though not without substantial disadvantages). |
||
* Specialised Skillsets: Practitioners of MDA based software engineering are (as with other toolsets) required to have a high level of expertise in their field. Current expert MDA practitioners (often referred to as Modeller/Architects) are scarce relative to the availability of traditional developers.<ref name=amblermda>[http://www.agilemodeling.com/essays/readyForMDA.htm "Are You Ready For the MDA?"]</ref> |
* Specialised Skillsets: Practitioners of MDA based software engineering are (as with other toolsets) required to have a high level of expertise in their field. Current expert MDA practitioners (often referred to as Modeller/Architects) are scarce relative to the availability of traditional developers.<ref name=amblermda>[http://www.agilemodeling.com/essays/readyForMDA.htm "Are You Ready For the MDA?"]</ref> |
||
* OMG Track Record: The OMG consortium who sponsor the MDA approach (and own the MDA trademark) also introduced and sponsored the CORBA standard which itself failed to materialise as a widely utilised standard.<ref name=corba>[http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=396 "The Rise and Fall of CORBA"]</ref> |
* OMG Track Record: The OMG consortium who sponsor the MDA approach (and own the MDA trademark) also introduced and sponsored the CORBA standard which itself failed to materialise as a widely utilised standard.<ref name=corba>[http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=396 "The Rise and Fall of CORBA"] {{webarchive|url=https://web.archive.org/web/20081202033636/http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=396 |date=2008-12-02 }}</ref> |
||
* Uncertain Value Proposition (UVP): As discussed, the vision of MDA allows for the specification of a system as an abstract model, which may be realized as a concrete implementation (program) for a particular computing platform (e.g. .NET). Thus an application that has been successfully developed via a pure MDA approach could theoretically be ported to a newer release .NET platform (or even a Java platform) in a deterministic manner – although significant questions remain as to real-world practicalities during translation (such as user interface implementation). Whether this capability represents a significant value proposition remains a question for particular adopters. Regardless, adopters of MDA who are seeking value via an "alternative to programming" should be very careful when assessing this approach. The complexity of any given problem domain will always remain, and the programming of business logic needs to be undertaken in MDA as with any other approach. The difference with MDA is that the programming language used (e.g. xtUML) is more abstract (than, say, Java or C#) and exists interwoven with traditional UML artifacts (e.g. class diagrams). Whether programming in a language that is more abstract than mainstream [[Third-generation programming language|3GL]] languages will result in systems of better quality, cheaper cost or faster delivery, is a question that has yet to be adequately answered. |
* Uncertain Value Proposition (UVP): As discussed, the vision of MDA allows for the specification of a system as an abstract model, which may be realized as a concrete implementation (program) for a particular computing platform (e.g. .NET). Thus an application that has been successfully developed via a pure MDA approach could theoretically be ported to a newer release .NET platform (or even a Java platform) in a deterministic manner – although significant questions remain as to real-world practicalities during translation (such as user interface implementation). Whether this capability represents a significant value proposition remains a question for particular adopters. Regardless, adopters of MDA who are seeking value via an "alternative to programming" should be very careful when assessing this approach. The complexity of any given problem domain will always remain, and the programming of business logic needs to be undertaken in MDA as with any other approach. The difference with MDA is that the programming language used (e.g. xtUML) is more abstract (than, say, Java or C#) and exists interwoven with traditional UML artifacts (e.g. class diagrams). Whether programming in a language that is more abstract than mainstream [[Third-generation programming language|3GL]] languages will result in systems of better quality, cheaper cost or faster delivery, is a question that has yet to be adequately answered. |
||
* MDA was recognized as a possible way to bring various independently developed standardized solutions together. For the simulation community, it was recommended as a business and industry based alternative to yet another US DoD mandated standard.<ref name=mdasim>[ |
* MDA was recognized as a possible way to bring various independently developed standardized solutions together. For the simulation community, it was recommended as a business and industry based alternative to yet another US DoD mandated standard.<ref name=mdasim>[https://arxiv.org/ftp/arxiv/papers/1011/1011.6671.pdf "Avoiding Another Green Elephant"]</ref> |
||
== Conferences == |
|||
Among the various conferences on this topic we may mention [http://www.ecmda-fa.org/ ECMDA], the European Conference on MDA and also [[MoDELS]], former firmed as <<UML>> conference series (till 2004), the [http://mdaforum.soluta.net Italian Forum on MDA] in collaboration with the [[Object Management Group|OMG]]. There are also several conferences and workshops (at [[OOPSLA]], [[ECOOP]] mainly) focusing on more specific aspects of MDA like model transformation, model composition, and generation. |
|||
== Code generation controversy == |
|||
<!-- MDA isn't just about UML - this section needs to be rewritten --> |
|||
[[Automatic programming|Code generation]] means that the user abstractly models solutions, which are connoted by some model data, and then an automated tool derives from the models parts or all of the [[source code]] for the software system. In some tools, the user can provide a skeleton of the program source code, in the form of a source code [[Template (programming)|template]] where predefined tokens are then replaced with program source code parts during the code generation process. |
|||
An often cited criticism is that the UML diagrams just lack the detail which is needed to contain the same information as is covered with the program source. Some developers even claim that "the Code ''is'' the design".<ref>http://www.developerdotstar.com/mag/articles/reeves_design_main.html by Jack W. Reeves</ref><ref>[http://www.bleading-edge.com/ Bleading-Edge<!-- Bot generated title -->]</ref> |
|||
==See also== |
==See also== |
||
Line 99: | Line 69: | ||
* [[Model-driven security]] |
* [[Model-driven security]] |
||
*[[Model Driven Interoperability]] |
*[[Model Driven Interoperability]] |
||
* [[Model |
* [[Model-driven application]] |
||
* [[Model Transformation Language]] |
* [[Model Transformation Language]] |
||
* [[Modeling Maturity Levels]] |
* [[Modeling Maturity Levels]] |
||
* [[Platform-independent model]] |
|||
* [[Platform-specific model]] |
* [[Platform-specific model]] |
||
* [[Software factory]] |
* [[Software factory]] |
||
Line 110: | Line 79: | ||
* [[Web engineering]] |
* [[Web engineering]] |
||
* [[WebML]] |
* [[WebML]] |
||
* [[Program Design Language]] |
|||
{{colend}} |
{{colend}} |
||
Line 116: | Line 86: | ||
== Further reading == |
== Further reading == |
||
* Kevin Lano. "Model-Driven Software Development With UML and Java". CENGAGE Learning, ISBN |
* Kevin Lano. "Model-Driven Software Development With UML and Java". CENGAGE Learning, {{ISBN|978-1-84480-952-3}} |
||
* [[David S. Frankel]]. ''Model Driven Architecture: Applying MDA to Enterprise Computing''. John Wiley & Sons, ISBN |
* [[David S. Frankel]]. ''Model Driven Architecture: Applying MDA to Enterprise Computing''. John Wiley & Sons, {{ISBN|0-471-31920-1}} |
||
* Meghan Kiffer ''The MDA Journal: Model Driven Architecture Straight From The Masters''. ISBN |
* Meghan Kiffer ''The MDA Journal: Model Driven Architecture Straight From The Masters''. {{ISBN|0-929652-25-8}} |
||
* Anneke Kleppe (2003). ''MDA Explained, The Model Driven Architecture: Practice and Promise''. Addison-Wesley. ISBN |
* Anneke Kleppe (2003). ''MDA Explained, The Model Driven Architecture: Practice and Promise''. Addison-Wesley. {{ISBN|0-321-19442-X}} |
||
* [[Stephen J. Mellor]] (2004). ''MDA Distilled, Principles of Model Driven Architecture''. Addison-Wesley Professional. ISBN |
* [[Stephen J. Mellor]] (2004). ''MDA Distilled, Principles of Model Driven Architecture''. Addison-Wesley Professional. {{ISBN|0-201-78891-8}} |
||
* Chris Raistrick. ''Model Driven Architecture With Executable UML''. Cambridge University Press, ISBN |
* Chris Raistrick. ''Model Driven Architecture With Executable UML''. Cambridge University Press, {{ISBN|0-521-53771-1}} |
||
* Marco Brambilla, Jordi Cabot, Manuel Wimmer, ''Model Driven Software Engineering in Practice'', foreword by [[Richard Soley]] ([[ |
* Marco Brambilla, Jordi Cabot, Manuel Wimmer, ''Model Driven Software Engineering in Practice'', foreword by [[Richard Soley]] ([[Object Management Group|OMG]] Chairman), Morgan & Claypool, USA, 2012, Synthesis Lectures on Software Engineering #1. 182 pages. {{ISBN|9781608458820}} (paperback), {{ISBN|9781608458837}} (ebook). http://www.mdse-book.com |
||
* Stanley J. Sewall. ''Executive Justification for MDA'' |
* Stanley J. Sewall. ''Executive Justification for MDA'' |
||
* Soylu A., De Causmaecker Patrick. ''Merging model driven and ontology driven system development approaches pervasive computing perspective'', in Proc 24th Intl Symposium on Computer and Information Sciences. 2009, pp 730–735. |
* Soylu A., De Causmaecker Patrick. ''Merging model driven and ontology driven system development approaches pervasive computing perspective'', in Proc 24th Intl Symposium on Computer and Information Sciences. 2009, pp 730–735. |
||
Line 133: | Line 103: | ||
{{Authority control}} |
{{Authority control}} |
||
{{DEFAULTSORT:Model-Driven Architecture}} |
{{DEFAULTSORT:Model-Driven Architecture}} |
||
[[Category:Systems engineering]] |
[[Category:Systems engineering]] |
Latest revision as of 12:58, 7 October 2024
Model-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 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.[1]
Overview
[edit]Model Driven Architecture® (MDA®) "provides an approach for deriving value from models and architecture in support of the full life cycle of physical, organizational and I.T. systems". A model is a (representation of) an abstraction of a system. MDA® provides value by producing models at varying levels of abstraction, from a conceptual view down to the smallest implementation detail. OMG literature speaks of three such levels of abstraction, or architectural viewpoints: the Computation-independent Model (CIM), the Platform-independent model (PIM), and the Platform-specific model (PSM). The CIM describes a system conceptually, the PIM describes the computational aspects of a system without reference to the technologies that may be used to implement it, and the PSM provides the technical details necessary to implement the system. The OMG Guide notes, though, that these three architectural viewpoints are useful, but are just three of many possible viewpoints.[2]
The OMG organization provides specifications rather than implementations, often as answers to Requests for Proposals (RFPs). Implementations come from private companies or open source groups.
Related standards
[edit]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 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 fUML, instead. (The action language for fUML is ALF.)
Trademark
[edit]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.[3]
Model Driven Architecture topics
[edit]MDA approach
[edit]OMG focuses Model Driven Architecture® on forward engineering, i.e. producing code from abstract, human-elaborated modeling diagrams (e.g. class diagrams)[citation needed]. 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.[4] 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 architectures.
Of particular importance to Model Driven Architecture is the notion of model transformation. A specific standard language for model transformation has been defined by OMG called QVT.
MDA tools
[edit]The OMG organization provides rough specifications rather than implementations, often as answers to Requests for Proposals (RFPs). The OMG documents the overall process in a document called the MDA Guide.
Basically, an MDA tool is a tool used to develop, interpret, compare, align, measure, verify, transform, etc. models or metamodels.[5] In the following section "model" is interpreted as meaning any kind of model (e.g. a UML model) or metamodel (e.g. the CWM 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 a tool used to check models for completeness, inconsistencies, or error and warning conditions.
Some tools perform more than one of the functions listed above. For example, some creation tools may also have transformation and test capabilities. There are other tools that are solely for creation, solely for graphical presentation, solely for transformation, etc.
Implementations of the OMG specifications come from private companies or open source groups. One important source of implementations for OMG specifications is the Eclipse Foundation (EF). Many implementations of OMG modeling standards may be found in the Eclipse Modeling Framework (EMF) or Graphical Modeling Framework (GMF), the Eclipse foundation is also developing other tools of various profiles as GMT. Eclipse's compliance to OMG specifications is often not strict. This is true for example for OMG's EMOF standard, which EMF approximates with its Ecore implementation. More examples may be found in the M2M project implementing the QVT standard or in the M2T project implementing the MOF2Text standard.
One should be careful not to confuse the List of MDA Tools and the List of UML tools, the former being much broader. This distinction can be made more general by distinguishing 'variable metamodel tools' and 'fixed metamodel tools'. A UML CASE tool is typically a 'fixed metamodel tool' since it has been hard-wired to work only with a given version of the UML metamodel (e.g. UML 2.1). On the contrary, other tools have internal generic capabilities allowing them to adapt to arbitrary metamodels or to a particular kind of metamodels.
Usually MDA tools focus rudimentary architecture specification, although in some cases the tools are architecture-independent (or platform independent).
Simple examples of architecture specifications include:
- Selecting one of a number of supported reference architectures like Java EE or Microsoft .NET,
- Specifying the architecture at a finer level including the choice of presentation layer technology, business logic layer technology, persistence technology and persistence mapping technology (e.g. object-relational mapper).
- Metadata: information about data.
MDA concerns
[edit]Some key concepts that underpin the MDA approach (launched in 2001) were first elucidated by the Shlaer–Mellor method during the late 1980s. Indeed, a key absent technical standard of the MDA approach (that of an action language syntax for Executable UML) has been bridged by some vendors by adapting the original Shlaer–Mellor Action Language (modified for UML)[citation needed]. However, during this period the MDA approach has not gained mainstream industry acceptance; with the Gartner Group still identifying MDA as an "on the rise" technology in its 2006 "Hype Cycle",[6] and Forrester Research declaring MDA to be "D.O.A." in 2006.[7] Potential concerns that have been raised with the OMG MDA approach include:
- Incomplete Standards: The MDA approach is underpinned by a variety of technical standards, some of which are yet to be specified (e.g. an action semantic language for xtUML), or are yet to be implemented in a standard manner (e.g. a QVT transformation engine or a PIM with a virtual execution environment).[8][9]
- Vendor Lock-in: Although MDA was conceived as an approach for achieving (technical) platform independence, current MDA vendors have been reluctant to engineer their MDA toolsets to be interoperable. Such an outcome could result in vendor lock-in for those pursuing an MDA approach.[citation needed]
- Idealistic: MDA is conceived as a forward engineering approach in which models that incorporate Action Language programming are transformed into implementation artifacts (e.g. executable code, database schema) in one direction via a fully or partially automated "generation" step. This aligns with OMG's vision that MDA should allow modelling of a problem domain's full complexity in UML (and related standards) with subsequent transformation to a complete (executable) application.[10] This approach does, however, imply that changes to implementation artifacts (e.g. database schema tuning) are not supported . This constitutes a problem in situations where such post-transformation "adapting" of implementation artifacts is seen to be necessary. Evidence that the full MDA approach may be too idealistic for some real world deployments has been seen in the rise of so-called "pragmatic MDA".[11] Pragmatic MDA blends the literal standards from OMG's MDA with more traditional model driven approaches such as round-trip engineering that provides support for adapting implementation artifacts (though not without substantial disadvantages).
- Specialised Skillsets: Practitioners of MDA based software engineering are (as with other toolsets) required to have a high level of expertise in their field. Current expert MDA practitioners (often referred to as Modeller/Architects) are scarce relative to the availability of traditional developers.[12]
- OMG Track Record: The OMG consortium who sponsor the MDA approach (and own the MDA trademark) also introduced and sponsored the CORBA standard which itself failed to materialise as a widely utilised standard.[13]
- Uncertain Value Proposition (UVP): As discussed, the vision of MDA allows for the specification of a system as an abstract model, which may be realized as a concrete implementation (program) for a particular computing platform (e.g. .NET). Thus an application that has been successfully developed via a pure MDA approach could theoretically be ported to a newer release .NET platform (or even a Java platform) in a deterministic manner – although significant questions remain as to real-world practicalities during translation (such as user interface implementation). Whether this capability represents a significant value proposition remains a question for particular adopters. Regardless, adopters of MDA who are seeking value via an "alternative to programming" should be very careful when assessing this approach. The complexity of any given problem domain will always remain, and the programming of business logic needs to be undertaken in MDA as with any other approach. The difference with MDA is that the programming language used (e.g. xtUML) is more abstract (than, say, Java or C#) and exists interwoven with traditional UML artifacts (e.g. class diagrams). Whether programming in a language that is more abstract than mainstream 3GL languages will result in systems of better quality, cheaper cost or faster delivery, is a question that has yet to be adequately answered.
- MDA was recognized as a possible way to bring various independently developed standardized solutions together. For the simulation community, it was recommended as a business and industry based alternative to yet another US DoD mandated standard.[14]
See also
[edit]- ATLAS Transformation Language
- Automatic programming
- Domain-driven design
- Enterprise Resource Planning
- Executable UML
- Executable Architecture
- Meta-Object Facility
- Metamodeling
- Model-driven engineering
- Model-driven integration
- Model-driven security
- Model Driven Interoperability
- Model-driven application
- Model Transformation Language
- Modeling Maturity Levels
- Platform-specific model
- Software factory
- Unified Modeling Language
- Universal Systems Language
- QVT
- Web engineering
- WebML
- Program Design Language
References
[edit]- ^ "OMG pursues new strategic direction to build on success of past efforts" Archived 2006-09-24 at the Wayback Machine
- ^ "OMG MDA Guide rev. 2.0". OMG | Object Management Group. The Object Management Group. Retrieved 4 September 2021.
- ^ "OMG Trademarks | Object Management Group".
- ^ adm website http://adm.omg.org
- ^ Bézivin, J; Gérard, S; Muller, P-A; Rioux, L (2003). "MDA components: Challenges and Opportunities" (PDF). In: Metamodelling for MDA. Archived from the original (PDF) on 2006-12-06.
- ^ "Hype Cycle for Emerging Technologies, 2006" $495.00
- ^ "MDA Is DOA, Partly Thanks To SOA" Archived 2007-10-13 at the Wayback Machine
- ^ "UML - Unified or Universal Modeling Language? UML2, OCL, MOF, EDOC - The Emperor Has Too Many Clothes"
- ^ "MDA: Nice Idea. Shame about the..."
- ^ "Bringing MDA to Eclipse, using a pragmatic approach"
- ^ "A Response to Forrester"
- ^ "Are You Ready For the MDA?"
- ^ "The Rise and Fall of CORBA" Archived 2008-12-02 at the Wayback Machine
- ^ "Avoiding Another Green Elephant"
Further reading
[edit]- Kevin Lano. "Model-Driven Software Development With UML and Java". CENGAGE Learning, ISBN 978-1-84480-952-3
- David S. Frankel. Model Driven Architecture: Applying MDA to Enterprise Computing. John Wiley & Sons, ISBN 0-471-31920-1
- Meghan Kiffer The MDA Journal: Model Driven Architecture Straight From The Masters. ISBN 0-929652-25-8
- Anneke Kleppe (2003). MDA Explained, The Model Driven Architecture: Practice and Promise. Addison-Wesley. ISBN 0-321-19442-X
- Stephen J. Mellor (2004). MDA Distilled, Principles of Model Driven Architecture. Addison-Wesley Professional. ISBN 0-201-78891-8
- Chris Raistrick. Model Driven Architecture With Executable UML. Cambridge University Press, ISBN 0-521-53771-1
- Marco Brambilla, Jordi Cabot, Manuel Wimmer, Model Driven Software Engineering in Practice, foreword by Richard Soley (OMG Chairman), Morgan & Claypool, USA, 2012, Synthesis Lectures on Software Engineering #1. 182 pages. ISBN 9781608458820 (paperback), ISBN 9781608458837 (ebook). http://www.mdse-book.com
- Stanley J. Sewall. Executive Justification for MDA
- Soylu A., De Causmaecker Patrick. Merging model driven and ontology driven system development approaches pervasive computing perspective, in Proc 24th Intl Symposium on Computer and Information Sciences. 2009, pp 730–735.