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).
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.
miniatura|Desenvolupament de programari basat en models amb objectiF
Visió general 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.
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.
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. 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 miniatura|322x322px|Un gràfic que mostra les instanciacions i els vincles de representació entre un metamodel, un model i un original (en francès) 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 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
Categoria:Enginyeria de programari