La ingeniería basada en modelos ( MDE ) es una metodología de desarrollo de software que se enfoca en crear y explotar modelos de dominio , que son modelos conceptuales de todos los temas relacionados con un problema específico. Por lo tanto, resalta y apunta a representaciones abstractas del conocimiento y las actividades que gobiernan un dominio de aplicación particular , en lugar de conceptos informáticos (es decir, algorítmicos).
MDE es un subcampo de un enfoque de diseño de software denominado ingeniería de ida y vuelta . El alcance de MDE es mucho más amplio que el de la arquitectura basada en modelos . [1]
El enfoque MDE está destinado a 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 personas y equipos que trabajan en el sistema. (a través de una estandarización de la terminología y las mejores prácticas utilizadas en el dominio de la aplicación). Por ejemplo, en el desarrollo basado en modelos, los artefactos técnicos como el código fuente, la documentación, las pruebas y más 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 el punto de vista de un usuario que está familiarizado con el dominio y si pueden servir como base para implementar sistemas. Los modelos se desarrollan a través de una amplia comunicación entre gerentes de producto, diseñadores, desarrolladores y usuarios del dominio de la aplicación. A medida que los modelos se acercan a su finalización, permiten el desarrollo de software y sistemas.
Algunas de las iniciativas MDE más conocidas son:
Las primeras herramientas que respaldaron MDE fueron las herramientas de ingeniería de software asistida por computadora ( CASE ) 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 de EE. UU. participó en las definiciones del modelado creando las especificaciones IDEF . Con varias variaciones de las definiciones de modelado (ver Booch , Rumbaugh , Jacobson , Gane y Sarson, Harel , Shlaer y Mellor , y otros) finalmente se unieron creando el Lenguaje Unificado de Modelado (UML). Rational Rose , un producto para la implementación de UML, fue creado por Rational Corporation (Booch) respondiendo que la automatización produce niveles más altos 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 basada en modelos (MDA), sentando las bases para este enfoque avanzado centrado en la arquitectura.
Según Douglas C. Schmidt , las tecnologías de ingeniería basadas en 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. [4]
Las herramientas de software notables para la ingeniería basada en modelos incluyen: