• Aucun résultat trouvé

Spécification des règles de transformation

Chapitre V : Démarche de mise en œuvre de VUML dirigée par les

V.2. L’approche MDA

V.2.4. Transformation de modèles

V.2.4.3. Spécification des règles de transformation

Dans (OMG, 2003d), les auteurs présentent une classification des approches de transformations de modèles : marking, transformation de modèles, application de patrons et fusion de modèles.

Actuellement, la création d’un langage de transformation normalisé est le centre des réflexions autour de MDA. Dans ce contexte, en 2002, l’OMG a lancé un appel à travers son RFP QVT (OMG,

supportent l’approche par template proposent deux types de langages :

à utiliser mais peu expressifs car ils dépendent d’un seul méta-modèle. Par conséquent, ces langages ne peuvent transformer qu’un seul type de modèle. UML est un type de langage graphique spécifique d’un méta-m

Métamodèle d’entrée (ex. UML)

Métamodèle de sortie (ex. BD)

Définition de la transformation

Un modèle (ex. Mon modèle UML)

Un modèle (ex. Mon modèle BD)

Exécution

Légende

: est exprimé dans le

- ais plus ettent de transformer

l’apport e cette approche par rapport à l’approche par programmation.

pproche par modélisation : cette approche vise à appliquer l’ingénierie des modèles aux ansformations de modèles, afin de les rendre pérennes, productifs et indépendants des plates-formes

, View, Transformation) sera bientôt défini par l’OMG. e standard va offrir un métamodèle permettant de construire des modèles de transformations de

odèles. Une vision très simplifiée de ce métamodèle est présentée sur la figure 97. Ce métamodèle st constitué d’un certain nombre de métclasses reliées par des méta-associations. La métaclasse

odule représente une transformation de modèles. Elle est reliée par deux méta-associations (sources

t cibles) à la métaclasse Package qui représente un métamodèle. Un Module est composé de trois

méta-classes s effectuées

dans une transformation de modèles. Ces requêtes sont des expressions OCL (sans effet de bord) per

te des règles de construction. Cette métaclasse est reliée à la métaclasse MatchingExpression, qui

Les langages textuels indépendants des métamodèles : ils sont très expressifs m difficiles à utiliser. Ces langages ont un caractère générique et perm

n’importe quel modèle. Les langages fondés sur XMI (XML Metadata Interchange) et sur les langages classiques sont des exemples de langages indépendants des métamodèles.

Bien que l’approche par template soit très outillée, il est difficile d’identifier avec certitude d

A tr

d’exécution. Le standard MOF2.0 QVT (Query C

m e

M

e

: Query, Relation, et Mapping. La métaclasse Query représente les requête

mettant de naviguer dans les modèles pour obtenir certaines informations. La métaclasse Relation représente des règles de correspondance entre les parties structurelles des métamodèles source et cible. Ces règles concernent des sous-ensembles d’un métamodèle (représentés par des métaclasses

Domain). Elles expriment seulement des correspondances structurelles entre les métamodèles sans

définir la façon dont sont réalisées ces correspondances. La métaclasse Mapping quant à elle représen

représente le concept d’action de construction.

Package Module Query Relation Domain Mapping MatchingExpression +ownedQueries +sources * +cibles * 1 1 1 * +ownedRelations * +ownedM ap ping * +domains * +body *

Figure 97 – Vision simplifiée du métamodèle MOF2.0 QVT (Blanc, 2005)

La figure 98 présente à titre d’exemple les relations existantes entre le métamodèle MOF2.0 QVT, un modèle de transformation (UML2BD), son métamodèle d’entrée (UML) et de sortie (BD) et une exécution du modèle de transformation.

s citer Q 200 ect- orie ed paradigm al., 2003).

entre deux métamodèles. La transformation a pour but de er un élément de modèle source en un élément de modèle cible conformément à la orrespondance (mapping) associée, en fonction d’une plate-forme cible.

Figure 98 – Exemple de transformation de modèles avec QVT (Blanc, 2005)

Plu ieurs langages de transformations de modèles ont été proposés, parmi lesquels nous pouvons : VT Merge (Grønmo et al., 2005), ATL (Atlas Transformation Language) (Bézivin et al., 3), YATL (Yet Another Tranformation Language) (Patrascoiu, 2004), BOTL (Basic Obj nt Transformation Language) (Marschall et al., 2003), etc. Ces langages sont basés sur différents

es et un langage peut être adapté qu’un autre à un contexte spécifique (Czarnecki et

Pour illustrer l’utilisation d’un langage de transformation, nous avons choisi le langage ATL6 qui est outillé et largement expérimenté. C’est un langage hybride (déclaratif et impératif). L’approche déclarative d’ATL est basée sur OCL. L’approche impérative en ATL contient des instructions qui explicitent les étapes d’exécution dans des procédures (helpers). La figure 99 présente la syntaxe abstraite de règles de transformation en ATL. Cette figure montre qu’une règle est identifiée par un nom et peut contenir les éléments ActionBlock et OutPattern. Une MatchedRule spécialise une Rule et contient un InPattern. Une CalledRule spécialise une Rule ou une Operation en OCL.

La version actuelle d’ATL est basé sur MDR (MetaData Repository) (NetBeans.ORG, 2003), EMF (Eclipse Modeling Framework), Java et Eclipse (ATL, 2004).

Parmi les travaux récents basés sur ATL, nous citons ceux de Lopes (Lopes, 2005) qui propose une méthodologie pour le développement d’applications selon l’approche MDA. Cette méthodologie est basée sur une architecture type pour la transformation de modèles qui distingue explicitement la spécification de correspondances et la définition de transformations. La correspondance décrit quels

ont les éléments équivalents ou similaires s

transform c

6

ATL a été conçu, développé et implémenté par J. Bézivin et F. Jouault Métamodèle

d’entrée (ex. UML)

Un modèle (ex. Mon modèle UML)

Métam dèle sortie (ex. B o de D) Un modèle (ex. Mon modèle BD) Exécution Un modèle de transformation (ex. UML2BD) Métamodèle MOF2.0 QVT Légende

Op

(from

eration

OCL) Rule

CalledRule MatchedRule

InPattern ActionBlock OutPattern

-name : string

+inPattern

0..1 0..1 +actionBlock 0..1 +outPattern

in et al., 2003)

être vue comme un PIM et la définition de transformation comme un PSM.

s.

La prise en compte des plates-formes d’exécution : ce qui va permettre aux entreprises de bénéficier des avantages des plates-formes.

V.3. Vers une démarche VUML dirigée par les modèles

e processus de développement avec VUML n'étant pas l'objectif principal de cette thèse, nous ne présentons qu'une version simplifiée de la démarche associée à VUML. Les phases principales de cette démarche sont inspirées de la méthode VBOOM (Kriouile, 1995). La démarche associée à VUML s’intègre aussi dans l’approche MDA dont les étapes sont présentées dans la section V.2.2. Dans cette

section, nous allons s sés par MDA (CIM,

Figure 99 – Règles en ATL (syntaxe abstraite) (Béziv

Pour spécifier les correspondances entre les métamodèles source et cible, Lopes propose une notation graphique (qui réutilise la notation UML) avec l’utilisation d’OCL (Object Constraint Language) pour exécuter des requêtes sur les métamodèles. La définition de transformations est réalisée automatiquement en ATL à partir de la spécification des correspondances. Dans cette perspective, la spécification de correspondance peut