Model-driven engineering
![]() | This article provides insufficient context for those unfamiliar with the subject.(May 2009) |
Model-driven engineering (MDE) is a software development methodology which focuses on creating and exploiting domain models (that is, abstract representations of the knowledge and activities that govern a particular application domain), rather than on the computing (or algorithmic) concepts. 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.
History of MDE
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. Except for HTI's 001AXES Universal Systems Language (USL) and its associated automation (001), CASE had the same problem that current MDA/MDE tools have today: the model gets out of sync with the application (see below). The US government got involved in the modeling definitions creating the IDEF specifications. With several variations of the modeling definitions (see Grady Booch, Jim Rumbaugh, Ganes, Sarson, Harel, Shlaer, Mellor, and others) they were eventually joined creating the Unified Modeling Language (UML). Rational Rose, the dominant product for UML implementation, was done by Rational Corporation (Booch) which in 2002 was acquired by IBM.
MDE as used in software engineering
As it pertains to software development, model-driven engineering refers to a range of development approaches that are based on the use of software modeling as a primary form of expression. Sometimes models are constructed to a certain level of detail, and then code is written by hand in a separate step. Sometimes complete models are built including executable actions. Code can be generated from the models, ranging from system skeletons to complete, deployable products. With the introduction of the Unified Modeling Language (UML), MDE has become very popular today with a wide body of practitioners and supporting tools. More advanced types of MDE have expanded to permit industry standards which allow for consistent application and results. The continued evolution of MDE has added an increased focus on architecture and automation.
MDE technologies with a greater focus on architecture and corresponding 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].
MDE and Rapid Applications Development
Very Rapid application development uses Object Programming to separate that the customer demands from software. It is Model Driven Engineering applied to Rapid application development EDI. One stage of programing is deleted which is the development of the software from the analysis. Some passive files are read from the VRAD engine to create the software. The passive files are the analysis.
Conferences
- ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (Proceedings)
- European Conference on Modelling Foundations and Applications (ECMFA) (Proceedings)
See also
- Model transformation (QVT)
- Language-oriented programming (LOP)
- Domain-specific modeling (DSM)
- Domain-specific multimodeling
- Domain-specific language (DSL)
- Model-based testing (MBT)
- Software factory (SF)
- Business-driven development (BDD)
- Modeling Maturity Level (MML)
- Service-oriented Modeling Framework (SOMF)
- Application Lifecycle Management (ALM)
Tools
- AADL from Carnegie-Mellon Software Engineering Institute
- Acceleo an open source code generator from Obeo
- Actifsource
- Apollo for Eclipse from Gentleware
- AndroMDA an open source MDA tool [1]
- ArcStyler from Interactive Objects Software GmbH
- Artisan Studio from Artisan Software Tools
- ASCET from ETAS
- AtomWeaver from Isomeris
- CoCoViLa from Tallinn University of Technology
- CodeFluent Entities from SoftFluent
- ECO_(Domain_Driven_Design) EnterpriseCoreObjects by CapableObjects.com
- Eclipse Modeling Framework (EMF)
- Enterprise Architect from Sparx Systems
- GenerateXY from DotXY
- Generic Eclipse Modeling System (GEMS)
- GeneXus a Knowledge-based, declarative, multi-platform, multi-language development solution
- Graphical Modeling Framework (GMF)
- HyperSenses and ANGIE from DELTA Software Technology
- Innovator from MID GmbH
- LEONARDI A Very Rapid Applications Development Engine
- MagicDraw from No Magic Inc
- ManyDesigns Portofino
- MetaEdit+ from MetaCase
- objectiF from microTOOL
- openArchitectureWare
- OptimalJ from Compuware
- 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
- Together Architect from Borland
- TOPCASED (Open Source-Tool)
- Uniface from Compuware
References
- ^ Object Management Group (2006-05-24). "OMG Trademarks". Retrieved 2008-02-26.
- ^ Schmidt, D.C. (2006). "Model-Driven Engineering" (PDF). IEEE Computer. 39 (2). Retrieved 2006-05-16.
{{cite journal}}
: Unknown parameter|month=
ignored (help), "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
- Model Driven Architecture: Applying MDA to Enterprise Computing, David S. Frankel, John Wiley & Sons, ISBN 0-471-31920-1
External links
- Model-Driven Architecture: Vision, Standards And Emerging Technologies at omg.org
- On the Unification Power of Models.
- Model-Driven Software Development Course, B. Tekinerdogan, Bilkent University
- A podcast discussion on Model-Driven Software Development.
- Article Making model-based code generation work
- International School on Model-Driven Design for Distributed, Realtime, Embedded Systems (MDD4DRES)
- VisSim: A Visual Language for Model-Based Design and Embedded Development
- DPF: Diagram Predicate Framework, a formal framework for MDE
- Very Rapid Application Development with a VRAD framework