49
• Réalisé par: Aissaoui Fatma Bouabdelli Halima Université Ibn Khaldoun - Tiaret Faculté des Mathématique et d’Informatique Département d’Informatique Enseignant responsable: Mr B.Boudaa Module: Génie Logiciel 2015/2016

Transformation M2M avec ATL

Embed Size (px)

Citation preview

Page 1: Transformation M2M avec ATL

• Réalisé par:

Aissaoui Fatma

Bouabdelli Halima

Université Ibn Khaldoun - Tiaret Faculté des Mathématique et d’Informatique

Département d’Informatique

Enseignant responsable:

Mr B.Boudaa

Module: Génie Logiciel

2015/2016

Page 2: Transformation M2M avec ATL

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

Page 3: Transformation M2M avec ATL

Introduction

1

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.

Page 4: Transformation M2M avec ATL

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

Page 5: Transformation M2M avec ATL

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

Page 6: Transformation M2M avec ATL

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

Page 7: Transformation M2M avec ATL

• 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

Page 8: Transformation M2M avec ATL

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

Page 9: Transformation M2M avec ATL

• Header: donne le nom du module de transformation et déclare les modèles source et cible. - Exemple:

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

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

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

module MyRules; create OUT : MM1 from IN : MM;

- Exemple de helpers opération :

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

7

Page 10: Transformation M2M avec ATL

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

• 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

8

Exemple de Matched rules:

Page 11: Transformation M2M avec ATL

• 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

Page 12: Transformation M2M avec ATL

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 raffinage

Le mode normal

10

Page 13: Transformation M2M avec ATL

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

Page 14: Transformation M2M avec ATL

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

Page 15: Transformation M2M avec ATL

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

Page 16: Transformation M2M avec ATL
Page 17: Transformation M2M avec ATL

Color: white Cle: 2

Rayon: 2

Color: black Cle: 6

Rayon: 5.5

Color: red Cle: 11

Rayon: 6.5 Architecture

14

• Principe de Tutoriel:

Figure 02: Modèle source des cercles

Page 18: Transformation M2M avec ATL

Color: white Cle: 2

Length: 2

Base Color: black

Cle: 6 Length: 5.5

Color: red Cle: 11

Length: 6.5

15

Figure 03: Modèle cible des carrés

Page 19: Transformation M2M avec ATL

Règle 1: Architecture à Base

Architecture Base

16

Page 20: Transformation M2M avec ATL

Règle 2: cercles vers carrés

17

Page 21: Transformation M2M avec ATL

Règle 3: relations vers relations

18

Page 22: Transformation M2M avec ATL

1 2

• Installation d’ATL:

1: Cliquer sur

Help » Install Modeling Components

2: Sélectionner ATL » Cliquer sur Finish

19

Page 23: Transformation M2M avec ATL

4: Sélectionner ‘ I accept …’

» Cliquer sur Finish

3: Cliquer sur Next

20

Page 24: Transformation M2M avec ATL

21

• Création d’un projet ATL

• Cliquer Sur:

New »Other »ATL Project »Next

Page 25: Transformation M2M avec ATL

22

5: Nommer le Projet

»Cliquer sur Finish

6: Projet Créé !

Page 26: Transformation M2M avec ATL

23

• Clique droit sur le Projet »New »Folder

• Nommer le Dossier » Cliquer sur Finish

• Créer un dossier dans le projet:

Page 27: Transformation M2M avec ATL

24

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

Page 28: Transformation M2M avec ATL

25

• Clique droit sur Metamodels

» New »Other

• Sélectionner Ecore Model

» Cliquer sur Next

Page 29: Transformation M2M avec ATL

26

• Sélectionner Metamodels

• Nommer le fichier .ecore

• Cliquer sur Finish

• Résultat

Page 30: Transformation M2M avec ATL

27

8: Dans la vue Properties Remplissez les champs comme

on a montré dans la figure.

• Résultat

Page 31: Transformation M2M avec ATL

28

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

• Sélectionner Metamodels

» Nommer le fichier

» Cliquer sur Finish.

Page 32: Transformation M2M avec ATL

29

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

Vue de type arbre (extension ecore)

Page 33: Transformation M2M avec ATL

30

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

• Remplir les champs comme suit :

Page 34: Transformation M2M avec ATL

31

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

Vue de type arbre (extension ecore)

Page 35: Transformation M2M avec ATL

32

• Clique droit sur Architecture »Create Dynamic Instace

• Sélectionner Models »Nomme le fichier .xmi

•Résultat

Page 36: Transformation M2M avec ATL

33

• Construire les instances:

Page 37: Transformation M2M avec ATL

34

• Clique droit sur Architecture » New Child

»Relations Relation

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

Page 38: Transformation M2M avec ATL

35

• Clique droit sur Transformation

»New »Other

• Sélectionner ATL Fil1e

»appuyer sur Next

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

Page 39: Transformation M2M avec ATL

36

• Sélectionner Transformations

»Nommer le fichier .atl

• Cliquer sur Add

Page 40: Transformation M2M avec ATL

37

• Cliquer sur Browse Workspace

• Sélectionner Circle_metamodel.ecore

» Cliquer sur Ok

Page 41: Transformation M2M avec ATL

38

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

• Cliquer sur Finish

• Résultat

Page 42: Transformation M2M avec ATL

39

• Les règles de correspondances

Page 43: Transformation M2M avec ATL

40

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

Page 44: Transformation M2M avec ATL

41

• Création d’une nouvelle configuration

• Cliquer sur Workspace

Page 45: Transformation M2M avec ATL

42

• Sélectionner le fichier .atl » Ok

• Cliquer sur Workspace

Page 46: Transformation M2M avec ATL

43

• 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

Page 47: Transformation M2M avec ATL

44

• La transformation M2M est réussite !

Page 48: Transformation M2M avec ATL

Conclusion

45

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.

Page 49: Transformation M2M avec ATL

Merci !