Vous êtes sur la page 1sur 49

Université Ibn Khaldoun - Tiaret

Faculté des Mathématique et d’Informatique


Département d’Informatique

• Réalisé par:
Aissaoui Fatma Module: Génie Logiciel
Bouabdelli Halima

Enseignant responsable:
Mr B.Boudaa

2015/2016
Introduction
Model To Model « M2M »
Définition d’ATL
Vue d'ensemble de l'approche de transformation ATL
Présentation d’ATL
Les modes d’exécution des modules
• Le mode normal
• Le mode raffinage
XMI
Exemple (Tutoriel)

Conclusion
Introduction

Dans le domaine du génie logiciel, l’apparition de l’Ingénierie Dirigée par les


modèles (IDM) propose une démarche dont les deux originalités sont d’une part
la formulation des modèles, et d’autre part des programmes de transformation
de modèles que nous allons y s’intéresser dans notre travail.

1
Model To Model « M2M »

M2M: est la génération d’un ou plusieurs modèles cibles à partir d’un


ou de plusieurs modèles sources.
Transformation : ensemble de règles (correspondances entre
éléments du modèle source et éléments du modèle cible).

2
Définition d’ATL

ATL : est l’acronyme d’ATLAS Transformation Langage.


• Un langage de transformation de modèles dans le domaine de l’IDM ou MDE,
développé par l’équipe de recherche ATLAS INRIA & LINA
• Un moyen de spécifier la manière de produire un certain nombre de modèles
cibles à partir de modèles sources.
• Langage de transformation hybride (déclaratif et impératif).

3
Vue d'ensemble de l'approche de transformation ATL

• ATL s'utilise dans le contexte de transformation présenté dans la figure suivante :

Figure 01: Architecture d’ATL

4
• Dans la figure 01, un modèle source Ma est transformé en un modèle cible Mb.
La transformation est dirigée par un programme de transformation
mma2mmb.atl écrit en ATL. Ce programme est un modèle. Les modèles source
et cible ainsi que le programme de transformation sont conformes à leurs méta-
modèles respectifs :MMa, MMb et ATL. Ces méta-modèles sont conformes au
méta-méta-modèle Ecore.

5
Présentation d’ATL

Dans cette partie, nous présentons les fonctionnalités du langage ATL :


- En ATL, une transformation s'appelle un module.
• Structure d’une transformation (module) :
Déclaration du module
• Header section
Import de librairies
• Import section
Opérations
• Helpers
Règles de transformation
• Rules

6
• Header: donne le nom du module de transformation et déclare les modèles
source et cible.
- Exemple:
module MyRules;
create OUT : MM1 from IN : MM;

• Import: sert à importer quelques bibliothèques ATL existantes.

• Helpers : sont des fonctions ATL d’après le standard OCL sur le quel ATL se
base. OCL définit deux sortes de helpers : opération et attribut.

- Exemple de helpers opération :

helper def :carre(x: Real): Real =x * x;

- helpers attribut : sont des helpers sans paramètre.

7
• Rules: Définissent la façon dont les modèles cibles sont générés a partir de
modèles sources, on a deux types de règles: Matched rules et Called rules

Exemple de Matched rules:

rule ForExample {
from
i : InputMetaModel!InputElement
to
o : OutputMetaModel!OutputElement(
attributeA <- i.attributeB,
attributeB <- i.attributeC + i.attributeD
)
}

8
• Les requêtes ATL : Opération qui calcule une valeur primitive d’un
ensemble de modèles de sources.

query query_name = exp;

• Les bibliothèques ATL : définir un ensemble de Helpers qui peuvent


être appelées à partir des différentes unités ATL.

9
Les modes d’exécution des modules

Le moteur d'exécution ATL définit deux modes d'exécution pour les différents
modules ATL:

Le mode normal

Le mode raffinage

10
Le mode normal

• spécifier la manière dont les éléments de modèle cible doivent être générés
à partir des éléments du modèle source.

• Ce mode est spécifié par le mot clef from dans l’en-tête.

• Il est utilisé dans le cas d’une transformation


exogène : le méta-modèle source et cible sont
différents.

11
Le mode raffinage

• Un modèle M1 devient un modèle M2

• Ce mode est spécifié par le mot clef refining dans l’en-tête.

• Il est utilisé dans le cas d’une transformation


endogène : un même méta-modèle source et cible

12
XMI « XML Metadata Interchange »

Les modèles et leurs méta-modèles cibles et source prennent dans


l’environnement de développement Eclipse la forme de fichiers texte au
format xmi avec une extension .ecore.
XMI permet de représenter n’importe quel modèle sous forme de
document XML. Le principe de fonctionnement de XMI consiste à
générer automatiquement une specification de structuration de balises à
partir d’un méta-modèle.

13
• Principe de Tutoriel:

Color: white
Cle: 2
Rayon: 2

Color: red
Cle: 11
Color: black Architecture Rayon: 6.5
Cle: 6
Rayon: 5.5

Figure 02: Modèle source des cercles

14
Color: white
Cle: 2
Length: 2

Base
Color: black Color: red
Cle: 6 Cle: 11
Length: 5.5 Length: 6.5

Figure 03: Modèle cible des carrés

15
Règle 1: Architecture à Base

Architecture Base

16
Règle 2: cercles vers carrés

17
Règle 3: relations vers relations

18
• Installation d’ATL:

1 2

1: Cliquer sur
Help » Install Modeling Components

2: Sélectionner ATL » Cliquer sur Finish

19
3: Cliquer sur Next

4: Sélectionner ‘ I accept …’
» Cliquer sur Finish

20
• Création d’un projet ATL

• Cliquer Sur:
New »Other »ATL Project »Next

21
5: Nommer le Projet
»Cliquer sur Finish

6: Projet Créé !

22
• Créer un dossier dans le projet:

• Clique droit sur le Projet »New »Folder


• Nommer le Dossier » Cliquer sur Finish

23
7: Répeter la procédure de création des dossiers dans le Projet »
Et Créer les 3 dossiers suivants :

24
• Clique droit sur Metamodels
» New »Other

• Sélectionner Ecore Model


» Cliquer sur Next

25
• Sélectionner Metamodels
• Nommer le fichier .ecore
• Cliquer sur Finish

• Résultat

26
8: Dans la vue Properties
Remplissez les champs comme
on a montré dans la figure.

• Résultat

27
• Clique droit sur le modèle ecore
» Initialize Ecore Diagram

• Sélectionner Metamodels
» Nommer le fichier
» Cliquer sur Finish.
28
• Créer le Méta-modèle
du cercle suivant:

Vue de type arbre (extension ecore)

29
• Créer un fichier .ecore pour le carré comme on a fait précédemment pour le cercle:

• Remplir les champs comme suit :

30
• Créer le Méta-modèle du
carré suivant:

Vue de type arbre


(extension ecore)

31
• Clique droit sur Architecture »Create Dynamic Instace
• Sélectionner Models »Nomme le fichier .xmi

•Résultat
32
• Construire les instances:

33
• Clique droit sur Architecture » New Child
»Relations Relation

• Sélectionner l’instance Relation »Remplir les champs pour faire la relation

34
• Création d’un fichier de Transformation ATL:

• Clique droit sur Transformation


»New »Other

• Sélectionner ATL Fil1e


»appuyer sur Next

35
• Sélectionner Transformations
»Nommer le fichier .atl
• Cliquer sur Add

36
• Cliquer sur Browse Workspace
• Sélectionner Circle_metamodel.ecore
» Cliquer sur Ok

37
• l’ajout des 2
Méta-modèles
source et cible

• Cliquer sur Finish

• Résultat
38
• Les règles de correspondances

39
• Clique droit sur le fichier .atl »Run As »Run Configurations

40
• Création d’une nouvelle configuration
• Cliquer sur Workspace

41
• Sélectionner le
fichier .atl » Ok

• Cliquer sur Workspace

42
• Sélectionner le fichier .xmi ‘‘ modèle source ’’ » Ok
• Copier le chemin du modèle source ,
coller le dans la zone du modèle cible
et modifier juste le nom du fichier .xmi

• Cliquer sur:
Apply » Run

43
• La transformation M2M est réussite !
44
Conclusion

ATL se base sur de nombreux standards tels que XMI, OCL et Ecore, et il a
même fait parti des contributions initiales au standard QVT de l'OMG.
Grâce à ce respect des standards, ATL peut s'insérer dans une chaîne d'outils
libres et bâtis sur Eclipse : UML2 avec Topcased ou Papyrus,
métamodèles avec EMF, modeleurs dédiés avec GMF, génération de code
avec Acceleo.

45
Merci !

Vous aimerez peut-être aussi