QVT ( Consulta / Vista / Transformación ) es un conjunto estándar de lenguajes para la transformación de modelos definidos por el Grupo de Gestión de Objetos . [1]
Descripción general
La transformación de modelos es una técnica clave utilizada en la arquitectura basada en modelos . Como indica el nombre QVT, el estándar OMG cubre transformaciones, vistas y consultas en conjunto. Las consultas de modelo y las vistas de modelo pueden verse como tipos especiales de transformación de modelo, siempre que utilicemos una definición suficientemente amplia de transformación de modelo: una transformación de modelo es un programa que opera sobre modelos.
El estándar QVT define tres lenguajes de transformación de modelos. Todos ellos operan en modelos que se ajustan a los metamodelos Meta-Object Facility (MOF) 2.0; la transformación establece qué metamodelos se utilizan. Una transformación en cualquiera de los tres lenguajes QVT puede considerarse en sí misma como un modelo, conforme a uno de los metamodelos especificados en el estándar. El estándar QVT integra el estándar OCL 2.0 y también 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 unidireccionales y bidireccionales. Una transformación incorpora una relación de coherencia en conjuntos de modelos. La consistencia se puede verificar ejecutando la transformación en modo de solo verificación; la transformación luego devuelve Verdadero si el conjunto de modelos es consistente de acuerdo con la transformación y Falso en caso contrario. La misma transformación se puede utilizar en el modo de imposición para intentar modificar uno de los modelos para que el conjunto de modelos sea coherente. El lenguaje QVT-Relations tiene una sintaxis concreta tanto textual como gráfica.
- QVT-Core es un lenguaje declarativo diseñado para ser simple y actuar como el objetivo de la traducción de 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 Relaciones QVT a QVT-Core dada en el Estándar QVT no preserva la semántica.
Finalmente, QVT-BlackBox es un mecanismo para invocar facilidades de transformación expresadas en otros lenguajes (por ejemplo XSLT o XQuery ).
Aunque QVT tiene un alcance amplio, no cubre todo lo que se ha considerado como transformación, vista o consulta del modelo. 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. OMG estandariza por separado las transformaciones de modelo a texto (consulte MOFM2T ).
Historia
En 2002, OMG emitió una Solicitud de propuesta (RFP) sobre Consulta / Vista / Transformación de MOF para buscar un estándar compatible con el conjunto de recomendaciones de Arquitectura dirigida por modelos (MDA) (UML, MOF, OCL, etc.).
Varias empresas e instituciones de investigación dieron varias respuestas que evolucionaron durante tres años para producir una propuesta común, basada en un borrador del Dr. Laurence Tratt, investigador del Reino Unido. 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-operativo:
- Borland Together contiene una implementación de QVT Operational, que se ha contribuido [4] a la Fundación Eclipse y ahora se desarrolla como el proyecto Eclipse M2M Operational QVT.
- Eclipse M2M Operational QVT: implementación oficial de código abierto de Eclipse de QVT Operational. [5]
- MagicDraw tiene 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 de Eclipse (Orange Labs) del lenguaje QVT-Operational.
QVT-Core:
- OptimalJ : La implementación de acceso temprano del lenguaje QVT-Core estaba en OptimalJ versión 3.4 de Compuware . Sin embargo, OptimalJ se ha descontinuado.
Relaciones QVT:
- ModelMorf: una herramienta patentada 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 forma XMI. Una versión completa e integrada en el repositorio está disponible como parte de su marco de modelado patentado. [7]
- MediniQVT: [8] Motor de transformación basado en EMF con licencia EPL para motor y editor / depurador de licencia no comercial. Utiliza la sintaxis de relaciones QVT, 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 and 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 de aleación , que proporciona una implementación de la sintaxis QVT-Relations, pero usando semántica que se aparta deliberadamente de la especificación OMG.
Tipo QVT:
- jQVT: [11] Un motor QVT compilado para Java, que usa Xbase en lugar de OCL. Una transformación relacional QVT se compila primero en el código fuente de Java, que luego produce directamente el modelo de destino a partir de los de origen en tiempo de ejecución, sin volver a interpretar la regla de transformación. Es compatible con modelos EMF, así como con objetos simples de Java.
- Tefkat : una implementación de código abierto del lenguaje Tefkat que también es similar a QVT. Fuente abierta.
- 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.
- Model Transformation Framework (MTF): [12] un proyecto de IBM alphaWorks , actualizado por última vez en 2007.
Ver también
- Lista de lenguajes de transformación disponibles
- Modelo MOF a lenguaje de transformación de texto: la especificación del lenguaje de transformación de OMG para expresar transformaciones M2T
- Ingeniería basada en modelos (MDE)
- Arquitectura basada en modelos (MDA): la visión de OMG de MDE
- Lenguaje específico de dominio (DSL)
- Facilidad de metaobjetos (MOF): un lenguaje para escribir metamodelos
- Lenguaje de restricción de objetos (OCL): un lenguaje de restricción de modelo (y consulta)
- Transformación de modelo
- Lenguaje de transformación de modelos
- Metamodelo
Referencias
- ^ a b 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 Consulta / Vista / Transformación (QVT)" (pdf) . Grupo de gestión de objetos . Consultado el 9 de mayo de 2011 .
- ^ Stevens, Perdita (2011). "Un enfoque de teoría de juegos simple para comprobar sólo relaciones QVT". Modelado de software y sistemas . Berlín / Heidelberg: Springer . 12 : 175-199. doi : 10.1007 / s10270-011-0198-8 .
- ^ 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 Consulta / Vista / Transformación (QVT)" (pdf) . Grupo de gestión de objetos . Consultado el 1 de noviembre de 2013 .
- ^ [m2m-dev] Contribución de Borland QVT Archivado el 25 de febrero de 2012 en la Wayback Machine.
- ^ a b Proyecto Eclipse M2M. "Copia archivada" . Archivado desde el original el 3 de diciembre de 2012 . Consultado el 9 de mayo de 2011 .CS1 maint: copia archivada como título ( enlace ). Consultado el 9 de mayo de 2011.
- ^ ModelMorf beta. "Copia archivada" . Archivado desde el original el 23 de marzo de 2012 . Consultado el 9 de mayo de 2011 .CS1 maint: copia archivada como título ( enlace ). Consultado el 9 de mayo de 2011.
- ^ TCS Code Generator Framework (anteriormente conocido como MasterCraft). "Copia archivada" . Archivado desde el original el 9 de agosto de 2011 . Consultado el 9 de mayo de 2011 .CS1 maint: copia archivada como título ( enlace ). Consultado el 9 de mayo de 2011.
- ^ Medini QVT. "Copia archivada" . Archivado desde el original el 29 de julio de 2016 . Consultado el 13 de agosto de 2009 .CS1 maint: copia archivada como título ( enlace ). Consultado el 9 de mayo de 2011.
- ^ Kiegeland, J .; Eichler, H. (febrero de 2008), "taller de QVT Medini", taller de QVT Medini (ppt) , Enschede, Telematica Instituut: ikv ++ Technologies AG , recuperada 24/09/2015
- ^ Echo. [1] Consultado el 2 de noviembre de 2013.
- ^ jQVT. "Copia archivada" . Archivado desde el original el 7 de marzo de 2016 . Consultado el 10 de noviembre de 2012 .CS1 maint: copia archivada como título ( enlace )
- ^ Marco de transformación del modelo. http://www.alphaworks.ibm.com/tech/mtf . Consultado el 9 de mayo de 2011.