Un lenguaje de transformación de modelos en ingeniería de sistemas y software es un lenguaje diseñado específicamente para la transformación de modelos .
Descripción general
El concepto de transformación de modelos es fundamental para el desarrollo basado en modelos . Una transformación de modelos, que es esencialmente un programa que opera sobre modelos, se puede escribir en un lenguaje de programación de propósito general, como Java . Sin embargo, los lenguajes de transformación de modelos de propósito especial pueden ofrecer ventajas, como una sintaxis que facilita la referencia a los elementos del modelo. Para escribir transformaciones de modelos bidireccionales, que mantienen la coherencia entre dos o más modelos, un lenguaje de transformación de modelos bidireccional especializado es particularmente importante, ya que puede ayudar a evitar la duplicación que resultaría de escribir cada dirección de la transformación por separado.
Actualmente, la mayoría de los lenguajes de transformación de modelos se están desarrollando en el ámbito académico. La OMG ha estandarizado una familia de lenguajes de transformación de modelos llamada QVT , pero el campo aún es inmaduro. [1]
Existen debates en curso sobre los beneficios de los lenguajes de transformación de modelos especializados, en comparación con el uso de lenguajes de programación de propósito general (GPL), como Java . [2] Si bien los GPL tienen ventajas en términos de conocimiento profesional más ampliamente disponible y soporte de herramientas, los lenguajes de transformación especializados brindan más facilidades declarativas y características especializadas más poderosas para respaldar las transformaciones de modelos. [3]
Lenguajes de transformación disponibles
- ATL : un lenguaje de transformación desarrollado por el INRIA
- Beanbag (ver [1]): un lenguaje basado en operaciones para establecer la consistencia de los datos de forma incremental
- GReAT : un lenguaje de transformación disponible en GME
- Familia Epsilon (ver [2]): una plataforma de gestión de modelos que proporciona lenguajes de transformación para transformaciones de modelo a modelo, modelo a texto, actualización en el lugar, migración y fusión de modelos.
- F-Alloy [3]: un DSL que reutiliza parte de la sintaxis de Alloy y permite la especificación concisa de transformaciones de modelos computables de manera eficiente.
- Henshin (ver [4]): un lenguaje de transformación de modelos para EMF , basado en conceptos de transformación de gráficos , que proporciona capacidades de exploración del espacio de estados
- JTL: un lenguaje de transformación de modelos bidireccional diseñado específicamente para soportar transformaciones no biyectivas y propagación de cambios (ver [5]).
- Kermeta : un lenguaje de programación y modelado de propósito general, también capaz de realizar transformaciones
- Familia Lx (ver [6]): un conjunto de lenguajes de transformación de bajo nivel
- M2M es la implementación de Eclipse del estándar OMG QVT
- Mia-TL: un lenguaje de transformación desarrollado por Mia-Software
- Lenguaje de transformación de texto a modelo MOF : el OMG ha definido un estándar para expresar transformaciones M2T
- MOLA (ver [7]): un lenguaje de transformación gráfico de alto nivel integrado en Lx.
- MT: un lenguaje de transformación desarrollado en el King's College de Londres (Reino Unido) (basado en Converge PL)
- QVT : la OMG ha definido un estándar para expresar transformaciones M2M, llamado MOF/QVT o abreviado QVT.
- SiTra [8]: un enfoque de transformación pragmática basado en el uso de un lenguaje de programación estándar, por ejemplo, Java, C#
- Stratego/XT: un lenguaje de transformación basado en la reescritura con estrategias programables
- Tefkat : un lenguaje de transformación y un motor de transformación de modelos
- Tom : un lenguaje basado en la reescritura del cálculo, con búsqueda de patrones y estrategias
- UML-RSDS [9]: un enfoque de transformación de modelos y MDD utilizando UML y OCL
- VIATRA : un marco para un entorno de verificación y validación basado en la transformación
- YAMTL (ver [10]): un DSL interno para la transformación de modelos dentro de lenguajes JVM (Java, Groovy, Xtend, Kotlin), que presenta características clave como rendimiento en tiempo de ejecución, reutilización de la lógica de transformación, ejecución incremental e independencia de los IDE.
Véase también
- Transformación de datos
- Lenguaje específico de dominio (DSL)
- Filtro (software)
- Ingeniería basada en modelos (MDE)
- Arquitectura basada en modelos (MDA)
- Procesador de plantillas
- Lenguaje de transformación
- Transformación de gráficos
- Plantilla web
- XSLT : un lenguaje estándar
Referencias
- ^ France, Robert; Rumpe, Bernhard (2007). Desarrollo de software complejo basado en modelos: una hoja de ruta de investigación . Future of Software Engineering (FOSE '07). arXiv : 1409.6620 . doi :10.1109/FOSE.2007.14.
- ^ https://www.jot.fm/issues/issue_2019_03/article7.pdf [ URL básica PDF ]
- ^ Höppner, Stefan; Haas, Yves; Tichy, Matthias; Juhnke, Katharina (2022). "Ventajas y desventajas de los lenguajes de transformación de modelos (dedicados)". Ingeniería de software empírica . 27 (6). arXiv : 2201.13348 . doi : 10.1007/s10664-022-10194-7 . S2CID 251644010.
Lectura adicional
- Revista MDA: Arquitectura basada en modelos directamente de los maestros
- Arquitectura basada en modelos: aplicación de MDA a la informática empresarial , David S. Frankel , John Wiley & Sons, ISBN 0-471-31920-1
- Guía de la MDA de OMG Guía de la MDA Versión 1.0.1
- Arquitectura basada en modelos: visión, estándares y tecnologías emergentes en omg.org
- Introducción a la arquitectura basada en modelos en ibm.com
- De la composición de objetos a la transformación de modelos con MDA en omg.org
- Mens, T, y Van Gorp, P: Una taxonomía de la transformación de modelos, Notas electrónicas en informática teórica, Volumen 152, 27 de marzo de 2006, páginas 125-142
- Czarnecki, K, y Helsen, S: Clasificación de los enfoques de transformación de modelos. En: Actas del taller OOPSLA'03 sobre técnicas generativas en el contexto de la arquitectura basada en modelos, Anaheim, California, EE. UU. Publicado en la Web.
- Gronmo, R, y Oldevik, J: Un estudio empírico de la herramienta de transformación de modelos UML (UMT). [11]