57
Ingénierie des Modèles Atlas Transformation Language Amira Hakim Dept de Mathématique & Informatique Université de Souk-Ahras 1 UNIVERSITE MOHAMED CHERIF MESAADIA SOUK-AHRAS

Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Embed Size (px)

Citation preview

Page 1: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Ingénierie des ModèlesAtlas Transformation Language

Amira Hakim

Dept de Mathématique & InformatiqueUniversité de Souk-Ahras

1

UNIVERSITE MOHAMED CHERIF MESAADIASOUK-AHRAS

Page 2: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Introduction (Motivation)

2

Importance des modèles

On utilise des modèles pour mieux comprendre un système.

Pour un observateur A, M est un modèle de l’objet O, si M aide A

a répondre aux questions qu’il se pose sur O. (Minsky).

Un modèle est une simplification, une abstraction du système.

Page 3: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

L’Ingénierie Dirigée par les Modèles

3

L’Ingénierie Dirigée par les Modèles (ou IDM) est une démarche de développement qui conçoit l’intégralité du cycle de développement du logiciel comme un processus de production, de raffinement itératif et d’intégration de modèles.

L’ingénierie dirigée par les modèles place le modèle au centre du processus de développement ,ainsi les différentes étapes du développement se traduisent par une succession de transformations de modèles.

Page 4: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Notions fondamentaux

4

Modèle

Méta-modèle

Méta-Méta-modèle

Transformation de modèle

Modéle Systéme

Méta-Modéle

Méta-Méta-Modéle

représente

Est conforme à

Est conforme à

Page 5: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Modèle

5

Définition d’un modèle:Un modèle est une description, une spécification partielle d'un système:C’est une abstraction de ce qui est intéressant pour un contexte et dans un but donné. Le modéle fournit une vue subjective et simplifiée d'un

système.But d'un modèle:

Faciliter la compréhension d'un système.Simuler le fonctionnement d'un système.

Exemple : une carte routière , un diagramme UML

Page 6: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Méta Modèle

6

Définition d’un Méta-Modèle:Le terme méta modèle est un stéréotype attaché à un modèle qui indique que

le modèle est une abstraction d'un autre modèle ,autrement dit, un modèle d'un modèle.

L'UML lui-même sert de méta modèle pour les modèles qui représentent des systèmes réels construits.

Page 7: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Méta-Méta- Modèle

7

Méta Méta Modèle:c’est un modèle qui décrit un langage de méta modélisation , c.à.d.,

les éléments de modélisation nécessaires à la définition des langages de modélisation.

Page 8: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Transformation de modèles

8

La transformation prend en entrée un modèle m1 et doit produire en sortie un autre modèle m2Une transformation de modèles est la génération d’un ou de 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)

Page 9: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Buts d’une transformation

9

Raffinement:– Un modèle A1 devient un modèle A2– Même métamodèle pour les deux

Projection:– Un modèle A1 devient un modèle B1– Métamodèles distincts– [Composants > Java]

Représente la base:– Production de systèmes dirigées par les modèles.– Support de l’interopérabilité entre les systèmes.

Page 10: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

ATL : ATLAS Transformation Language

10

Développé par l’équipe de recherche ATLAS INRIA ET LINA (Jean Bézivin).

Fait partie du projet Eclipse M2M (Model-to-Model)

Langage de transformation hybride

Propose des structures déclarative et imperative.

Une transformation ATL est composée de regles (rules) declaratives.

Une regle definit une transformation d’un element du modele source versun element du modele cible

Possibilite d’appeler des Helpers (eq. methodes) pour faciliter le traitementdans les regles.

Page 11: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Transformations endogènes et exogènes

11

Transformation endogène Transformation exogène

Page 12: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

12

Transformation de modèle de carrés en modèle de cercles

Page 13: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Structure d’une transformation ATL

13

Un module ATL correspond a une transformation modèle à modèle.

Eléments:

Une section entête : definit les attributs qui sont relatives au module de transformation.

Une section « import » optionnelle: sert a importer quelquesbibliothéques ATL éxistantes.

Un ensemble de « helpers »:ATL équivalents aux méthodes java.

Un ensemble de régles: définissent la façon dont les modéles cibles sont générés a partir de modéles sources.

Page 14: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

ATL modules

14

Ce sont les fichiers qui contiennent les transformations.Ces fichiers ont l’éxtension .ATL.Consistent en:

Header Import Helpers Rules

Page 15: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Etape 1:Installation d’Eclipse

15

Page 16: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

2.Création d’un nouveau ATL projet

16

Page 17: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Donner un nom au projet

17

Page 18: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Création d’un dossier « metamodels »

18

Sous le projet Square2Circle; on crée unnouveau dossier pour les métas modéles

Page 19: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Modèle Square.ecore

19

Page 20: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Initialiser le fichier de diagramme Ecore

20

Page 21: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Square.ecore_diagram(a réaliser manuellement)

21

Page 22: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Détails et propriétés de Square.ecore

22

Page 23: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Modèle Circle.ecore

23

Page 24: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Initialiser le fichier de diagramme Ecore

24

Page 25: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Circle.ecore_diagram(a réaliser manuellement)

25

Page 26: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Détails et propriétés de Circle.ecore

26

Page 27: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Création d’un dossier de modéles

27

Page 28: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Création d’une interface dynamique(SquareM.xmi) sous le dossier Model

28

Page 29: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Instanciation

29

On crée deux squares s1 et s2 et une relation r1

Page 30: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Modification des propriétés

30

Page 31: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Création du dossier des transformations

31

Page 32: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Création du fichier Square2Circle.atl

32

Page 33: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Code des transformation

33

module Square2Circle;create OUT:Circle from IN:Square;rule Arch2Base {from S:Square!Architectureto C:Circle!Architecture (

Name<-S.Name,circles<-S.squares,relations<-S.relations)}rule Transf {from S:Square!Squareto C:Circle!Circle(Name<-S.Name,Color<-S.Color,Rayon<-S.Length)}rule Relation2Relation {from S:Square!Relationto C:Circle!Relation(Name<-S.Name,source<-S.source,target<-S.target)}

Page 34: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Run Configuration Run

34

Page 35: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

CircleM.xmi(Le modèle cible)

35

Page 36: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Modélisation avec Graphical Modeling Framework

36

La Création d’un modèle conforme à un méta-modèle se fait par deux façons soit :

Instancier le Meta model et avoir un modèle sous forme XMI.

Générer un éditeur graphique à partir du Meta model par l’utilisation du GMF.

Page 37: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Graphical Modeling Framework

37

GMF est un Framework de l'environnement de travail Eclipse.

Il fournit une infrastructure permettant l'exécution d'éditeurs graphiques basés sur les Framework EMF et GEF.

Avec GMF, il est possible de créer une application de modélisation simplifiée (formes de base : rectangle, ellipse) sans écrire une seule ligne de code.

Page 38: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Le WorkFlux de GMF

38

Génération d’un éditeur graphique à partir d’un

modèle EMF

Domain Model(fichier.ecore)

Dériver « Domain Gen Model » (Fichier : *.genmodel)

Générer « Graphical Def Model » (Fichier : *.gmfgraph)

Générer « Mapping Model » (Fichier : *.gmfmap)

« Diagram Editor Gen Model » (Fichier : *.gmfgen)

Générer l'éditeur de diagramme

Page 39: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Création du projet GMF(Square)

39

Sans oublier de cocher la case: Show DashboardViews

Page 40: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Le GMF Dashboard s’affiche

40

Page 41: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Copier et coller le square.ecore dans le projet Square.GMF

41

Page 42: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Sélectionnez « Domain Model »

42

Page 43: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Choisissez Derive

43

Puis Appuiyer sur Load et Next

Page 44: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

La fenêtre suivante s’affiche:

44

Page 45: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Click sur Derive pour aller au Graphical Def Model

45

SuivantSuivant

Page 46: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Click sur Derive pour aller au Tooling DefModel

46

SuivantSuivant

Page 47: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Click sur Combine pour aller au Mapping Model

47

SuivantSuivant

Page 48: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

48

Relation As linkTarget RemoveSource RemoveRelation Change:Source Feature :Ereference Source

Target Feature :Ereference TargetDiagram Link:Connection Relation

Page 49: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

On obtient:

49

Page 50: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Click sur Transform

50

Page 51: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Generate Diagram Code

51

Click droit sur Square.gmfgen sous le projet Square puis GenerateDiagram Code

Page 52: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

52

Page 53: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Sous la 2éme fenetre d’eclipse

53

New Java Project Puis new others Examples Square Diagram:

Page 54: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Diagram

54

Page 55: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

55

Supprimer les modèles Square.xmi et Circle.xmi dans le repertoireModel du projet Square2Circle .Copier SquareM.square et le coller dans ce répertoire.Aller a run configuration pour modifier le IN model

Click sur Apply puis Run

Page 56: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Création du projet GMF(Circle)

56

On dois refaire les étapes du DashBoard du projet Square(GMF)

Page 57: Transformation de carrés en cercles avec Atlas Transformation Language(ATL)

Fin

57

Merci Pour votre Attention!