Institut numerique

7.1.4.2 Query Views Transformations (QVT)

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) :

Figure 40 : Les relations entre les métamodèles de QVT (Object Management Group 2011c)

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

Figure 41 : Alignement entre modèle/métamodèle et DTD/document XML (Blanc 2005, p.103)

Figure 42 : XMI et la structuration des balises XML (Blanc 2005, p.104)

Page suivante : 7.1.4.3 XMI

Retour au menu : Stratégie de test au sein du processus d’évolution d’architecture de Sodifrance