Ingeniería basada en modelos - Model-driven engineering

La ingeniería dirigida por modelos ( MDE ) 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 apunta a representaciones abstractas del conocimiento y las actividades que gobiernan un dominio de aplicación particular , en lugar de los conceptos informáticos (es decir, algorítmicos).

Visión general

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 (a través de 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. (a través de una estandarización de la terminología y las mejores prácticas utilizadas en el dominio de la aplicación).

Un paradigma de modelado para MDE se considera efectivo 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 los 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:

  • La iniciativa Object Management Group (OMG) Arquitectura basada en modelos (MDA) que se aprovecha de varios de sus estándares, como Meta-Object Facility , XMI , CWM , CORBA , Unified Modeling Language (para ser más precisos, OMG actualmente promueve el uso de un subconjunto de UML llamado fUML junto con su lenguaje de acción, ALF , para la arquitectura basada en modelos; un enfoque anterior se basaba en Executable UML y OCL , en su lugar) y QVT .
  • El "ecosistema" de Eclipse de herramientas de programación y modelado representado en términos generales por el ( Eclipse Modeling Framework ). Este marco permite la creación de herramientas implementando los estándares MDA de la OMG; pero también es posible utilizarlo para implementar otras herramientas relacionadas con el modelado.

Historia

Un gráfico que muestra las instancias y los vínculos de representación entre un metamodelo, un modelo y un original.

Las primeras herramientas para apoyar 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 el campo.

El gobierno de los Estados Unidos se involucró en las definiciones de 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 para crear el Lenguaje de modelado unificado (UML). Rational Rose , un producto para la implementación de UML, fue realizado por Rational Corporation (Booch) y la automatización de respuesta 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 de problemas. 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 llamados arquitectura dirigida por modelos (MDA), la construcción de una base de este enfoque avanzado arquitectura enfocada.

Según Douglas C. Schmidt , las tecnologías de ingeniería impulsadas 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 eficaz.

Instrumentos

Las herramientas de software notables para la ingeniería basada en modelos incluyen:

Ver también

Referencias

Otras lecturas

enlaces externos