Content deleted Content added
→Tools: Add listing, reduce wording Tags: Mobile edit Mobile web edit |
|||
(14 intermediate revisions by 10 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 [[
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). 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>
Line 10 ⟶ 12:
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=
* 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.
==
[[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
The US government got involved in the modeling definitions creating the [[IDEF]] specifications. With several variations of the modeling definitions (see [[Booch method|Booch]], [[
▲[[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 (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.
==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=
▲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—and the inability of third-generation languages to alleviate this complexity and express ___domain concepts effectively—is to develop Model-Driven Engineering (MDE) technologies..."''</ref>
==Tools==
Line 25 ⟶ 27:
{{div col|colwidth=27em}}
* [[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 [[
* [[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 44 ⟶ 49:
* [[Vector Informatik|PREEvision]] from [[Vector Informatik]]
* [[Telelogic Rhapsody|Rhapsody]] from [[IBM]]
* [[PowerDesigner]] from [[SAP SE|SAP]]
* [[Simulink]] from [[MathWorks]]
* [[Software Ideas Modeler]] from Dusan Rodina
* [[Eclipse Sirius|Sirius]] an Eclipse
* [[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 73 ⟶ 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 79 ⟶ 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),
* {{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==
* [
{{Software engineering}}
[[Category:Systems engineering]]
|