WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Stratégie de test au sein du processus d'évolution d'architecture de Sodifrance

( Télécharger le fichier original )
par Laurent GARNIER
CNAM Nantes - Ingénieur informatique 2011
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

7.1.4 Les transformations

7.1.4.1 Les transformations de modèles

Le passage entre les différents modèles présentés auparavant se fait par le biais de l'exécution de transformations. La Figure 38 illustre les différentes transformations que l'on peut trouver généralement dans MDA.

La transformation ou projection et la retro-ingénierie peuvent être des transformations entre deux modèles conformes à un même métamodèle, on parle alors de transformation endogène, ou entre des modèles respectant des métamodèles différents, il s'agit dans ce cas d'une transformation exogène. Le raffinement est une transformation endogène un peu particulière, car elle s'appuie non seulement sur un métamodèle commun au modèle d'entrée et de sortie de la transformation, mais c'est aussi le modèle d'entrée qui sert de modèle de sortie.

La transformation sert à passer d'un niveau abstrait vers un niveau plus concret, plus on avance dans les transformations, plus on se rapproche du modèle de code.

La retro-ingénierie fait le trajet inverse et remonte des niveaux concrets jusqu'aux niveaux abstraits. Le raffinement sert le plus souvent à ajouter de l'information sans changer le sens des objets.

MDA préconise d'utiliser les modèles dans son approche, et c'est tout naturellement qu'il propose de modéliser les transformations elles même. Une transformation est vue comme une application, avec ses exigences, ses modèles de conception et de code. Afin de modéliser les transformations, MDA définit le standard MOF2.0 Query View Transformation (QVT)(Object Management Group 2011c). QVT est le métamodèle décrivant les modèles de transformation. QVT se limite aux transformations entre modèles.

La Figure 39 illustre une transformation entre deux modèles, le modèle UML en entrée, qui est conforme au métamodèle UML, et le modèle Java en sortie, qui pour sa part est conforme au métamodèle Java. Le modèle de transformation UML2Java se doit d'être conforme au métamodèle QVT.

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)

CNAM de Nantes - 2010 / 2011 - Mémoire d'ingénieur

 
 

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)

CNAM de Nantes - 2010 / 2011 - Mémoire d'ingénieur

 
 

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"En amour, en art, en politique, il faut nous arranger pour que notre légèreté pèse lourd dans la balance."   Sacha Guitry