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
Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract re ...
of software systems. It was launched by the
Object Management Group
The Object Management Group (OMG) is a computer industry standardization, standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies.
Business activities
The goal of the OMG was a common portabl ...
(OMG) in 2001.
["OMG pursues new strategic direction to build on success of past efforts"]
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
A platform-independent model (PIM) in software engineering is a model of a software system or business system that is independent of the specific technological platform used to implement it.
The term platform-independent model is most frequently ...
(PIM), and the
Platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indis ...
(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.
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
The MDA model is related to multiple standards, including the
Unified Modeling Language
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
(UML), the
Meta-Object Facility
The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering. Its purpose is to provide a type system for entities in the CORBA architecture and a set of interfaces through which those types can be creat ...
(MOF),
XML Metadata Interchange
The XML Metadata Interchange (XMI) is an Object Management Group (OMG) standard for exchanging metadata information via Extensible Markup Language (XML).
It can be used for any metadata whose metamodel can be expressed in Meta-Object Facil ...
(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.
Executable UML Executable UML (xtUML or xUML) is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combine ...
was the UML profile used when MDA was born. Now, the OMG is promoting
fUML Executable UML (xtUML or xUML) is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combine ...
, instead. (The action language for fUML is ALF.)
Trademark
The
Object Management Group
The Object Management Group (OMG) is a computer industry standardization, standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies.
Business activities
The goal of the OMG was a common portabl ...
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.
Model Driven Architecture topics
MDA approach
OMG focuses Model Driven Architecture® on forward engineering, i.e. producing code from abstract, human-elaborated modeling diagrams (e.g. class diagrams). 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.
Knowledge Discovery Metamodel
Knowledge Discovery Metamodel (KDM) is a publicly available specification from the Object Management Group (OMG). KDM is a common intermediate representation for existing software systems and their operating environments, that defines common meta ...
(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
In software and systems engineering, the phrase use case is a polyseme with two senses:
# A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful.
# A potential scenario ...
) 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
Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.
...
s.
Of particular importance to Model Driven Architecture is the notion of
model transformation
A model transformation, in model-driven engineering, is an automated way of modifying and creating models. An example use of model transformation is ensuring that a family of Computer model, models is consistent, in a precise sense which the softw ...
. A specific standard language for model transformation has been defined by
OMG called
QVT
QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group.
Overview
Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
.
MDA tools
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. 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
A model transformation, in model-driven engineering, is an automated way of modifying and creating models. An example use of model transformation is ensuring that a family of Computer model, models is consistent, in a precise sense which the softw ...
operation.
An MDA tool may be 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
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
groups. One important source of implementations for OMG specifications is the
Eclipse Foundation
The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization suppo ...
(EF). Many implementations of OMG modeling standards may be found in the
Eclipse Modeling Framework
Eclipse Modeling Framework (EMF) is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model.
From a model specification described in XML Metadata Interchange ...
(EMF) or
Graphical Modeling Framework
The Graphical Modeling Framework (GMF) is a framework within the Eclipse platform. It provides a generative component and runtime infrastructure for developing graphical editors based on the Eclipse Modeling Framework (EMF) and Graphical Editing ...
(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
A ''list'' is any set of items in a row. List or lists may also refer to:
People
* List (surname)
Organizations
* List College, an undergraduate division of the Jewish Theological Seminary of America
* SC Germania List, German rugby union ...
, 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 architecture A reference architecture in the field of software architecture or enterprise architecture provides a template solution for an architecture for a particular domain. It also provides a common vocabulary with which to discuss implementations, often wi ...
s like
Java EE
Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web serv ...
or
Microsoft .NET
The Microsoft .NET strategy is a marketing plan that Microsoft followed in the early 2000s. Steve Ballmer described it as the company's "most ambitious undertaking since Internet Strategy Day in 1995". In support of this strategy, between 2000 and ...
,
* 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
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 Executable UML (xtUML or xUML) is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combine ...
) has been bridged by some vendors by adapting the original Shlaer-Mellor Action Language (modified for UML). However, during this period the MDA approach has not gained mainstream industry acceptance; with the
Gartner Group
Gartner, Inc is a technological research and consulting firm based in Stamford, Connecticut that conducts research on technology and shares this research both through private consulting as well as executive programs and conferences. Its clients ...
still identifying MDA as an "on the rise" technology in its 2006 "
Hype Cycle
The Gartner hype cycle is a graphical presentation developed, used and branded by the American research, advisory and information technology firm Gartner to represent the maturity, adoption, and social application of specific technologies. The hy ...
",
["Hype Cycle for Emerging Technologies, 2006"]
$495.00 and
Forrester Research
Forrester is a research and advisory company that offers a variety of services including research, consulting, and events.
Forrester has nine North America locations: Cambridge, Massachusetts; New York, New York; San Francisco, California; McL ...
declaring MDA to be "D.O.A." in 2006.
["MDA Is DOA, Partly Thanks To SOA"]
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
QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group.
Overview
Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
transformation engine or a
PIM with a virtual execution environment).
["UML - Unified or Universal Modeling Language? UML2, OCL, MOF, EDOC - The Emperor Has Too Many Clothes"]
/ref>["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.
* 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.["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".["A Response to Forrester"]
/ref> Pragmatic MDA blends the literal standards from OMG's MDA with more traditional model driven mechanisms such as round-trip engineering
Round-trip engineering (RTE) is a functionality of software development tools that synchronizes two or more related software artifacts, such as, source code, models, configuration files, and even documentation. The need for round-trip engineering a ...
that provides support for adapting implementation artifacts.
* 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.["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.["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 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.["Avoiding Another Green Elephant"]
/ref>
Code generation controversy
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
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
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
Template may refer to:
Tools
* Die (manufacturing), used to cut or shape material
* Mold, in a molding process
* Stencil, a pattern or overlay used in graphic arts (drawing, painting, etc.) and sewing to replicate letters, shapes or designs
...
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".Bleading-Edge
/ref>
See also
* ATLAS Transformation Language
ATL (ATLAS Transformation Language) is a model transformation language and toolkit developed and maintained by OBEO and AtlanMod. It was initiated by the AtlanMod team (previously called ATLAS Group). In the field of Model-Driven Engineering (M ...
* Automatic programming
In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level.
There has been little ...
* Domain-driven design
Domain-driven design (DDD) is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts.
Under domain-driven design, the structure and language of software code (class name ...
* Enterprise Resource Planning
Enterprise resource planning (ERP) is the integrated management of main business processes, often in real time and mediated by software and technology. ERP is usually referred to as a category of Business management tools, business management ...
* Executable UML Executable UML (xtUML or xUML) is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combine ...
* Executable Architecture
* Meta-Object Facility
The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering. Its purpose is to provide a type system for entities in the CORBA architecture and a set of interfaces through which those types can be creat ...
* Metamodeling
A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...
* Model-driven engineering
Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract re ...
* Model-driven integration
* Model-driven security
Model-driven security (MDS) means applying model-driven approaches (and especially the concepts behind model-driven software development) to security.
Development of the concept
The general concept of Model-driven security in its earliest forms ...
*Model Driven Interoperability Model Driven Interoperability (MDI) is a methodological framework, which provides a conceptual and technical support to make interoperable enterprises using ontologies and semantic annotations, following model driven development (MDD) principles.
...
* Model-driven application
* Model Transformation Language
* Modeling Maturity Levels
* Platform-independent model
A platform-independent model (PIM) in software engineering is a model of a software system or business system that is independent of the specific technological platform used to implement it.
The term platform-independent model is most frequently ...
* Platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indis ...
* Software factory
A software factory is a structured collection of related software assets that aids in producing computer software applications or software components according to specific, externally defined end-user requirements through an assembly process. A s ...
* Unified Modeling Language
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
* Universal Systems Language Universal Systems Language (USL) is a systems modeling language and formal method for the specification and design of software and other complex systems. It was designed by Margaret Hamilton based on her experiences writing flight software for the ...
* QVT
QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group.
Overview
Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
* Web engineering
The World Wide Web has become a major delivery platform for a variety of complex and sophisticated enterprise applications in several domains. In addition to their inherent multifaceted functionality, these Web applications exhibit complex behavio ...
* WebML
WebML (Web Modeling Language) is a visual notation and a methodology for designing complex data-intensive Web applications. It provides graphical, yet formal, specifications, embodied in a complete design process, which can be assisted by visual d ...
References
Further reading
* Kevin Lano. "Model-Driven Software Development With UML and Java". CENGAGE Learning,
* David S. Frankel. ''Model Driven Architecture: Applying MDA to Enterprise Computing''. John Wiley & Sons,
* Meghan Kiffer ''The MDA Journal: Model Driven Architecture Straight From The Masters''.
* Anneke Kleppe (2003). ''MDA Explained, The Model Driven Architecture: Practice and Promise''. Addison-Wesley.
* Stephen J. Mellor
Stephen J. Mellor (born 1952) is an American computer scientist, developer of the Ward–Mellor method for real-time computing, the Shlaer–Mellor method, and Executable UML, and signatory to the Agile Manifesto.
Biography
Mellor rece ...
(2004). ''MDA Distilled, Principles of Model Driven Architecture''. Addison-Wesley Professional.
* Chris Raistrick. ''Model Driven Architecture With Executable UML''. Cambridge University Press,
* Marco Brambilla, Jordi Cabot, Manuel Wimmer, ''Model Driven Software Engineering in Practice'', foreword by Richard Soley
Richard Mark Soley (born c. 1960, in Baltimore, Maryland) is an American computer scientist and businessman, and chairman and CEO of the Object Management Group, Inc. (OMG). He is also executive director of the Cloud Standards Customer Council, ...
( OMG Chairman), Morgan & Claypool, USA, 2012, Synthesis Lectures on Software Engineering #1. 182 pages. (paperback), (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.
External links
OMG's MDA Web site
Model-Driven Software Development Course, B. Tekinerdogan, Bilkent University
{{DEFAULTSORT:Model-Driven Architecture
Systems engineering
Unified Modeling Language
Software architecture