
QVT ( Consulta/Vista/Transformación ) es un conjunto estándar de lenguajes para la transformación de modelos definido por el Object Management Group . [ 1 ]
Descripción general
La transformación de modelos es una técnica clave en la arquitectura dirigida por modelos . Como indica el nombre QVT, el estándar OMG abarca transformaciones, vistas y consultas en conjunto. Las consultas y vistas de modelos pueden considerarse tipos especiales de transformación de modelos, siempre que utilicemos una definición suficientemente amplia de transformación de modelos: una transformación de modelos es un programa que opera sobre modelos.
El estándar QVT define tres lenguajes de transformación de modelos. Todos ellos operan sobre modelos que cumplen con los metamodelos de Meta-Object Facility (MOF) 2.0; la transformación especifica qué metamodelos se utilizan. Una transformación en cualquiera de los tres lenguajes QVT puede considerarse un modelo que cumple con uno de los metamodelos especificados en el estándar. El estándar QVT integra el estándar OCL 2.0 y lo amplía con características imperativas.
- QVT-Operational es un lenguaje imperativo diseñado para escribir transformaciones unidireccionales.
- QVT-Relations es un lenguaje declarativo diseñado para permitir la escritura de transformaciones de modelos tanto unidireccionales como bidireccionales. Una transformación incorpora una relación de consistencia en conjuntos de modelos. La consistencia se puede verificar ejecutando la transformación en modo de solo verificación; la transformación devuelve verdadero si el conjunto de modelos es consistente según la transformación y falso en caso contrario. La misma transformación se puede usar en modo de aplicación para intentar modificar uno de los modelos de manera que el conjunto de modelos sea consistente. El lenguaje QVT-Relations cuenta con una sintaxis concreta tanto textual como gráfica.
- QVT-Core es un lenguaje declarativo diseñado para ser simple y servir como destino de la traducción desde QVT-Relations. Sin embargo, QVT-Core nunca ha tenido una implementación completa y, de hecho, no es tan expresivo como QVT-Relations. [ 2 ] Por lo tanto, la arquitectura QVT que se muestra arriba es engañosa: la transformación de QVT-Relations a QVT-Core que se presenta en el estándar QVT no conserva la semántica.
Finalmente, QVT-BlackBox es un mecanismo para invocar funciones de transformación expresadas en otros lenguajes (por ejemplo, XSLT o XQuery ).
Aunque QVT tiene un alcance amplio, no abarca todo lo que se ha considerado como una transformación de modelo, vista o consulta. Por ejemplo, los lenguajes QVT no permiten transformaciones hacia o desde modelos textuales, ya que cada modelo debe ajustarse a algún metamodelo MOF 2.0. Las transformaciones de modelo a texto están siendo estandarizadas por separado por OMG (véase MOFM2T ).
Historia
En 2002, OMG emitió una solicitud de propuestas (RFP) sobre consultas, vistas y transformaciones de MOF para buscar un estándar compatible con el conjunto de recomendaciones de la arquitectura dirigida por modelos (MDA) (UML, MOF, OCL, etc.).
Varias empresas e instituciones de investigación dieron respuestas que evolucionaron durante tres años hasta producir una propuesta común, basada en un borrador del investigador británico Dr. Laurence Tratt. La primera versión se presentó y aprobó en 2005. [ 3 ] La versión 1.1 de QVT se publicó en enero de 2011. [ 1 ]
Implementaciones
QVT-Operacional:
- Borland Together contiene una implementación de QVT Operational, que ha sido aportada [ 4 ] a la Fundación Eclipse y ahora se está desarrollando como el proyecto Eclipse M2M Operational QVT.
- Eclipse M2M Operational QVT: implementación oficial de código abierto de Eclipse para QVT Operational. [ 5 ]
- MagicDraw cuenta con el complemento QVT, que utiliza la implementación operativa de QVT proporcionada por el proyecto Eclipse M2M .
- SmartQVT : una implementación de código abierto para Eclipse (Orange Labs) del lenguaje QVT-Operational.
QVT-Core:
- OptimalJ : La implementación de acceso anticipado del lenguaje QVT-Core se encontraba en la versión 3.4 de OptimalJ de Compuware . Sin embargo, OptimalJ ha sido descontinuado.
Relaciones QVT:
- ModelMorf: Una herramienta propietaria de Tata Consultancy Services Ltd. Totalmente compatible con el lenguaje QVT-Relations. La versión de prueba [ 6 ] proporciona una utilidad de línea de comandos que consume y produce modelos en formato XMI. Una versión completa, integrada en el repositorio, está disponible como parte de su marco de modelado propietario. [ 7 ]
- MediniQVT: [ 8 ] Motor de transformación basado en EMF con licencia EPL para el motor y editor/depurador con licencia no comercial. Utiliza la sintaxis de QVT-Relations, pero se aparta deliberadamente de la semántica del estándar OMG. [ 9 ]
- El proyecto Eclipse M2M tiene como objetivo producir una implementación de QVT Core y Relations. [ 5 ]
- Echo, [ 10 ] una herramienta de código abierto basada en EMF para la reparación y transformación de modelos construida sobre el buscador de modelos Alloy , que proporciona una implementación de la sintaxis de QVT-Relations, pero utilizando una semántica que se aparta deliberadamente de la especificación OMG.
Similar a QVT:
- jQVT: [ 11 ] Un motor QVT compilado para Java, que utiliza Xbase en lugar de OCL. Una transformación relacional QVT se compila primero en código fuente Java, que luego genera directamente el modelo de destino a partir de los modelos fuente en tiempo de ejecución, sin interpretar nuevamente la regla de transformación. Admite modelos EMF, así como objetos Java simples.
- Tefkat : una implementación de código abierto del lenguaje Tefkat, similar a QVT. Código abierto.
- ATL : un componente del proyecto M2M Eclipse. ATL es un lenguaje y motor de transformación similar a QVT, con una gran comunidad de usuarios y una biblioteca de transformaciones de código abierto.
- Marco de transformación de modelos (MTF): [ 12 ] un proyecto de IBM alphaWorks, actualizado por última vez en 2007.
Véase también
- Lista de lenguajes de transformación disponibles
- Lenguaje de transformación de modelo a texto MOF : especificación del lenguaje de transformación de OMG para expresar transformaciones M2T.
- Ingeniería basada en modelos (MDE)
- Arquitectura Dirigida por Modelos (MDA): la visión de OMG sobre MDE
- Lenguaje específico de dominio (DSL)
- Meta-Object Facility (MOF): un lenguaje para escribir metamodelos
- Lenguaje de Restricciones de Objetos (OCL): un lenguaje de restricciones (y consultas) de modelos.
- Transformación del modelo
- Lenguaje de transformación de modelos
- Metamodelo
Referencias
- 1 2 Bast, Wim; Murphree, Michael; Lawley, Michael; Duddy, Keith; Belaunde, Mariano; Griffin, Catherine; Sendall, Shane; Vojtisek, Didier; Steel, Jim; Helsen, Simon; Tratt, Laurence; Reddy, Sreedhar; Venkatesh, R.; Blanc, Xavier; Dvorak, Radek; Willink, Ed (enero de 2011). "Meta Object Facility (MOF) 2.0 Query/View/Transformation (QVT)" (pdf) . Object Management Group . Recuperado el 9 de mayo de 2011 .
- ↑ Stevens, Perdita (2011). "Un enfoque simple de teoría de juegos para las relaciones QVT de solo verificación". Software and Systems Modeling . 12. Berlín/Heidelberg: Springer : 175–199 . doi : 10.1007/s10270-011-0198-8 . hdl : 20.500.11820/58a19b4d-3782-4081-ad75-175c4626a62e .
- ↑ Bast, Wim; Murphree, Michael; Lawley, Michael; Duddy, Keith; Belaunde, Mariano; Griffin, Catherine; Sendall, Shane; Vojtisek, Didier; Steel, Jim; Helsen, Simon; Tratt, Laurence; Reddy, Sreedhar; Venkatesh, R.; Blanc, Xavier; Dvorak, Radek; Willink, Ed. "Meta Object Facility (MOF) 2.0 Query/View/Transformation (QVT)" (pdf) . Object Management Group . Consultado el 1 de noviembre de 2013 .
- ↑ [m2m-dev ] Contribución de Borland QVT Archivado el 25 de febrero de 2012 en Wayback Machine
- 1 2 Proyecto Eclipse M2M. "Modelo a modelo (M2M)" . Archivado del original el 3 de diciembre de 2012. Recuperado el 9 de mayo de 2011 .Consultado el 9 de mayo de 2011.
- ↑ ModelMorf beta. "Formulario de registro de ModelMorf" . Archivado del original el 23 de marzo de 2012. Consultado el 9 de mayo de 2011 .Consultado el 9 de mayo de 2011.
- ↑ Marco de generación de código TCS (anteriormente conocido como MasterCraft). "Marco de generación de código TCS: Productos tecnológicos TCS: Ofertas: TCS" . Archivado del original el 9 de agosto de 2011. Consultado el 9 de mayo de 2011 .Consultado el 9 de mayo de 2011.
- ↑ Medini QVT. "Medini QVT" . Archivado del original el 29 de julio de 2016. Consultado el 13 de agosto de 2009 .Consultado el 9 de mayo de 2011.
- ↑ Kiegeland, J.; Eichler, H. (febrero de 2008), "medini QVT workshop", medini QVT workshop , Enschede, Telematica Instituut: ikv++ technologies ag, archivado del original (ppt) el 3 de marzo de 2016 , recuperado el 24 de septiembre de 2015
- ↑ Eco.Consultado el 2 de noviembre de 2013.
- ↑ jQVT. "Descarga de JQVT | SourceForge.net" . Archivado del original el 7 de marzo de 2016. Consultado el 10 de noviembre de 2012 .
- ↑ Marco de transformación de modelos. http://www.alphaworks.ibm.com/tech/mtf Archivado el 2 de febrero de 2007 en Wayback Machine . Consultado el 9 de mayo de 2011.
- Ingeniería de sistemas
- Lenguaje Unificado de Modelado