Model-driven engineering: Difference between revisions

Content deleted Content added
Tools: Add listing, reduce wording
Tags: Mobile edit Mobile web edit
 
(24 intermediate revisions by 16 users not shown)
Line 2:
{{more footnotes|date=August 2014}}
{{Software development process}}
'''Model-driven engineering''' ('''MDE''') is a [[software development methodology]] that focuses on creating and exploiting [[___domain model]]s, which are [[conceptual model (computer science)|conceptual models]] of all the topics related to a specific problem. Hence, it highlights and aims at [[Representationrepresentation (mathematics)|abstract representations]] of the [[Knowledge representation and reasoning|knowledge]] and activities that govern a particular [[___domain (software engineering)|application ___domain]], rather than the computing (i.e. algorithmic) concepts.
 
MDE is a subfield of a [[software design]] approach referred as [[round-trip engineering]]. The scope of the MDE is much wider than that of the [[model-driven architecture|Model-Driven Architecture]].<ref>{{Cite web |title=8 Reasons Why Model-Driven Approaches (will) Fail |url=https://www.infoq.com/articles/8-reasons-why-MDE-fails/ |access-date=2023-07-26 |website=InfoQ |language=en}}</ref>
== 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]]s used in the application ___domain).
== 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]]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.<ref>{{Cite book |last=Flatt |first=Amelie |title=Model-Driven Development of Akoma Ntoso Application Profiles - A Conceptual Framework for Model-Based Generation of XML Subschemas |last2=Langner |first2=Arne |last3=Leps |first3=Olof |publisher=Sprinter Nature |year=2022 |isbn=978-3-031-14131-7 |edition=1st |___location=Heidelberg |language=en}}</ref>
 
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]], [[XML Metadata Interchange|XMI]], [[Common Warehouse Metamodel|CWM]], [[CORBA]], [[Unified Modeling Language]] (to be more precise, the OMG currently promotes the use of a subset of UML called [[Executable UML#fUML and ALF|fUML]] together with its action language, [[Executable UML#fUML and ALF|ALF]], for model-driven architecture; a former approach relied on Executable UML and [[Object Constraint Language|OCL]], instead), and [[QVT]].<ref name="omgtm">{{cite web|author=Object Management Group|author-link=Object Management Group|title=OMG Trademarks|url=httphttps://www.omg.org/legal/tm_list.htm|access-date=2008-02-26|date=2006-05-24}}</ref>
* The [[Eclipse (software)|Eclipse]] "eco-system" of programming and modelling tools represented in general terms by the ([[Eclipse Modeling Framework]]). 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 ==
[[File:Métamodèle, modèle et original.png|thumb|A chart showing the instantiations and representation links between a metamodel, a model and an original (in French)|250px|right]]The first tools to support MDE were the Computer-Aided Software Engineering ([[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, [[Charles Bachman#Bachman Information Systems|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 method|Booch]], [[Objectobject-modeling technique|Rumbaugh]], [[Objectobject-oriented software engineering|Jacobson]], Gane and Sarson, [[Statestate diagram#Harel statechart|Harel]], [[Shlaer-MellorShlaer–Mellor method|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|Model-Driven Architecture]] (MDA), building a foundation for this advanced architecture-focused approach.
[[File:Métamodèle, modèle et original.png|thumb|A chart showing the instantiations and representation links between a metamodel, a model and an original|250px|right]]The first tools to support MDE were the Computer-Aided Software Engineering ([[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, [[Charles Bachman#Bachman Information Systems|Bachman Information Systems]], and [[Logic Works]] (BP-Win and ER-Win) were pioneers in the field.
 
==Advantages==
The US government got involved in the modeling definitions creating the [[IDEF]] specifications. With several variations of the modeling definitions (see [[Booch method|Booch]], [[Object-modeling technique|Rumbaugh]], [[Object-oriented software engineering|Jacobson]], Gane and Sarson, [[State diagram#Harel statechart|Harel]], [[Shlaer-Mellor|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.<ref>{{cite journal|last=Schmidt|first=D.C.|title=Model-Driven Engineering|journal=[[IEEE Computer]]|volume=39|issue=2|date=February 2006|doi=10.1109/MC.2006.58|s2cid=10006139|url=httphttps://www.cs.wustl.edu/~schmidt/PDF/GEI.pdf|access-date=2006-05-16|archive-url=https://web.archive.org/web/20060909034327/http://www.cs.wustl.edu/%7Eschmidt/PDF/GEI.pdf|archive-date=2006-09-09|url-status=dead}}, ''"A promising approach to address platform complexity&mdash;and the inability of third-generation languages to alleviate this complexity and express ___domain concepts effectively&mdash;is to develop Model-Driven Engineering (MDE) technologies..."''</ref>
 
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.<ref>{{cite journal|last=Schmidt|first=D.C.|title=Model-Driven Engineering|journal=[[IEEE Computer]]|volume=39|issue=2|date=February 2006|doi=10.1109/MC.2006.58|s2cid=10006139|url=http://www.cs.wustl.edu/~schmidt/PDF/GEI.pdf|access-date=2006-05-16|archive-url=https://web.archive.org/web/20060909034327/http://www.cs.wustl.edu/%7Eschmidt/PDF/GEI.pdf|archive-date=2006-09-09|url-status=dead}}, ''"A promising approach to address platform complexity&mdash;and the inability of third-generation languages to alleviate this complexity and express ___domain concepts effectively&mdash;is to develop Model-Driven Engineering (MDE) technologies..."''</ref>
 
==Tools==
Notable software tools for model-driven engineering include:
{{div col|colwidth=27em}}
* [[AgileUML]] from AgileMDE Ltd (https://projects.eclipse.org/projects/modeling.agileuml)
* [[Architecture Analysis & Design Language|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
* [[Ash Framework]] an open source Elixir-based declarative application framework
* [[ATLAS Transformation Language]] or ATL, a model transformation language from Obeo
* [[DUALLy]], an MDE framework to create interoperability
* [[Eclipse Modeling Framework]] (EMF)
* [[Enterprise Architect (software)|Enterprise Architect]] from [[Sparx Systems]]
* [[eTrice]] an open source implementation of the [[Real-Time Object-Oriented Modeling]] standard
* [[Generic Eclipse Modeling System]] (GEMS)
* [[GeneXus]] a [[Knowledgeknowledge representation|Knowledgeknowledge]]-based, [[Declarativedeclarative language|declarative]], multi-platform, multi-language development solution
* [[Genio]] a CASE / RAD ([[Rapid Application Development]]) / [[Agile software development|Agile]] / Model Driven Platform developed by [[Quidgest]]
* [[Graphical Modeling Framework]] (GMF)
* [[JetBrains MPS]], a [[metaprogramming]] system from [[JetBrains]]
* [[MagicDraw]] from No Magic Inc
* [[MDriven]] – a UML-based, model-driven development platform that generates .NET and web applications from executable models.
* [[MERODE]] JMermaid from KU Leuven (educational)
* [[MetaEdit+]] from MetaCase
Line 42 ⟶ 47:
* [[Open ModelSphere]]
* [[OptimalJ]] from [[Compuware]]
* [[Papyrus]] from [[Eclipse]] (https://www.eclipse.org/papyrus/)
* [[Vector Informatik|PREEvision]] from [[Vector Informatik]]
* [[Telelogic Rhapsody|Rhapsody]] from [[IBM]]
* [[RISE Editor]] from RISE to Bloome Software
* [[PowerDesigner]] from [[SAP SE|SAP]]
* [[Simulink]] from [[MathWorks]]
* [[Software Ideas Modeler]] from Dusan Rodina
* [[Eclipse Sirius|Sirius]] an Eclipse Openopen Sourcesource project to create custom graphical modeling workbenches
* [[SystemWeaver]] from [[Systemite]]
* [[Eclipse Sirius|Sirius]] an Eclipse Open Source project to create custom graphical modeling workbenches
* [[Borland Together|Together Architect]] from [[Borland]]
* [[Umbrello]] by KDE
* [[Umple]] from the University of Ottawa
* [[Uniface (programming language)|Uniface]] from Compuware
* [[YAKINDU Statechart Tools]] open source tool build on top of [[Eclipse (software)|Eclipse]]
 
{{div col end}}
 
Line 75 ⟶ 77:
* [[Software factory]] (SF)
* [[Story-driven modeling]] (SDM)
* [[Open API]], open source specification for description of models and operations for HTTP interoperation and REST APIc
 
==References==
Line 81 ⟶ 84:
==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]] ([[Object Management Group|OMG]] Chairman), Morgan & Claypool, USA, 2012, Synthesis Lectures on Software Engineering #1. 182 pages. {{ISBN|9781608458820}} (paperback), {{ISBN|9781608458837}} (ebook). httphttps://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==
* [httphttps://www.omg.org/mda/mda_files/Model-Driven_Architecture.pdf ''Model-Driven Architecture: Vision, Standards And Emerging Technologies''] at omg.org
{{Software engineering}}
 
[[Category:Systems engineering]]