HOME

TheInfoList



OR:

Model-driven engineering (MDE) is a
software development methodology In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or s ...
that focuses on creating and exploiting
domain model In software engineering, a domain model is a conceptual model of the domain (software engineering), domain that incorporates both behavior and data.Fowler, Martin. "P of EAA - Domain Model"/ref> In ontology engineering, a domain model is a Knowl ...
s, which are
conceptual models Conceptual may refer to: Philosophy and Humanities *Concept *Conceptualism *Philosophical analysis (Conceptual analysis) *Theoretical definition (Conceptual definition) *Thinking about Consciousness (Conceptual dualism) *Pragmatism (Conceptual pr ...
of all the topics related to a specific problem. Hence, it highlights and aims at abstract representations of the
knowledge Knowledge is an Declarative knowledge, awareness of facts, a Knowledge by acquaintance, familiarity with individuals and situations, or a Procedural knowledge, practical skill. Knowledge of facts, also called propositional knowledge, is oft ...
and activities that govern a particular
application domain An application domain is a mechanism (similar to a process in an operating system) used within the Common Language Infrastructure (CLI) to isolate executed software applications from one another so that they do not affect each other. Each applicat ...
, rather than the computing (i.e. algorithmic) concepts. MDE is a subfield of a
software design Software design is the process of conceptualizing how a software system will work before it is implemented or modified. Software design also refers to the direct result of the design process the concepts of how the software will work which co ...
approach referred as
round-trip engineering Round-trip engineering (RTE) in the context of model-driven architecture is a functionality of software development tools that synchronizes two or more related software artifacts, such as, source code, models, configuration files, documentation, e ...
. The scope of the MDE is much wider than that of the
Model-Driven Architecture 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 doma ...
.


Overview

The MDE approach is meant to increase productivity by maximizing compatibility between systems (via reuse of standardized models), simplifying the process of design (via models of recurring
design patterns ''Design Patterns: Elements of Reusable Object-Oriented Software'' (1994) is a software engineering book describing software design patterns. The book was written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, with a fore ...
in the application domain), and promoting communication between individuals and teams working on the system (via a standardization of the terminology and the
best practice A best practice is a method or technique that has been generally accepted as superior to alternatives because it tends to produce superior results. Best practices are used to achieve quality as an alternative to mandatory standards. Best practice ...
s used in the application domain). For instance, in model-driven development, technical artifacts such as source code, documentation, tests, and more are generated algorithmically from a domain model. A modeling paradigm for MDE is considered effective if its models make sense from the point of view of a user that is familiar with the domain, and if they can serve as a basis for implementing systems. The models are developed through extensive communication among product managers, designers, developers and users of the application domain. As the models approach completion, they enable the development of software and systems. Some of the better known MDE initiatives are: * The
Object Management Group The Object Management Group (OMG®) is a computer industry Standards Development Organization (SDO), or Voluntary Consensus Standards Body (VCSB). OMG develops enterprise integration and modeling standards for a range of technologies. Busin ...
(OMG) initiative
Model-Driven Architecture 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 doma ...
(MDA) which is leveraged by several of their standards such as
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 cre ...
, XMI, CWM,
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sy ...
,
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system. UML provides a standard notation for many types of diagrams which can be roughly ...
(to be more precise, the OMG currently promotes the use of a subset of UML called fUML together with its action language, ALF, for model-driven architecture; a former approach relied on Executable UML and OCL, instead), and
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 ...
. * The
Eclipse An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
"eco-system" of programming and modelling tools represented in general terms by 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 ...
). This framework allows the creation of tools implementing the MDA standards of the OMG; but, it is also possible to use it to implement other modeling-related tools.


History

The first tools to support MDE were the Computer-Aided Software Engineering (
CASE Case or CASE may refer to: Instances * Instantiation (disambiguation), a realization of a concept, theme, or design * Special case, an instance that differs in a certain way from others of the type Containers * Case (goods), a package of relate ...
) tools developed in the 1980s. Companies like Integrated Development Environments (IDE – StP), Higher Order Software (now Hamilton Technologies, Inc., HTI), Cadre Technologies, Bachman Information Systems, and
Logic Works Logic Works Inc. was a software company created by CEO Benjamin C. Cohen based in Princeton, New Jersey. Their flagship product was an IDEF1X modeling and database design tool called ER''win'' (ERwin) whose name is formed from an initialism of ...
(BP-Win and ER-Win) were pioneers in the field. The US government got involved in the modeling definitions creating the
IDEF IDEF, initially an abbreviation of ICAM Definition and renamed in 1999 as Integration Definition, is a family of modeling languages in the field of systems and software engineering. They cover a wide range of uses from functional modeling to da ...
specifications. With several variations of the modeling definitions (see Booch, Rumbaugh, Jacobson, Gane and Sarson, Harel, Shlaer and Mellor, and others) they were eventually joined creating the
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system. UML provides a standard notation for many types of diagrams which can be roughly ...
(UML).
Rational Rose Rational Rose was a development environment for Unified Modeling Language. It integrates with Microsoft Visual Studio .NET and Rational Application Developer. The Rational Software division of IBM, which previously produced Rational Rose, wrot ...
, a product for UML implementation, was done by Rational Corporation (Booch) responding automation yield higher levels of abstraction in software development. This abstraction promotes simpler models with a greater focus on problem space. Combined with executable semantics this elevates the total level of automation possible. The
Object Management Group The Object Management Group (OMG®) is a computer industry Standards Development Organization (SDO), or Voluntary Consensus Standards Body (VCSB). OMG develops enterprise integration and modeling standards for a range of technologies. Busin ...
(OMG) has developed a set of standards called
Model-Driven Architecture 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 doma ...
(MDA), building a foundation for this advanced architecture-focused approach.


Advantages

According to Douglas C. Schmidt, model-driven engineering technologies offer a promising approach to address the inability of third-generation languages to alleviate the complexity of platforms and express domain concepts effectively., ''"A promising approach to address platform complexity—and the inability of third-generation languages to alleviate this complexity and express domain concepts effectively—is to develop Model-Driven Engineering (MDE) technologies..."''


Tools

Notable software tools for model-driven engineering include: * AADL from Carnegie-Mellon Software Engineering Institute *
Acceleo Acceleo is an open-source code generator from the Eclipse Foundation that allows people to use a model-driven approach to building applications. It is an implementation of the " MOFM2T" standard, from the Object Management Group (OMG), for perfo ...
an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
code generator from Obeo * Actifsource * AgileUML an open source MDE toolset from AgileMDE Ltd * Ash Framework an open source Elixir-based declarative application framework *
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 ...
or ATL, a model transformation language from Obeo * DUALLy, an MDE framework to create interoperability *
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) *
Enterprise Architect Enterprise architecture (EA) is a business function concerned with the structures and behaviours of a business, especially business roles and processes that create and use business data. The international definition according to the Federation of ...
from
Sparx Systems Sparx Systems is an Australian software company founded by Geoffrey Sparks in 1996 in Creswick, Victoria in Australia, known for the development of the Unified Modeling Language tool Enterprise Architect. Sparx Systems specializes in the devel ...
* eTrice an open source implementation of the
Real-Time Object-Oriented Modeling Real-Time Object-Oriented Modeling (ROOM) is a domain-specific language. ROOM was developed in the early 1990s for modeling real-time systems. The initial focus was on telecommunications, even though ROOM can be applied to any event-driven real-ti ...
standard *
Generic Eclipse Modeling System Generic Eclipse Modeling System (GEMS) is a configurable toolkit for creating domain-specific modeling and program synthesis environments for Eclipse. The project aims to bridge the gap between the communities experienced with visual metamodeling ...
(GEMS) *
GeneXus GeneXus is a low code, cross-platform, knowledge representation-based development tool, mainly oriented towards enterprise-class applications for web applications, smart devices, and the Microsoft Windows platform. GeneXus uses mostly declara ...
a
knowledge Knowledge is an Declarative knowledge, awareness of facts, a Knowledge by acquaintance, familiarity with individuals and situations, or a Procedural knowledge, practical skill. Knowledge of facts, also called propositional knowledge, is oft ...
-based, declarative, multi-platform, multi-language development solution *
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 Edit ...
(GMF) *
JetBrains MPS JetBrains MPS (Meta Programming System) is a language workbench developed by JetBrains. MPS is a tool to design domain-specific languages (DSL). It uses projectional editing which allows users to overcome the limits of language parsers, and bui ...
, a
metaprogramming Metaprogramming is a computer programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyse, or transform other programs, and even modi ...
system from
JetBrains JetBrains s.r.o. (formerly IntelliJ Software s.r.o.) is a Czech software development private limited company which makes tools for software developers and project managers. The company has its headquarters in Amsterdam, and has offices in Ch ...
*
MagicDraw MagicDraw is a proprietary visual UML, SysML, BPMN, and UPDM modeling tool with team collaboration support. Features Domain specific language The domain specific language (DSL) customization engine allows for adapting MagicDraw to a specifi ...
from No Magic Inc * MERODE JMermaid from KU Leuven (educational) * MetaEdit+ from MetaCase * ModelCenter from Phoenix Integration * Open ModelSphere *
OptimalJ Compuware OptimalJ was a model-driven development environment for Java. OptimalJ was first released in 2001 and was then based on Sun Microsystems' open source NetBeans IDE. Since 2006 OptimalJ is based on the open source Eclipse IDE. OptimalJ wa ...
from
Compuware Compuware Corporation was an American software company based in Detroit. The company offered products aimed at the information technology (IT) departments of large businesses, and its services also included testing, development, automation and p ...
* PREEvision from
Vector Informatik {{Infobox company , name = Vector Informatik , logo = , type = GmbH , slogan = , foundation = April 1, 1988, location = Stuttgart, Germany, key_people = Managing directors * Dr. Thomas Beck * Dr. Matthias ...
* Rhapsody from
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
* PowerDesigner from
SAP Sap is a fluid transported in the xylem cells (vessel elements or tracheids) or phloem sieve tube elements of a plant. These cells transport water and nutrients throughout the plant. Sap is distinct from latex, resin, or cell sap; it is a s ...
*
Simulink Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offe ...
from
MathWorks The MathWorks, Inc. is an American privately held corporation that specializes in mathematical computing software. Its major products include MATLAB and Simulink, which support data analysis and simulation. History MATLAB was created in the 1 ...
* Software Ideas Modeler from Dusan Rodina *
Sirius Sirius is the brightest star in the night sky. Its name is derived from the Greek word (Latin script: ), meaning 'glowing' or 'scorching'. The star is designated  Canis Majoris, Latinized to Alpha Canis Majoris, and abbr ...
an Eclipse open source project to create custom graphical modeling workbenches * Together Architect from
Borland Borland Software Corporation was a computing technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad, and Philippe Kahn. Its main business was developing and selling software development and software deployment products. B ...
* Umbrello by KDE *
Umple Umple is a language for both object-oriented programming and modelling with class diagrams and state diagrams. The name Umple is a portmanteau of " UML", "ample" and "Simple", indicating that it is designed to provide ample features to extend pr ...
from the University of Ottawa *
Uniface In archaeology, a uniface is a specific type of stone tool that has been flaked on one surface only. There are two general classes of uniface tools: modified flakes and formalized tools, which display deliberate, systematic modification of the margi ...
from Compuware * YAKINDU Statechart Tools open source tool build on top of
Eclipse An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...


See also

*
Application lifecycle management Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software testing, ...
(ALM) *
Business Process Model and Notation Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model. Originally developed by the Business Process Management Initiative (BPMI), BPMN has been maintained by the ...
(BPMN) *
Business-driven development Business-driven development is a meta-methodology for developing IT solutions that directly satisfy requirement, business requirements. This is achieved by adopting a model-driven approach that starts with the business strategy, requirements, and g ...
(BDD) *
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. DDD is against the idea of having a single unified model; instead it divides a large s ...
(DDD) *
Domain-specific language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
(DSL) * Domain-specific modeling (DSM) *
Domain-specific multimodeling Domain-specific multimodeling is a software development paradigm where each view is made explicit as a separate domain-specific language (DSL). Successful development of a modern enterprise system requires the convergence of multiple views. Busi ...
*
Language-oriented programming Language-oriented programming (LOP) is a software-development paradigm where "language" is a software building block with the same status as objects, modules and components, and rather than solving problems in general-purpose programming languages, ...
(LOP) *
List of Unified Modeling Language tools This article compares UML tools. UML tools are software applications which support some functions of the Unified Modeling Language. General Features See also * List of requirements engineering tools References External links

*
Model transformation A model transformation, in model-driven engineering, is an automated way of modifying and creating platform-specific model from platform-independent ones. An example use of model transformation is ensuring that a family of models is consistent, in ...
(e.g. using
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 ...
) *
Model-based testing Model-based testing is an application of model-based design for designing and optionally also executing artifacts to perform software testing or system testing. Models can be used to represent the desired behavior of a system under test (SUT), or ...
(MBT) * Modeling Maturity Level (MML) *
Model-based systems engineering Model-based systems engineering (MBSE) represents a paradigm shift in systems engineering, replacing traditional document-centric approaches with a methodology that uses structured domain models as the primary means of information exchange and sys ...
(MBSE) *
Service-oriented modeling Service-oriented modeling is the discipline of modeling business and software systems, for the purpose of designing and specifying service-oriented business systems within a variety of architectural styles and paradigms, such as application arch ...
Framework (SOMF) *
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 ...
(SF) *
Story-driven modeling Story-driven modeling is an object-oriented modeling technique. Other forms of object-oriented modeling focus on class diagrams. Class diagrams describe the static structure of a program, i.e. the building blocks of a program and how they relate ...
(SDM) *
Open API An open API (often referred to as a public API) is a publicly available application programming interface that provides developers with programmatic access to a (possibly proprietary) software application or web service. Open APIs are APIs that ...
, open source specification for description of models and operations for HTTP interoperation and REST APIc


References


Further reading

* David S. Frankel, ''Model Driven Architecture: Applying MDA to Enterprise Computing'', John Wiley & Sons, * 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, died 8 Nov., 2023, in Lexington, Massachusetts) was an American computer scientist and businessman, and chairman and CEO of the Object Management Group, Inc. (OMG). He was also the execut ...
( OMG Chairman), Morgan & Claypool, USA, 2012, Synthesis Lectures on Software Engineering #1. 182 pages. (paperback), (ebook). https://www.mdse-book.com *


External links


''Model-Driven Architecture: Vision, Standards And Emerging Technologies''
at omg.org {{Software engineering Systems engineering Unified Modeling Language