Upload
amira-hakim
View
196
Download
2
Embed Size (px)
Citation preview
Ingénierie des ModèlesAtlas Transformation Language
Amira Hakim
Dept de Mathématique & InformatiqueUniversité de Souk-Ahras
1
UNIVERSITE MOHAMED CHERIF MESAADIASOUK-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 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)
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 versun element du modele cible
Possibilite d’appeler des Helpers (eq. methodes) pour faciliter le traitementdans 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 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.
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 unnouveau 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!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)}
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
SuivantSuivant
Click sur Derive pour aller au Tooling DefModel
46
SuivantSuivant
Click sur Combine pour aller au Mapping Model
47
SuivantSuivant
48
Relation As linkTarget RemoveSource RemoveRelation Change:Source Feature :Ereference Source
Target Feature :Ereference TargetDiagram Link:Connection Relation
On obtient:
49
Click sur Transform
50
Generate Diagram Code
51
Click droit sur Square.gmfgen sous le projet Square puis GenerateDiagram 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 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
Création du projet GMF(Circle)
56
On dois refaire les étapes du DashBoard du projet Square(GMF)
Fin
57
Merci Pour votre Attention!