Enginyeria basada en models
L'enginyeria basada en models (EDM) és una metodologia de desenvolupament de programari que se centra en la creació i l'explotació de models de domini, que són models conceptuals de tots els temes relacionats amb un problema específic. Per tant, destaca i pretén representacions abstractes del coneixement i les activitats que governen un domini d'aplicació concret, en lloc dels conceptes informàtics (és a dir, algorítmics).[1]
L'arquitectura basada en models (MDE) és un subcamp d'un enfocament de disseny de programari conegut com a enginyeria d'anada i tornada. L'abast de l'MDE és molt més ampli que el de l'arquitectura basada en models.[2]

Visió general
[modifica]L'enfocament MDE pretén augmentar la productivitat maximitzant la compatibilitat entre sistemes (mitjançant la reutilització de models estandarditzats), simplificant el procés de disseny (mitjançant models de patrons de disseny recurrents en el domini de l'aplicació) i promovent la comunicació entre individus i equips que treballen al sistema (mitjançant l'estandardització de la terminologia i les millors pràctiques utilitzades en el domini de l'aplicació). Per exemple, en el desenvolupament basat en models, els artefactes tècnics com ara el codi font, la documentació, les proves i més es generen algorítmicament a partir d'un model de domini.[3]
Un paradigma de modelització per a MDE es considera eficaç si els seus models tenen sentit des del punt de vista d'un usuari familiaritzat amb el domini i si poden servir com a base per implementar sistemes. Els models es desenvolupen mitjançant una comunicació extensa entre gestors de productes, dissenyadors, desenvolupadors i usuaris del domini de l'aplicació. A mesura que els models s'acosten a la seva finalització, permeten el desenvolupament de programari i sistemes.[4]
Algunes de les iniciatives MDE més conegudes són:
- La iniciativa Model-Driven Architecture (MDA) de l'Object Management Group (OMG), que s'aprofita en diversos dels seus estàndards com ara Meta-Object Facility, XMI, CWM, CORBA, Unified Modeling Language (per ser més precisos, l'OMG actualment promou l'ús d'un subconjunt d'UML anomenat fUML juntament amb el seu llenguatge d'acció, ALF, per a l'arquitectura basada en models; un enfocament anterior es basava en Executable UML i OCL), i QVT.[5]
- L'"ecosistema" Eclipse d'eines de programació i modelització representat en termes generals per l'(Eclipse Modeling Framework). Aquest framework permet la creació d'eines que implementen els estàndards MDA de l'OMG; però també és possible utilitzar-lo per implementar altres eines relacionades amb la modelització.
Història
[modifica]
Les primeres eines que van donar suport a l'enginyeria de programari assistida per ordinador (MDE) van ser les eines d'enginyeria de programari assistida per ordinador (CASE) desenvolupades a la dècada del 1980. Empreses com Integrated Development Environments (IDE – StP), Higher Order Software (ara Hamilton Technologies, Inc., HTI), Cadre Technologies, Bachman Information Systems i Logic Works (BP-Win i ER-Win) van ser pioneres en aquest camp.
El govern dels EUA es va involucrar en les definicions de modelització creant les especificacions IDEF. Amb diverses variacions de les definicions de modelització (vegeu Booch, Rumbaugh, Jacobson, Gane i Sarson, Harel, Shlaer i Mellor, i altres), finalment es van unir creant el Llenguatge Unificat de Modelització (UML). Rational Rose, un producte per a la implementació d'UML, va ser realitzat per Rational Corporation (Booch) que respon a l'automatització produint nivells més alts d'abstracció en el desenvolupament de programari. Aquesta abstracció promou models més simples amb un major enfocament en l'espai del problema. Combinat amb la semàntica executable, això eleva el nivell total d'automatització possible. L'Object Management Group (OMG) ha desenvolupat un conjunt d'estàndards anomenats Model-Driven Architecture (MDA), construint una base per a aquest enfocament avançat centrat en l'arquitectura.
Avantatges
[modifica]Segons Douglas C. Schmidt, les tecnologies d'enginyeria basades en models ofereixen un enfocament prometedor per abordar la incapacitat dels llenguatges de tercera generació per alleujar la complexitat de les plataformes i expressar conceptes de domini de manera eficaç.
Referències
[modifica]- ↑ «Model-Driven Engineering - an overview | ScienceDirect Topics» (en anglès). [Consulta: 30 agost 2025].
- ↑ «8 Reasons Why Model-Driven Approaches (will) Fail» (en anglès). InfoQ. [Consulta: 26 juliol 2023].
- ↑ Flatt, Amelie. Model-Driven Development of Akoma Ntoso Application Profiles - A Conceptual Framework for Model-Based Generation of XML Subschemas (en anglès). 1st. Heidelberg: Sprinter Nature, 2022. ISBN 978-3-031-14131-7.
- ↑ Rushikeshdhurat. «Model-driven Engineering» (en anglès), 06-06-2022. [Consulta: 30 agost 2025].
- ↑ Error: hi ha arxiuurl o arxiudata, però calen tots dos paràmetres.Object Management Group. «[Object Management Group OMG Trademarks]» (en anglès), 24-05-2006. [Consulta: 26 febrer 2008].