SlideShare une entreprise Scribd logo
1  sur  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
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.
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.
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 à
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
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.
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.
Transformation de modèles
8
La transformation prend en entrée un modèle m1 et doit produire en sortie un
autre modèle m2
Une 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)
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.
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 vers
un element du modele cible
Possibilite d’appeler des Helpers (eq. methodes) pour faciliter le traitement
dans les regles.
Transformations endogènes et exogènes
11
Transformation endogène Transformation exogène
12
Transformation de modèle de carrés
en modèle de cercles
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 quelques
bibliothé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.
ATL modules
14
Ce sont les fichiers qui contiennent les transformations.
Ces fichiers ont l’éxtension .ATL.
Consistent en:
 Header
 Import
 Helpers
 Rules
Etape 1:Installation d’Eclipse
15
2.Création d’un nouveau ATL projet
16
Donner un nom au projet
17
Création d’un dossier « metamodels »
18
Sous le projet Square2Circle; on crée un
nouveau dossier pour les métas modéles
Modèle Square.ecore
19
Initialiser le fichier de diagramme Ecore
20
Square.ecore_diagram(a réaliser manuellement)
21
Détails et propriétés de Square.ecore
22
Modèle Circle.ecore
23
Initialiser le fichier de diagramme Ecore
24
Circle.ecore_diagram(a réaliser manuellement)
25
Détails et propriétés de Circle.ecore
26
Création d’un dossier de modéles
27
Création d’une interface dynamique(SquareM.xmi) sous
le dossier Model
28
Instanciation
29
On crée deux squares s1
et s2 et une relation r1
Modification des propriétés
30
Création du dossier des transformations
31
Création du fichier Square2Circle.atl
32
Code des transformation
33
module Square2Circle;
create OUT:Circle from IN:Square;
rule Arch2Base {
from S:Square!Architecture
to C:Circle!Architecture (
Name<-S.Name,
circles<-S.squares,
relations<-S.relations
)}
rule Transf {
from S:Square!Square
to C:Circle!Circle(
Name<-S.Name,
Color<-S.Color,
Rayon<-S.Length
)}
rule Relation2Relation {
from S:Square!Relation
to C:Circle!Relation(
Name<-S.Name,
source<-S.source,
target<-S.target
Run Configuration Run
34
CircleM.xmi(Le modèle cible)
35
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.
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.
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
Création du projet GMF(Square)
39
Sans oublier de cocher la case: Show DashboardViews
Le GMF Dashboard s’affiche
40
Copier et coller le square.ecore dans le projet
Square.GMF
41
Sélectionnez « Domain Model »
42
Choisissez Derive
43
Puis Appuiyer sur Load et Next
La fenêtre suivante s’affiche:
44
Click sur Derive pour aller au Graphical
Def Model
45
SuivantSuivant
Click sur Derive pour aller au Tooling Def
Model
46
SuivantSuivant
Click sur Combine pour aller au Mapping Model
47
SuivantSuivant
48
Relation As link
Target Remove
Source Remove
Relation Change:Source Feature :Ereference Source
Target Feature :Ereference Target
Diagram Link:Connection Relation
On obtient:
49
Click sur Transform
50
Generate Diagram Code
51
Click droit sur Square.gmfgen sous le projet Square puis Generate
Diagram Code
52
Sous la 2éme fenetre d’eclipse
53
New Java Project Puis new others Examples Square Diagram:
Diagram
54
55
Supprimer les modèles Square.xmi et Circle.xmi dans le repertoire
Model 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
Création du projet GMF(Circle)
56
On dois refaire les étapes du DashBoard du projet Square(GMF)
Fin
57
Merci Pour votre Attention!

Contenu connexe

Tendances

Cours c#
Cours c#Cours c#
Cours c#
zan
 

Tendances (20)

Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studio
 
Ontologie concept applications
Ontologie concept applicationsOntologie concept applications
Ontologie concept applications
 
Cours Génie Logiciel - Introduction
Cours Génie Logiciel - IntroductionCours Génie Logiciel - Introduction
Cours Génie Logiciel - Introduction
 
L Architecture Logicielle En Pratique
L Architecture Logicielle En PratiqueL Architecture Logicielle En Pratique
L Architecture Logicielle En Pratique
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Introduction aux bases de données
Introduction aux bases de donnéesIntroduction aux bases de données
Introduction aux bases de données
 
Uml
UmlUml
Uml
 
LES JOINTURES
LES JOINTURESLES JOINTURES
LES JOINTURES
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Cours java
Cours javaCours java
Cours java
 
ATL tutorial - EclipseCon 2009
ATL tutorial - EclipseCon 2009 ATL tutorial - EclipseCon 2009
ATL tutorial - EclipseCon 2009
 
Cours c#
Cours c#Cours c#
Cours c#
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'Utilisation
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
 

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

Splpv2 annexes-c
Splpv2 annexes-cSplpv2 annexes-c
Splpv2 annexes-c
xerty
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptx
PrinceLankoand
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
Amine Chkr
 

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

Methodo support
Methodo supportMethodo support
Methodo support
 
Objecteering
ObjecteeringObjecteering
Objecteering
 
Devlog2013: SysML et Simulation (French)
Devlog2013: SysML et Simulation (French)Devlog2013: SysML et Simulation (French)
Devlog2013: SysML et Simulation (French)
 
L'outil MDA acceleo.pptx
L'outil MDA acceleo.pptxL'outil MDA acceleo.pptx
L'outil MDA acceleo.pptx
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
 
Splpv2 annexes-c
Splpv2 annexes-cSplpv2 annexes-c
Splpv2 annexes-c
 
Comparaison de outils mda
Comparaison de outils mdaComparaison de outils mda
Comparaison de outils mda
 
cours logiciels de simulation.docx
cours logiciels de simulation.docxcours logiciels de simulation.docx
cours logiciels de simulation.docx
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Idm et ihm
Idm et ihmIdm et ihm
Idm et ihm
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Patrons de creation
Patrons de creationPatrons de creation
Patrons de creation
 
Plasticitérecherche2017
Plasticitérecherche2017Plasticitérecherche2017
Plasticitérecherche2017
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptx
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
Uml
UmlUml
Uml
 
MAD Model Aggregator eDitor (EMF)
MAD Model Aggregator eDitor (EMF)MAD Model Aggregator eDitor (EMF)
MAD Model Aggregator eDitor (EMF)
 
Programmation linéniaire
Programmation linéniaire Programmation linéniaire
Programmation linéniaire
 
srep_cours_06.pdf
srep_cours_06.pdfsrep_cours_06.pdf
srep_cours_06.pdf
 

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

  • 1. 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
  • 2. 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.
  • 3. 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.
  • 4. 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 à
  • 5. 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
  • 6. 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.
  • 7. 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.
  • 8. Transformation de modèles 8 La transformation prend en entrée un modèle m1 et doit produire en sortie un autre modèle m2 Une 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)
  • 9. 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.
  • 10. 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 vers un element du modele cible Possibilite d’appeler des Helpers (eq. methodes) pour faciliter le traitement dans les regles.
  • 11. Transformations endogènes et exogènes 11 Transformation endogène Transformation exogène
  • 12. 12 Transformation de modèle de carrés en modèle de cercles
  • 13. 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 quelques bibliothé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.
  • 14. ATL modules 14 Ce sont les fichiers qui contiennent les transformations. Ces fichiers ont l’éxtension .ATL. Consistent en:  Header  Import  Helpers  Rules
  • 16. 2.Création d’un nouveau ATL projet 16
  • 17. Donner un nom au projet 17
  • 18. Création d’un dossier « metamodels » 18 Sous le projet Square2Circle; on crée un nouveau dossier pour les métas modéles
  • 20. Initialiser le fichier de diagramme Ecore 20
  • 22. Détails et propriétés de Square.ecore 22
  • 24. Initialiser le fichier de diagramme Ecore 24
  • 26. Détails et propriétés de Circle.ecore 26
  • 27. Création d’un dossier de modéles 27
  • 28. Création d’une interface dynamique(SquareM.xmi) sous le dossier Model 28
  • 29. Instanciation 29 On crée deux squares s1 et s2 et une relation r1
  • 31. Création du dossier des transformations 31
  • 32. Création du fichier Square2Circle.atl 32
  • 33. Code des transformation 33 module Square2Circle; create OUT:Circle from IN:Square; rule Arch2Base { from S:Square!Architecture to C:Circle!Architecture ( Name<-S.Name, circles<-S.squares, relations<-S.relations )} rule Transf { from S:Square!Square to C:Circle!Circle( Name<-S.Name, Color<-S.Color, Rayon<-S.Length )} rule Relation2Relation { from S:Square!Relation to C:Circle!Relation( Name<-S.Name, source<-S.source, target<-S.target
  • 36. 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.
  • 37. 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.
  • 38. 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
  • 39. Création du projet GMF(Square) 39 Sans oublier de cocher la case: Show DashboardViews
  • 40. Le GMF Dashboard s’affiche 40
  • 41. Copier et coller le square.ecore dans le projet Square.GMF 41
  • 42. Sélectionnez « Domain Model » 42
  • 44. La fenêtre suivante s’affiche: 44
  • 45. Click sur Derive pour aller au Graphical Def Model 45 SuivantSuivant
  • 46. Click sur Derive pour aller au Tooling Def Model 46 SuivantSuivant
  • 47. Click sur Combine pour aller au Mapping Model 47 SuivantSuivant
  • 48. 48 Relation As link Target Remove Source Remove Relation Change:Source Feature :Ereference Source Target Feature :Ereference Target Diagram Link:Connection Relation
  • 51. Generate Diagram Code 51 Click droit sur Square.gmfgen sous le projet Square puis Generate Diagram Code
  • 52. 52
  • 53. Sous la 2éme fenetre d’eclipse 53 New Java Project Puis new others Examples Square Diagram:
  • 55. 55 Supprimer les modèles Square.xmi et Circle.xmi dans le repertoire Model 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
  • 56. Création du projet GMF(Circle) 56 On dois refaire les étapes du DashBoard du projet Square(GMF)