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 representations of the knowledge and activities that govern a particular application domain, rather than the computing (f.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 practices used in the application domain).
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 a registered trademark of OMG.[1]
- the Eclipse ecosystem of programming and modelling tools (Eclipse Modeling Framework).
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 (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, Gane and Sarson, Harel, Shlaer and Mellor, and others) they were eventually joined creating the Unified Modeling Language (UML). 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.[2]
Tools
- AADL from Carnegie-Mellon Software Engineering Institute
- Acceleo an open source code generator from Obeo
- Actifsource
- Apollo for Eclipse from Gentleware
- ATLAS Transformation Language or ATL, a model transformation language from Obeo
- AndroMDA an open source MDA tool [1]
- anycode a free MDA plugin for Astah UML Community
- ArcStyler from Interactive Objects Software GmbH
- Artisan Studio from Atego
- ASCET from ETAS
- AtomWeaver from Isomeris
- CoCoViLa from Tallinn University of Technology
- CodeFluent Entities from SoftFluent
- DB-MAIN framework from REVER
- [2] Dezyne from Verum
- ECO (Domain Driven Design) EnterpriseCoreObjects by CapableObjects.com
- Eclipse Modeling Framework (EMF)
- Enterprise Architect from Sparx Systems
- ER/Studio from Embarcadero Technologies
- Epsilon from the University of York
- Fujaba
- g9 Eclipse plugins turns domain knowledge into code
- GenerateXY from DotXY
- Generic Eclipse Modeling System (GEMS)
- GeneXus a Knowledge-based, declarative, multi-platform, multi-language development solution
- Genio a CASE / RAD (Rapid Application Development) / Agile / Model Driven Platform developed by Quidgest
- Genus Application Framework making multi-platform custom applications without generating code
- Graphical Modeling Framework (GMF)
- HERMES from RWTH Aachen University
- HyperSenses and ANGIE from DELTA Software Technology
- Innovator from MID GmbH
- W4 EXPRESS (former. LEONARDI),XML Frames Some Very Rapid Applications Development Engines with same analysis files.
- MagicDraw from No Magic Inc
- ManyDesigns Portofino
- MERODE JMermaid from KU Leuven (educational)
- MetaEdit+ from MetaCase
- Mia-Studio from Mia-Software
- ModelCenter from Phoenix Integration
- ModuleStudio from Guite
- objectiF from microTOOL
- openArchitectureWare
- Open ModelSphere
- OptimalJ from Compuware
- PREEvision from Vector Informatik
- Real Time Developer Studio from PragmaDev
- TA Tool Suite from Timing-Architects
- Rhapsody from IBM
- RISE Editor from RISE to Bloome Software
- SCADE Suite from Esterel Technologies
- Sculpture Platform from Modelingsoft
- Select Architect from Select Business Solutions
- Simulink from MathWorks, see also Stateflow and Real-Time Workshop Embedded Coder, TargetLink
- Sirius an Eclipse Open Source project to create custom graphical modeling workbenches, from Obeo and Thales
- TASTE from European Space Agency combining several modeling technologies
- Together Architect from Borland
- PolarSys (Open Source-Tool)
- Umple from the University of Ottawa
- Uniface from Compuware
- Visual Paradigm solutions from Visual Paradigm
- XComponent, a user-friendly solution
- YAKINDU Statechart Tools open source tool build on top of Eclipse
- Agent Systems Engineering Methodology (ASEME) process and tools.
See also
- Model transformation (e.g. using QVT)
- Language-oriented programming (LOP)
- Domain-specific modeling (DSM)
- Domain-specific multimodeling
- Domain-specific language (DSL)
- Model-based testing (MBT)
- Software factory (SF)
- Story-driven modeling (SDM)
- Business-driven development (BDD)
- Modeling Maturity Level (MML)
- Service-oriented Modeling Framework (SOMF)
- Application Lifecycle Management (ALM)
- Business Process Model and Notation (BPMN)
- List of Unified Modeling Language tools
References
- ^ Object Management Group (2006-05-24). "OMG Trademarks". Retrieved 2008-02-26.
- ^ Schmidt, D.C. (February 2006). "Model-Driven Engineering" (PDF). IEEE Computer. 39 (2). Retrieved 2006-05-16., "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..."
Further reading
- David S. Frankel, Model Driven Architecture: Applying MDA to Enterprise Computing, John Wiley & Sons, ISBN 0-471-31920-1
- 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. ISBN 9781608458820 (paperback), ISBN 9781608458837 (ebook). http://www.mdse-book.com