Model-driven engineering
Encyclopedia
Model-driven engineering (MDE) is a software development methodology
Software development methodology
A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system.- History :...

 which focuses on creating and exploiting domain model
Domain model
A domain model in problem solving and software engineering can be thought of as a conceptual model of a domain of interest which describes the various entities, their attributes, roles and relationships, plus the constraints that govern the integrity of the model elements comprising that problem...

s (that is, abstract representations
Representation (mathematics)
In mathematics, representation is a very general relationship that expresses similarities between objects. Roughly speaking, a collection Y of mathematical objects may be said to represent another collection X of objects, provided that the properties and relationships existing among the...

 of the knowledge and activities that govern a particular application domain
Problem domain
A problem domain is the area of expertise or application that needs to be examined to solve a problem. A problem domain is simply looking at only the topics you are interested in, and excluding everything else. For example, if you were developing a system trying to measure good practice in...

), 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 practice
Best practice
A best practice is a method or technique that has consistently shown results superior to those achieved with other means, and that is used as a benchmark...

s
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
    Object Management Group
    Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

     (OMG) initiative Model-Driven Architecture
    Model-driven architecture
    Model-driven architecture 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 domain engineering, and supports model-driven engineering of...

     (MDA), which is a registered trademark of OMG.
  • the Eclipse
    Eclipse (software)
    Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

     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
Logic Works
Logic Works Inc. was a software company based in Princeton, New Jersey. Their flagship product was an IDEF1X modeling and database design toolcalled ERwin whose name is formed from an initialism of ER for Entity Relationship and "win", short for windows...

 (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
Software development
Software development is the development of a software product...

, 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
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 (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
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

 (OMG) has developed a set of standards called model-driven architecture
Model-driven architecture
Model-driven architecture 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 domain engineering, and supports model-driven engineering of...

 (MDA), building a foundation for this advanced architecture-focused approach.

According to Douglas C. Schmidt
Douglas C. Schmidt
Douglas C. Schmidt is a computer scientist and author known for his works in the fields of object-oriented programming, distributed computing and design patterns. Currently he is working as Associate Chair of Computer Science and Engineering and Professor of Computer Science in Vanderbilt University...

, 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.

MDE and Rapid Applications Development

Very Rapid Applications Development uses Object Programming to separate that the customer demands from software. It is Model Driven Engineering applied to Rapid application development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 EDI
EDI
EDI may refer to:* Efficient Drivetrains Inc.* Electronic Data Interchange, a particular set of standards for computer-to-computer exchange of information* EDI, Extended Destination Index...

. 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


See also

  • Model-integrated computing
  • Model transformation
    Model transformation
    A model transformation, in model-driven engineering, is an automatable way of ensuring that a family of models is consistent, in a precise sense which the software engineer can define...

     (QVT
    QVT
    QVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...

    )
  • Language-oriented programming
    Language-oriented programming
    Language oriented programming is a style of computer programming in which, rather than solving problems in general-purpose programming languages, the programmer creates one or more domain-specific languages for the problem first, and solves the problem in those languages...

     (LOP)
  • Domain-specific modeling
    Domain-Specific Modeling
    Domain-specific modeling is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain-specific language to represent the various facets of a system...

     (DSM)
  • Domain-specific multimodeling
    Domain-specific multimodeling
    Domain-specific multimodelingis a software development paradigm where each view is made explicit as a separate domain-specific language .Successful development of a modern enterprise system requires the convergence of multiple views...

  • Domain-specific language (DSL)
  • Model-based testing
    Model-based testing
    Model-based testing is the application of Model based design for designing and optionally executing the necessary artifacts to perform software testing. Models can be used to represent the desired behavior of the System Under Test , or to represent the desired testing strategies and testing...

     (MBT)
  • Software factory
    Software factory
    In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally-defined end-user requirements through an assembly process...

     (SF)
  • Business-driven development
    Business-driven development
    Business-driven development is a methodology for developing IT solutions that directly satisfy business requirements. This is achieved by adopting a model-driven approach that starts with the business strategy, requirements and goals and then transforms them into an IT solution. The transformation...

     (BDD)
  • Generic Eclipse Modeling System
    Generic Eclipse Modeling System
    Generic Eclipse Modeling System is a configurable toolkit for creating domain-specific modeling and program synthesis environments for Eclipse...

     (GEMS)
  • Eclipse Modeling Framework
    Eclipse Modeling Framework
    Eclipse Modeling Framework is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model...

     (EMF)
  • Graphical Modeling Framework
    Graphical Modeling Framework
    The Graphical Modeling Framework 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 and Graphical Editing Framework...

     (GMF)
  • Modeling Maturity Level (MML)
  • Service-oriented Modeling
    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, such as enterprise architecture, application architecture, service-oriented architecture,...

     Framework (SOMF)
  • Application Lifecycle Management
    Application Lifecycle Management
    Application Lifecycle Management is a continuous process of managing the life of an application through governance, development and maintenance...

     (ALM)
  • ManyDesigns Portofino
    ManyDesigns Portofino
    ManyDesigns Portofino is an open-source web application framework written in Java, supporting several commercial and open source databases, and based on the Struts2 MVC framework...

  • UNIFACE
    Uniface
    In archeology, 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 marginal edges, evidently formed for a specific...


Tools

  • AADL from Carnegie-Mellon Software Engineering Institute
  • GenerateXY from DotXY
  • ArcStyler from Interactive Objects Software GmbH
  • Artisan Studio from Artisan Software Tools
  • ASCET from ETAS
  • Eclipse
    Eclipse (software)
    Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

    -based
  • Acceleo
    Acceleo
    Acceleo is an open source code generator of the Eclipse Foundation that allow people to use a model driven approach to build application from models. It is an implementation of the standard from the Object Management Group for model to text transformation named MOFM2T.- Early versions :The project...

     an open source code generator from Obeo
  • Actifsource
    Actifsource
    Actifsource is a domain specific modeling workbench. It is realized as plug-in for the software development environment Eclipse. Actifsource supports the creation of multiple domain models which can be linked together. It comes with a UML-like graphical editor to create domain specific languages...

  • Apollo for Eclipse from Gentleware
  • AtomWeaver from Isomeris
  • Eclipse
    Eclipse (software)
    Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

     + openArchitectureWare + EMF
    Eclipse Modeling Framework
    Eclipse Modeling Framework is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model...

     from Eclipse Foundation
    Eclipse Foundation
    The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the open-source Eclipse Projects and helps cultivate both an open source community and an ecosystem of complementary products and services...

  • Eclipse
    Eclipse (software)
    Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

     + openArchitectureWare + Enterprise Architect
    Enterprise Architect (Visual Modeling Platform)
    Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains...

     (UML
    Unified Modeling Language
    Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

    -Tool)
  • Enterprise Architect
    Enterprise Architect (Visual Modeling Platform)
    Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains...

     from Sparx Systems
  • HyperSenses and ANGIE
    Angie
    -In music:* Angie , a 1978 Angela Bofill album* "Angie" , a 1973 single by The Rolling Stones* "Anji" , also known as "Angie", a guitar instrumental written by Davey Graham-Other uses:...

     from DELTA Software Technology
  • Innovator from MID GmbH
  • LEONARDI A Very Rapid Applications Development Engine
  • MagicDraw from No Magic Inc
  • MetaEdit+
    MetaEdit+
    - Research History :The research behind the genesis of MetaEdit+ was carried out at the , as part of the MetaPHOR project. A metamodeling and modeling tool, MetaEdit, had been created by the earlier SYTI project in the late 1980s and early 1990s, in co-operation with a company, MetaCase.Both...

     from MetaCase
  • objectiF
    ObjectiF
    objectiF is a Unified Modeling Language CASE tool for model-driven engineering. It is developed by microTOOL GmbH based in Berlin .-Features:...

     from microTOOL
  • OptimalJ
    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...

     from Compuware
    Compuware
    Compuware Corporation is a software company with products aimed at the information technology departments of large businesses. The company's services also include testing, development, professional services automation, project and portfolio management, cloud-based collaboration and performance...

  • RISE Editor
    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 interface publishing and web service generation. The...

     from RISE to Bloome Software
  • Rhapsody
    Telelogic Rhapsody
    Now called IBM Rational Rhapsody, a modeling environment based on UML, Rhapsody is a visual development environment for systems engineers and software developers creating real-time or embedded systems and software...

     from IBM
    IBM
    International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

  • SCADE Suite from Esterel Technologies
  • Select Architect from Select Business Solutions
  • Simulink
    Simulink
    Simulink, developed by MathWorks, is a commercial tool for modeling, simulating and analyzing multidomain dynamic systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers tight integration with the rest of the MATLAB environment and...

     from MathWorks, see also Stateflow
    Stateflow
    Stateflow, developed by MathWorks, is a control logic tool used to model reactive systems via state charts and flow diagrams within a Simulink model...

     and Real-Time Workshop Embedded Coder, TargetLink
    TargetLink
    TargetLink is a software for automatic production code generation based on a subset of Simulink/Stateflow models by dSPACE GmbH. TargetLink requires an existing MATLAB/Simulink model....

  • Together Architect
    Borland Together
    Together is a product line from Borland that integrates a Java IDE, which originally had its roots in JBuilder with a UML modeling tool.The product line used to come in various levels of functionality, called Together Developer, Together Designer, and Together Architect, however, since 2007, they...

     from Borland
    Borland
    Borland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...

  • TOPCASED (Open Source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

    -Tool)
  • Uniface
    Uniface
    In archeology, 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 marginal edges, evidently formed for a specific...

     from Compuware
  • Sculpture Platform A comprehensive solution for .NET Model-Driven Development community from Modelingsoft

Further reading

  • Model Driven Architecture: Applying MDA to Enterprise Computing, David S. Frankel, John Wiley & Sons, ISBN 0-471-31920-1

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK