Articulo de referencia

Lenguaje de transformación de modelos

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 La ...

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

La noción de transformación de modelos es fundamental para el desarrollo dirigido por modelos . Una transformación de modelos, que es esencialmente un programa que opera sobre modelos, puede escribirse en un lenguaje de programación de propósito general, como Java . Sin embargo, los lenguajes de transformación de modelos especializados ofrecen 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 especializado en este tipo de transformaciones es especialmente importante, ya que ayuda 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 desarrollan 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 está en desarrollo. [ 1 ]

En curso se debaten las ventajas de los lenguajes de transformación de modelos especializados frente al uso de lenguajes de programación de propósito general (GPL), como Java . [ 2 ] Si bien los GPL ofrecen ventajas en cuanto a un conocimiento más accesible para los profesionales y un mayor soporte de herramientas, los lenguajes de transformación especializados proporcionan funcionalidades más declarativas y características especializadas más potentes para respaldar las transformaciones de modelos. [ 3 ]

Lenguajes de transformación disponibles

  • ATL  : un lenguaje de transformación desarrollado por INRIA
  • Beanbag  : un lenguaje basado en operaciones para establecer la consistencia de los datos de forma incremental [ 4 ]
  • GReAT  : un lenguaje de transformación disponible en el GME
  • Familia Epsilon  : una plataforma de gestión de modelos que proporciona lenguajes de transformación para transformaciones de modelo a modelo, modelo a texto, actualización in situ, migración y fusión de modelos. [ 5 ]
  • F-Alloy: un DSL que reutiliza parte de la sintaxis de Alloy y permite la especificación concisa de transformaciones de modelos computables de manera eficiente. [ 6 ]
  • Henshin  : un lenguaje de transformación de modelos para EMF , basado en conceptos de transformación de grafos , que proporciona capacidades de exploración del espacio de estados [ 7 ].
  • JTL  : un lenguaje de transformación de modelos bidireccional diseñado específicamente para admitir transformaciones no biyectivas y propagación de cambios [ 8 ].
  • Kermeta  : un lenguaje de modelado y programación de propósito general, capaz también de realizar transformaciones.
  • Familia Lx  : un conjunto de lenguajes de transformación de bajo nivel [ 9 ]
  • M2M es la implementación en Eclipse del estándar OMG QVT.
  • Mia-TL  : un lenguaje de transformación desarrollado por Mia-Software
  • Lenguaje de transformación de modelo a texto MOF : la OMG ha definido un estándar para expresar transformaciones M2T.
  • MOLA  : un lenguaje de transformación gráfica de alto nivel construido sobre Lx. [ 10 ]
  • 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, denominado MOF/QVT o, simplemente, QVT.
  • SiTra  : un enfoque de transformación pragmático basado en el uso de un lenguaje de programación estándar, por ejemplo Java, C# [ 11 ]
  • 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 el cálculo de reescritura, con coincidencia de patrones y estrategias.
  • UML-RSDS  : una transformación de modelos y un enfoque MDD utilizando UML y OCL [ 12 ]
  • VIATRA  : un marco para un entorno de verificación y validación basado en transformaciones
  • YAMTL: 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. [ 13 ]

Véase también

Referencias

  1. 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 .
  2. "El futuro de los lenguajes de transformación de modelos: un debate abierto de la comunidad" (PDF) . Archivado del original (PDF) el 15 de febrero de 2020.
  3. 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 . 
  4. "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com . Consultado el 21 de septiembre de 2025 .
  5. "Épsilon" . eclipse.dev . Consultado el 21 de septiembre de 2025 .
  6. Gammaitoni, Loïc. "Lightning" . lightning.gforge.uni.lu . Archivado del original el 15 de diciembre de 2020. Consultado el 21 de septiembre de 2025 .
  7. Web, EclipseWeb (31-01-2013). "Henshin | projects.eclipse.org" . projects.eclipse.org . Consultado el 21-09-2025 .
  8. "JTL" . jtl.univaq.it . Consultado el 21 de septiembre de 2025 .
  9. "Biblioteca Académica Letona" .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  10. "Páginas de MOLA" . mola.mii.lu.lv. Consultado el 21 de septiembre de 2025 .
  11. "Escuela de Ciencias de la Computación" . Universidad de Birmingham . Consultado el 21 de septiembre de 2025 .
  12. Anónimo (5 de febrero de 2019). "UML ágil | projects.eclipse.org" . projects.eclipse.org . Consultado el 21 de septiembre de 2025 .
  13. "YAMTL" . yamtl.github.io . Consultado el 21-09-2025 .

Lecturas adicionales

  • Revista MDA: Arquitectura dirigida por modelos directamente de los maestros
  • Arquitectura dirigida por modelos: Aplicación de MDA a la informática empresarial , David S. Frankel , John Wiley & Sons, ISBN 0-471-31920-1
  • Guía OMG MDA Guía 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 modelosen 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 , Electronic Notes in Theoretical Computer Science, 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 dirigida por modelos, Anaheim, California, EE. UU. Publicado en línea.
  • Gronmo, R. y Oldevik, J  .: Un estudio empírico de la herramienta de transformación de modelos UML (UMT).