Content deleted Content added
tagging a broken link |
mNo edit summary |
||
(33 intermediate revisions by 22 users not shown) | |||
Line 1:
{{Short description|Software design approach}}
'''Model-driven architecture''' ('''MDA
== 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 OMG organization provides
▲The OMG organization provides rough specifications rather than implementations, often as answers to [[Request for Proposal|Requests for Proposals]] (RFPs). Implementations come from private companies or open source groups.
=== 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
[[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.)
=== Trademark ===
The [[Object Management Group]] holds registered trademarks on the term Model Driven Architecture
{{See also|Round-trip engineering}}
▲== Model-driven architecture topics ==
=== MDA approach ===
OMG focuses Model
Of particular importance to
=== 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.
Basically, an MDA tool is a tool used to develop, interpret, compare, align, measure, verify, transform, etc. models or metamodels.<ref>{{cite
▲: A tool used to check models for completeness, inconsistencies, or error and warning conditions. Also used to calculate metrics for the model.
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
▲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 Eclipse 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.
Line 67 ⟶ 46:
=== MDA concerns ===
Some key concepts that underpin the MDA approach (launched in 2001) were first elucidated by the [[
* 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
* 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://
* 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"] {{
* 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>[
==See also==
Line 99 ⟶ 69:
* [[Model-driven security]]
*[[Model Driven Interoperability]]
* [[Model
* [[Model Transformation Language]]
* [[Modeling Maturity Levels]]
* [[Platform-specific model]]
* [[Software factory]]
Line 110 ⟶ 79:
* [[Web engineering]]
* [[WebML]]
* [[Program Design Language]]
{{colend}}
|