Model-driven engineering
   HOME

TheInfoList



OR:

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 representations of the
knowledge Knowledge can be defined as awareness of facts or as practical skills, and may also refer to familiarity with objects or situations. Knowledge of facts, also called propositional knowledge, is often defined as true belief that is distin ...
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 applic ...
, 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 ''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 forewo ...
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 (OMG) initiative Model-Driven Architecture (MDA) which is leveraged by several of their standards such as Meta-Object Facility, XMI, CWM, CORBA,
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. * 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 Case or CASE may refer to: Containers * Case (goods), a package of related merchandise * Cartridge case or casing, a firearm cartridge component * Bookcase, a piece of furniture used to store books * Briefcase or attaché case, a narrow box to ca ...
) 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 (BP-Win and ER-Win) were pioneers in the field. The US government got involved in the modeling definitions creating the IDEF specifications. With several variations of the modeling definitions (see Booch, Rumbaugh,
Jacobson Jacobson may refer to: * Jacobson (surname), including a list of people with the name * Jacobson, Minnesota, a place in the United States * Jacobson's, an American regional department store chain See also * Jacobsen (disambiguation) * Jakob ...
, 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 (OMG) has developed a set of standards called model-driven architecture (MDA), building a foundation for this advanced architecture-focused approach. 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 an open source code generator from Obeo * Actifsource * AgileUML an open source MDE toolset from AgileMDE Ltd * ATLAS Transformation Language 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 *
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 metamodelin ...
(GEMS) * GeneXus a
Knowledge Knowledge can be defined as awareness of facts or as practical skills, and may also refer to familiarity with objects or situations. Knowledge of facts, also called propositional knowledge, is often defined as true belief that is distin ...
-based, declarative, multi-platform, multi-language development solution * Graphical Modeling Framework (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 system from JetBrains * MagicDraw from No Magic Inc * MERODE JMermaid from KU Leuven (educational) *
MetaEdit+ MetaEdit+ is an environment for creating and using Domain-Specific Modeling languages. Research History The research behind the genesis of MetaEdit+ was carried out at the University of Jyväskylä, as part of the MetaPHOR project. A metamodeli ...
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 was ...
from Compuware * PREEvision from Vector Informatik * Rhapsody from IBM * RISE Editor from RISE to Bloome Software *
PowerDesigner SAP PowerDesigner (or PowerDesigner) is a collaborative enterprise modelling tool produced by Sybase, currently owned by SAP. It can run either under Microsoft Windows as a native application or in an Eclipse environment through a plugin. It su ...
from SAP * Simulink 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, wa ...
* 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 from the University of Ottawa * Uniface from Compuware * YAKINDU Statechart Tools 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 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 (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 names ...
(DDD) * Domain-specific language (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 (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 The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of soft ...
* Model transformation (e.g. using QVT) *
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 (MBSE) * Service-oriented modeling 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)


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 ( 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