QVT devait répondre aux propositions de l’OMG QVT Request For Proposal (Object Management
Group 2002b) dont voici les principales exigences (Combemale et al. 2007) :
· normaliser un moyen d’exprimer des correspondances (transformations) entre langages
définis avec MOF.
· exprimer des requêtes (Query) pour filtrer et sélectionner des éléments d’un modèle (y
compris sélectionner les éléments source d’une transformation).
· proposer un mécanisme pour créer des vues (Views) qui sont des modèles déduits d’un autre
pour en révéler les aspects spécifiques.
· formaliser une manière de décrire des transformations (Transformations).
Le standard OMG : MOF QVT (Combemale et al. 2007) :
· Syntaxe abstraite en MOF 2.0 (et syntaxe concrète textuelle et graphique)
· Possibilité de plusieurs modèles (conformes à des métamodèles issus de MOF)
· Langage de requête s’appuyant sur OCL
· Gestion automatique des liens de traçabilité
· MOF QVT devra permettre plusieurs scenarios d’exécution (transformations
unidirectionnelles, multidirectionnelles, etc.).
Dans sa dernière version, QVT 2.0 propose trois langages de transformation (cf. Figure 40) :
La partie déclarative de QVT est structurée en une architecture à deux couches composée de :
· « Relations » qui est un langage de haut niveau orienté utilisateur. Il permet d’établir des
relations entre les modèles MOF participant à la transformation. Les traces entre les
éléments de modèles impliqués dans les transformations sont créées implicitement.
« Relations » peut être utilisé soit comme formalisme de représentation des relations entre
modèles soit pour être traduit en modèle « Core » par une transformation
« RelationsToCore ».
· « Core » qui est un langage technique de bas niveau défini par une syntaxe textuelle.
Contrairement à « Relations », toutes les traces de transformations doivent être décrites afin
d’être créées.
La partie impérative est composée pour sa part de :
· « Operational Mappings » qui est une extension de « Relations » et de « Core » avec des
constructions impératives (extension d’OCL). Cela autorise une syntaxe concrète et un plus
procédural à destination des programmeurs standards.
· « Black Box MOF Operation » qui permet d’invoquer des fonctionnalités de transformation
implémentées dans un langage externe.
La combinaison de ces trois langages donne un « langage hybride ».
Retour au menu : Stratégie de test au sein du processus d’évolution d’architecture de Sodifrance