La ingeniería dirigida por modelos ( MDE, por sus siglas en inglés) es una metodología de desarrollo de software que se centra en la creación y explotación de modelos de dominio , que son modelos conceptuales de todos los temas relacionados con un problema específico. Por lo tanto, destaca y busca representaciones abstractas del conocimiento y las actividades que rigen un dominio de aplicación particular , en lugar de los conceptos computacionales (es decir, algorítmicos ).
MDE es un subcampo de un enfoque de diseño de software conocido como ingeniería de ida y vuelta . El alcance de MDE es mucho más amplio que el de la arquitectura dirigida por modelos . [ 1 ]
Descripción general
El enfoque MDE busca aumentar la productividad maximizando la compatibilidad entre sistemas (mediante la reutilización de modelos estandarizados), simplificando el proceso de diseño (mediante modelos de patrones de diseño recurrentes en el dominio de la aplicación) y promoviendo la comunicación entre individuos y equipos que trabajan en el sistema (mediante la estandarización de la terminología y las mejores prácticas utilizadas en el dominio de la aplicación). Por ejemplo, en el desarrollo dirigido por modelos, los artefactos técnicos como el código fuente, la documentación, las pruebas, etc., se generan algorítmicamente a partir de un modelo de dominio. [ 2 ]
Un paradigma de modelado para MDE se considera eficaz si sus modelos tienen sentido desde la perspectiva de un usuario familiarizado con el dominio y si sirven de base para la implementación de sistemas. Los modelos se desarrollan mediante una comunicación fluida entre gestores de producto, diseñadores, desarrolladores y usuarios del dominio de la aplicación. A medida que los modelos se completan, permiten el desarrollo de software y sistemas.
Algunas de las iniciativas de MDE más conocidas son:
- La iniciativa del Object Management Group (OMG) , Model-Driven Architecture (MDA), es aprovechada por varios de sus estándares, como Meta-Object Facility , XMI , CWM , CORBA , Unified Modeling Language (para ser más precisos, el OMG actualmente promueve el uso de un subconjunto de UML llamado fUML junto con su lenguaje de acción, ALF , para la arquitectura dirigida por modelos; un enfoque anterior se basaba en Executable UML y OCL , en cambio), y QVT . [ 3 ]
- El ecosistema de herramientas de programación y modelado de Eclipse se representa, en términos generales, mediante el marco de modelado de Eclipse ( Eclipse Modeling Framework ). Este marco permite la creación de herramientas que implementan los estándares MDA de la OMG; sin embargo, también es posible utilizarlo para implementar otras herramientas relacionadas con el modelado.
Historia

Las primeras herramientas para dar soporte al MDE fueron las herramientas de ingeniería de software asistida por ordenador ( CASE , por sus siglas en inglés) desarrolladas en la década de 1980. Empresas como Integrated Development Environments (IDE – StP), Higher Order Software (ahora Hamilton Technologies, Inc., HTI), Cadre Technologies, Bachman Information Systems y Logic Works (BP-Win y ER-Win) fueron pioneras en este campo.
El gobierno estadounidense se involucró en la definición de modelos, creando las especificaciones IDEF . Con varias variaciones de las definiciones de modelos (véase Booch , Rumbaugh , Jacobson , Gane y Sarson, Harel , Shlaer y Mellor , entre otros), finalmente se unieron para crear el Lenguaje Unificado de Modelado (UML). Rational Rose , un producto para la implementación de UML, fue desarrollado por Rational Corporation (Booch) en respuesta a la automatización que proporciona mayores niveles de abstracción en el desarrollo de software. Esta abstracción promueve modelos más simples con un mayor enfoque en el espacio del problema. Combinado con la semántica ejecutable, esto eleva el nivel total de automatización posible. El Object Management Group (OMG) ha desarrollado un conjunto de estándares llamado Arquitectura Dirigida por Modelos (MDA), que sienta las bases para este enfoque avanzado centrado en la arquitectura.
El primer artículo de investigación que hace referencia explícita a MDE parece ser [ 4 ] . Estas ideas se originaron a partir del trabajo del grupo "Precise UML" (pUML) de investigadores que incluyen a Robert France , Bernhard Rumpe , Kevin Lano y otros.
Ventajas
Según Douglas C. Schmidt , las tecnologías de ingeniería dirigida por modelos ofrecen un enfoque prometedor para abordar la incapacidad de los lenguajes de tercera generación para aliviar la complejidad de las plataformas y expresar conceptos de dominio de manera efectiva. [ 5 ]
Herramientas
Entre las herramientas de software más destacadas para la ingeniería basada en modelos se incluyen:
- AADL del Instituto de Ingeniería de Software de Carnegie Mellon
- Acceleo, un generador de código abierto de Obeo.
- Actifsource
- AgileUML es un conjunto de herramientas MDE de código abierto de AgileMDE Ltd.
- Ash Framework es un framework de aplicaciones declarativo de código abierto basado en Elixir.
- Lenguaje de transformación ATLAS o ATL, un lenguaje de transformación de modelos de Obeo
- DUALLy , un marco MDE para crear interoperabilidad
- Marco de modelado de Eclipse (EMF)
- Arquitecto empresarial de Sparx Systems
- eTrice es una implementación de código abierto del estándar de modelado orientado a objetos en tiempo real.
- Sistema genérico de modelado de Eclipse (GEMS)
- GeneXus es una solución de desarrollo multiplataforma, multilingüe, declarativa y basada en el conocimiento .
- Marco de modelado gráfico (GMF)
- JetBrains MPS , un sistema de metaprogramación de JetBrains
- MagicDraw de No Magic Inc.
- MDriven : una plataforma de desarrollo basada en UML y orientada a modelos que genera aplicaciones .NET y web a partir de modelos ejecutables.
- MERODE JMermaid de KU Leuven (educativo)
- MetaEdit+ de MetaCase
- ModelCenter de Phoenix Integration
- Open ModelSphere
- OptimalJ de Compuware
- PREEvisión de Vector Informatik
- Rapsodia de IBM
- PowerDesigner de SAP
- Simulink de MathWorks
- Modelador de ideas de software de Dusan Rodina
- Sirius, un proyecto de código abierto de Eclipse para crear entornos de trabajo de modelado gráfico personalizados.
- Juntos, arquitectos de Borland
- Paraguas de KDE
- Umple, de la Universidad de Ottawa
- Uniface de Compuware
- YAKINDU Statechart Tools es una herramienta de código abierto basada en Eclipse.
Véase también
- Gestión del ciclo de vida de las aplicaciones (ALM)
- Modelo y Notación de Procesos de Negocio (BPMN)
- Desarrollo impulsado por el negocio (BDD)
- Diseño dirigido por el dominio (DDD)
- Lenguaje específico de dominio (DSL)
- Modelado específico de dominio (DSM)
- Multimodelado específico del dominio
- Programación orientada al lenguaje (LOP)
- Lista de herramientas del Lenguaje Unificado de Modelado
- Transformación de modelos (por ejemplo, usando QVT )
- Pruebas basadas en modelos (MBT)
- Nivel de madurez del modelo (MML)
- Ingeniería de sistemas basada en modelos (MBSE)
- Marco de modelado orientado a servicios (SOMF)
- Fábrica de software (SF)
- Modelado basado en historias (SDM)
- Open API , especificación de código abierto para la descripción de modelos y operaciones para la interoperabilidad HTTP y REST APIc
Referencias
- ↑ "8 razones por las que los enfoques basados en modelos (fracasarán)" . InfoQ . Consultado el 26 de julio de 2023 .
- ↑ Flatt, Amelie; Langner, Arne; Leps, Olof (2022). Desarrollo dirigido por modelos de perfiles de aplicaciones Akoma Ntoso: un marco conceptual para la generación basada en modelos de subesquemas XML (1.ª ed.). Heidelberg: Sprinter Nature. ISBN 978-3-031-14131-7.
- ↑ Object Management Group (24 de mayo de 2006). "Marcas comerciales de OMG" . Consultado el 26 de febrero de 2008 .
- ↑ Kent, Stuart (2002). «Ingeniería dirigida por modelos» . Métodos formales integrados . Notas de clase en ciencias de la computación. Vol. 2335. pp. 286–298 . doi : 10.1007/3-540-47884-1_16 . ISBN 978-3-540-43703-1.
- ↑ Schmidt, DC (febrero de 2006). "Ingeniería dirigida por modelos" (PDF) . IEEE Computer . 39 (2). doi : 10.1109/MC.2006.58 . S2CID 10006139. Archivado del original (PDF) el 9 de septiembre de 2006. Consultado el 16 de mayo de 2006 . " Un enfoque prometedor para abordar la complejidad de la plataforma —y la incapacidad de los lenguajes de tercera generación para aliviar esta complejidad y expresar conceptos de dominio de manera efectiva— es desarrollar tecnologías de ingeniería dirigida por modelos (MDE)..."
Lecturas adicionales
- David S. Frankel , Arquitectura dirigida por modelos: Aplicación de MDA a la informática empresarial , John Wiley & Sons, ISBN 0-471-31920-1
- Marco Brambilla, Jordi Cabot, Manuel Wimmer, Ingeniería de software basada en modelos en la práctica , prólogo de Richard Soley ( Presidente de OMG ), Morgan & Claypool, EE. UU., 2012, Synthesis Lectures on Software Engineering #1. 182 páginas. ISBN 9781608458820(tapa blanda), ISBN 9781608458837(libro electrónico). https://www.mdse-book.com
- da Silva, Alberto Rodrigues (2015). "Ingeniería dirigida por modelos: una revisión respaldada por un modelo conceptual unificado" . Computer Languages, Systems & Structures . 43 (43): 139– 155. doi : 10.1016/j.cl.2015.06.001 .
Enlaces externos
- Arquitectura basada en modelos: visión, estándares y tecnologías emergentes en omg.org
- Ingeniería de sistemas
- Lenguaje Unificado de Modelado