Model-driven engineering (MDE) is a
software development methodology
In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software devel ...
that focuses on creating and exploiting
domain model
In software engineering, a domain model is a conceptual model of the domain that incorporates both behavior and data.Fowler, Martin. ''Patterns of Enterprise Application Architecture''. Addison Wesley, 2003, p. 116. In ontology engineering, a do ...
s, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at
abstract representations of the
knowledge
Knowledge can be defined as Descriptive knowledge, awareness of facts or as Procedural knowledge, practical skills, and may also refer to Knowledge by acquaintance, familiarity with objects or situations. Knowledge of facts, also called pro ...
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.
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 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 other known alternatives because it often produces results that are superior to those achieved by other means or because it has become a standard way of doing ...
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 consortium. OMG Task Forces develop enterprise integration standards for a range of technologies.
Business activities
The goal of the OMG was a common portable and interoperab ...
(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 creat ...
,
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 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 ...
(to be more precise, the OMG currently promotes the use of a subset of UML called
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 ...
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 "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) 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,IEEE Standard for Functional Modeling Language—Syntax and Semantics for IDEF0, Software Engineering Standards Committee of the IEEE Computer Soci ...
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, 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).
Rational Rose
Rational Rose XDE, an "eXtended Development Environment" for software developers, integrates with Microsoft Visual Studio .NET and Rational Application Developer. The Rational Software division of IBM, which previously produced Rational Rose, ...
, 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 consortium. OMG Task Forces develop enterprise integration standards for a range of technologies.
Business activities
The goal of the OMG was a common portable and interoperab ...
(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.
According to
Douglas C. Schmidt
Douglas C. Schmidt (born July 18, 1962) is a computer scientist and author in the fields of object-oriented programming, distributed computing and design patterns.
Biography
In August 1994 he joined the faculty of Washington University, St. Lo ...
, 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 code generator from Obeo
*
Actifsource
*
AgileUML an open source MDE toolset from AgileMDE Ltd
*
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 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 ...
*
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 declar ...
a
Knowledge
Knowledge can be defined as Descriptive knowledge, awareness of facts or as Procedural knowledge, practical skills, and may also refer to Knowledge by acquaintance, familiarity with objects or situations. Knowledge of facts, also called pro ...
-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 Editing ...
(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 buil ...
, a
metaprogramming
Metaprogramming is a 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, analyze or transform other programs, and even modify itself ...
system from
JetBrains
JetBrains s.r.o. (formerly IntelliJ Software s.r.o.) is a Czech software development company which makes tools for software developers and project managers. , the company has offices in Prague; Munich; Berlin; Boston, Massachusetts; Ams ...
*
MagicDraw
MagicDraw is a proprietary visual UML, SysML, BPMN, and UPDM modeling tool with team collaboration support. Designed for business analysts, software analysts, programmers, and QA engineers, this dynamic and versatile development tool facilitat ...
from No Magic Inc
*
MERODE JMermaid from KU Leuven (educational)
*
MetaEdit+ from MetaCase
*
ModelCenter
ModelCenter, developed by Phoenix Integration, is a software package that aids in the design and optimization of systems. It enables users to conduct trade studies, as well as optimize designs. It interfaces with other popular modeling tools, in ...
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 ...
from
Compuware
Compuware Corporation was an American software company based in Detroit, Michigan. The company offers products aimed at the information technology (IT) departments of large businesses, and its services also include testing, development, automation ...
*
PREEvision from
Vector Informatik
Vector Informatik develops software tools and components for networking of electronic systems based on the serial bus systems CAN, LIN, FlexRay, MOST, Ethernet, AFDX, ARINC 429,
*
Rhapsody from
IBM
*
RISE Editor
The RISE Editor is a free information modeling tool for information system development based on model driven development. Functionality includes automatic interface composition, database generation and updates, data insertion, programming interf ...
from RISE to Bloome Software
*
PowerDesigner from
SAP
Sap is a fluid transported in 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 separ ...
*
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 offers t ...
from
MathWorks
MathWorks 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
The company's key product, MATLAB, was ...
*
Software Ideas Modeler from Dusan Rodina
*
Sirius
Sirius is the brightest star in the night sky. Its name is derived from the Greek word , or , meaning 'glowing' or 'scorching'. The star is designated α Canis Majoris, Latinized to Alpha Canis Majoris, and abbreviated Alpha CM ...
an Eclipse Open Source project to create custom graphical modeling workbenches
*
Together Architect from
Borland
*
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 pro ...
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 ...
from Compuware
*
YAKINDU Statechart Tools
YAKINDU Statechart Tools (YAKINDU SCT) is a tool for the specification and development of reactive, event-driven systems with the help of finite-state machines. It comprises a tool for the graphical editing of statecharts and provides validation, ...
open source tool build on top of
Eclipse
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 (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 go ...
(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.
Under domain-driven design, the structure and language of software code (class name ...
(DDD)
*
Domain-specific language (DSL)
*
Domain-specific modeling (DSM)
*
Domain-specific multimodeling
*
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
Requirements engineering tools 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 ...
(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 Modeling Maturity Levels is a classification system defined by Anneke Kleppe and Jos Warmer in their book MDA Explained Addison-Wesley. The levels characterize the role of modeling in a software project.
The concept shows resemblance to the way soft ...
(MML)
*
Model-based systems engineering Model-based systems engineering (MBSE), according to the International Council on Systems Engineering (INCOSE), is the ''formalized application of modeling to support system requirements, design, analysis, verification and validation activities beg ...
(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 (SF)
*
Story-driven modeling (SDM)
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) 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
* {{cite journal, first=Alberto Rodrigues , last=da Silva , title=Model-Driven Engineering: A Survey Supported by a Unified Conceptual Model , journal=Computer Languages, Systems & Structures , volume=43 , pages=139–155 , number=43 , date=2015, doi=10.1016/j.cl.2015.06.001 , doi-access=free
External links
''Model-Driven Architecture: Vision, Standards And Emerging Technologies''at omg.org
Systems engineering
Unified Modeling Language