SlideShare une entreprise Scribd logo
Présenter par:
Comparaison de outils MDA
Proposée par:
Dr.Maddah Mohamed
Melle:Zaghdou
d Mounira
Mr:Shili
Mohammed
République tunisienne
ministère de l’enseignement
Supérieur et de la recherche
Scientifique université
De sousse
INSTITUT SUPÉRIEUR DES
SCIENCES
APPLIQUÉES ET DE
TECHNOLOGIE
DE SOUSSE
Introduction
Atlas Transformation Language
QVT:Query,Views ,Transformation
Kermeta :kernel de transformation
Conclusion
PLAN:
2
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.
 Ces outils de transformation se diffèrent
3
ATL: Atlas transformation Language
ATL est un langage de transformation de modèles dans le
domaine de l’IDM (Ingénierie Dirigée par les Modèles) ou
MDE (Model-Driven Engineering). Il fournit aux
développeurs un moyen de spécifier la manière de produire
un certain nombre de modèles cibles à partir de modèles
sources.
Le modèle de transformation doit être conforme au méta-
modèle qui définit la sémantique de transformation de modèles
(ATL).
Tous les méta-modèles doivent être conformes au méta-méta-
modèle considérée (Ecore).
4
Vue d’ensemble sur la transformation
ATL
5
Les règles d’ ATL
 Les règles :Le langage ATL est un langage hybride :
Les règles standards (Matched rules) : Ils constituent le noyau de la
transformation déclarative
Les règles paresseuses (lazy rule): Elles ressemblent aux règles
standards, à la différence qu’elles ne sont déclenchées que par d'autres
règles.
Les règles paresseuses uniques (unique lazy rule): Identiques aux règles
paresseuses non uniques, à la différence qu elles sont appliquées une unique‟
fois pour chaque tuple.
Les règles appelées (called rules) : Ils fournissent le style de programmation
impératif.
6
Contrôle des transformationsles transformations ATL ne sont pas interactives
plusieurs approches :
•utilisation de «méta-informations» dans le modèle source,
•isolation des choix dans un modèle séparé
•(utilisé conjointement au modèle source),
•transformation de transformation,
•enchainement de transformations,
orientation des transformations :
•utilisation de called rules (dangereux dans un contexte d
´eclaratif),
•utilisation des conditions d’application des matched rules.
7
Exemple d’une transformation
ATL(utilisant une matched rule)
8
QVT:Query,Views ,Transformation
Query/Views and Tranformations :
est une spécification en cours d’approbation pour standardiser un
langage de définition de transformations de modèles et de
spécifications des vues et requêtes sur les modèles basés sur
MOF.
Requête:
sur les modèles MOF
oblige à filtrer et sélectionner les éléments à partir d'un modèle
Filtrer et sélectionner des éléments d’un modèle
Vues
 est un modèle qui est dérivé d'un autre modèle.
Un mécanisme pour créer des vues
Transformation:
 Normaliser les règles de transformation 9
Architecture
10
Architecture du standard QVT
Les niveaux de QVT
• QVT-Relation : langage déclaratif (Prolog)
• QVT-Core : la sémantique des concepts déclaratifs (Pascal, C)
• QVT-Operational : langage hybride
11
QVT modeltype
• Déclare un type de métamodèle
• Permet de spécifier l’URI du métamodèle
 exemple: on défini que mjavaMMcorrespond à http:///mjava.ecore
(Déclaré avant la signature) :
12
QVT main
 Défini le point d’entré de la transformation
 La seule méthode qui est exécutée quand la transformation est lancée
 contient un ensemble d’expression
13
QVT mapping
• mapping== règle de transformation
• Définit un mapping entre [1..*] éléments sources et [1..*]
éléments cible
• Eléments source et cible définit par la signature de l’opération
• Appel de l’opération : a.map AtoB();
14
15
Kermeta :kernel de transformation
-Un langage pour construire et spécifier des métamodèles
-Un environnement pour toutes les étapes de développement basées sur
l'utilisation de métamodèles:
-De la production des MM jusqu'à leur exploitation
-Intégration et/ou interopérabilité avec les autres outils du domaine
-Adapté pour construire des DSL (Domain Specific Language)
(Ingénierie des langages)
 Approche OO permettant de simplifier les tâches des développeurs de
DSL grâce à des mécanismes dédiés:
-Manipulation intuitive des éléments de modèle
-Tissage, patron de conception,
-Clôtures lexicales,
-Type modèle, généricité, …
16
Cas d'utilisation
-Pour définir la structure, le comportement et les contraintes d'un
métamodèle (compatible avec EMOF et Ecore),
-Pour vérifier des modèles
-Pour animer/simuler des modèles
-Pour manipuler/transformer/tisser des modèles
17
Exemple
18
19
Conclusion
 Le programme de transformation de modèles peut être utilisé pour la
réutilisation de modèles ou fournir des modèles en fonction des besoins de
l’utilisateur.
 Il permet aussi de comparer de modèles dans un même domaine.
 La transformation a des avantages comme suivants :
- Permettre de diminuer le temps de développement des transformations,
- Réduire les éventuelles erreurs pouvant se produire dans le codage manuel
- Améliorer la qualité du code final de la transformation
20
Merci pour votre attentionMerci pour votre attention
21
RéférenceRéférence
22
https://www.eclipse.org/atl/
http://www.irisa.fr/triskell/ra/2005/uid45.html
http://wiki.eclipse.org/QVTo
https://www.google.tn/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=10&cad=rja&uact=8&ved=0CHkQFjAJ&u
rl=http%3A%2F%2Fstaffwww.dcs.shef.ac.uk%2Fpeople%2FA.Simons%2Fremodel
%2Fpapers%2FQVTGuide11Jan11.pdf&ei=-vw-U-LxKo-
xhAf74IGACg&usg=AFQjCNFVpPUICUS7ZtBR96lzPcii4eYrHw&sig2=PCL64alMw
xmL9aFcpWn3Tw&bvm=bv.64125504,d.ZG4

Contenu connexe

Tendances

Transformation M2M avec ATL
Transformation M2M avec ATL Transformation M2M avec ATL
Transformation M2M avec ATL
Halima Bouabdelli
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
Lilia Sfaxi
 
Neural Network -How it works, an implementation with python-.pdf
Neural Network -How it works, an implementation with python-.pdfNeural Network -How it works, an implementation with python-.pdf
Neural Network -How it works, an implementation with python-.pdf
ssuseref253b1
 
Modèle navigationnel (Mnav)
Modèle navigationnel (Mnav)Modèle navigationnel (Mnav)
Modèle navigationnel (Mnav)
Soukaina EL HAYOUNI
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
Heithem Abbes
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
Lilia Sfaxi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
Amir Souissi
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement Mobile
Lilia Sfaxi
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
ENSET, Université Hassan II Casablanca
 
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
Faycel Chaoua
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
ENSET, Université Hassan II Casablanca
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
Lilia Sfaxi
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca
 
Uml: Diagrammes de classes -- Concepts avances --- 27
Uml: Diagrammes de classes -- Concepts avances --- 27Uml: Diagrammes de classes -- Concepts avances --- 27
Uml: Diagrammes de classes -- Concepts avances --- 27
megaplanet20
 
BPM - Business Process Management
BPM - Business Process ManagementBPM - Business Process Management
BPM - Business Process Management
Mourad HASSINI
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Abdelouahed Abdou
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
Lilia Sfaxi
 
Modèle en cascade
Modèle en cascadeModèle en cascade
Modèle en cascade
Ghodhbane Mohamed Amine
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
Ghazouani Mahdi
 

Tendances (20)

Transformation M2M avec ATL
Transformation M2M avec ATL Transformation M2M avec ATL
Transformation M2M avec ATL
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Neural Network -How it works, an implementation with python-.pdf
Neural Network -How it works, an implementation with python-.pdfNeural Network -How it works, an implementation with python-.pdf
Neural Network -How it works, an implementation with python-.pdf
 
Modèle navigationnel (Mnav)
Modèle navigationnel (Mnav)Modèle navigationnel (Mnav)
Modèle navigationnel (Mnav)
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement Mobile
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Uml: Diagrammes de classes -- Concepts avances --- 27
Uml: Diagrammes de classes -- Concepts avances --- 27Uml: Diagrammes de classes -- Concepts avances --- 27
Uml: Diagrammes de classes -- Concepts avances --- 27
 
BPM - Business Process Management
BPM - Business Process ManagementBPM - Business Process Management
BPM - Business Process Management
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Modèle en cascade
Modèle en cascadeModèle en cascade
Modèle en cascade
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
 

En vedette

MDA for Cross-Platform Mobile Development
MDA for Cross-Platform Mobile DevelopmentMDA for Cross-Platform Mobile Development
MDA for Cross-Platform Mobile Development
Salma ES-Salmani
 
Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]
Olivier Le Goaër
 
Meta-modelisation avec eclipse
Meta-modelisation avec eclipseMeta-modelisation avec eclipse
Meta-modelisation avec eclipse
meriem sari
 
Spintronic - GaMnAsP - Data Storage
Spintronic - GaMnAsP - Data StorageSpintronic - GaMnAsP - Data Storage
Spintronic - GaMnAsP - Data Storage
niazi2012
 
conception
conceptionconception
conception
Shili Mohamed
 
Nanostructuration de Surface - Organic Lasers
Nanostructuration de Surface -  Organic LasersNanostructuration de Surface -  Organic Lasers
Nanostructuration de Surface - Organic Lasers
niazi2012
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
Shili Mohamed
 
BEEM magnetic microscopy - Data Storage
BEEM magnetic microscopy - Data StorageBEEM magnetic microscopy - Data Storage
BEEM magnetic microscopy - Data Storage
niazi2012
 
Soutenanceshili mohamed
Soutenanceshili mohamedSoutenanceshili mohamed
Soutenanceshili mohamed
Shili Mohamed
 
cycle de vie
cycle de vie cycle de vie
cycle de vie
Shili Mohamed
 
Présentation carteapuce
Présentation carteapucePrésentation carteapuce
Présentation carteapuce
Shili Mohamed
 
patron de conception
patron de conception patron de conception
patron de conception
Shili Mohamed
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
ENSET, Université Hassan II Casablanca
 
Builsing DSL using MDE
Builsing DSL using MDEBuilsing DSL using MDE
Builsing DSL using MDE
Sébastien Mosser
 
Idm et ihm
Idm et ihmIdm et ihm
XML Avancé : DTD, XSD, XPATH, XSLT, XQuery
XML Avancé : DTD, XSD, XPATH, XSLT, XQueryXML Avancé : DTD, XSD, XPATH, XSLT, XQuery
XML Avancé : DTD, XSD, XPATH, XSLT, XQuery
Rachid NID SAID
 
Les avantages et bénéfices du CRM
Les avantages et bénéfices du CRMLes avantages et bénéfices du CRM
Les avantages et bénéfices du CRM
NRC
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
Edward Willink
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
Erradi Mohamed
 

En vedette (20)

MDA for Cross-Platform Mobile Development
MDA for Cross-Platform Mobile DevelopmentMDA for Cross-Platform Mobile Development
MDA for Cross-Platform Mobile Development
 
Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]
 
Meta-modelisation avec eclipse
Meta-modelisation avec eclipseMeta-modelisation avec eclipse
Meta-modelisation avec eclipse
 
Spintronic - GaMnAsP - Data Storage
Spintronic - GaMnAsP - Data StorageSpintronic - GaMnAsP - Data Storage
Spintronic - GaMnAsP - Data Storage
 
conception
conceptionconception
conception
 
Cours ocl
Cours oclCours ocl
Cours ocl
 
Nanostructuration de Surface - Organic Lasers
Nanostructuration de Surface -  Organic LasersNanostructuration de Surface -  Organic Lasers
Nanostructuration de Surface - Organic Lasers
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
 
BEEM magnetic microscopy - Data Storage
BEEM magnetic microscopy - Data StorageBEEM magnetic microscopy - Data Storage
BEEM magnetic microscopy - Data Storage
 
Soutenanceshili mohamed
Soutenanceshili mohamedSoutenanceshili mohamed
Soutenanceshili mohamed
 
cycle de vie
cycle de vie cycle de vie
cycle de vie
 
Présentation carteapuce
Présentation carteapucePrésentation carteapuce
Présentation carteapuce
 
patron de conception
patron de conception patron de conception
patron de conception
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Builsing DSL using MDE
Builsing DSL using MDEBuilsing DSL using MDE
Builsing DSL using MDE
 
Idm et ihm
Idm et ihmIdm et ihm
Idm et ihm
 
XML Avancé : DTD, XSD, XPATH, XSLT, XQuery
XML Avancé : DTD, XSD, XPATH, XSLT, XQueryXML Avancé : DTD, XSD, XPATH, XSLT, XQuery
XML Avancé : DTD, XSD, XPATH, XSLT, XQuery
 
Les avantages et bénéfices du CRM
Les avantages et bénéfices du CRMLes avantages et bénéfices du CRM
Les avantages et bénéfices du CRM
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
 

Similaire à Comparaison de outils mda

UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
Mansouri Khalifa
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
Boubker ABERWAG
 
Modélisation et points de vue : Entre abstraction et pragmatisme
Modélisation et points de vue : Entre abstraction et pragmatismeModélisation et points de vue : Entre abstraction et pragmatisme
Modélisation et points de vue : Entre abstraction et pragmatismeChauvin Mariot
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)
Pascal Roques
 
Single Page Application
Single Page ApplicationSingle Page Application
Single Page Application
Cherif Bouchelaghem
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
agnes_crepet
 
UML use case class2UML use case class2.ppt
UML use case class2UML use case class2.pptUML use case class2UML use case class2.ppt
UML use case class2UML use case class2.ppt
ryoko1935
 
UML use case class une presentation sur uml .ppt
UML use case class une presentation sur uml .pptUML use case class une presentation sur uml .ppt
UML use case class une presentation sur uml .ppt
ryoko1935
 
C#
C#C#
Lmo08a.ppt
Lmo08a.pptLmo08a.ppt
Plasticitérecherche2017
Plasticitérecherche2017Plasticitérecherche2017
Plasticitérecherche2017
Anne-Marie Pinna-Dery
 
L'outil MDA acceleo.pptx
L'outil MDA acceleo.pptxL'outil MDA acceleo.pptx
L'outil MDA acceleo.pptx
SamirAwad14
 
Cours spring
Cours springCours spring
Cours spring
mohamed el haddad
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studio
horacio lassey
 
Lmo02.ppt
Lmo02.pptLmo02.ppt
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & DéveloppementsPaulin CHOUDJA
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etl
horacio lassey
 
Diapo PFE
Diapo PFEDiapo PFE
Diapo PFE
bhar amenallah
 

Similaire à Comparaison de outils mda (20)

UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Modélisation et points de vue : Entre abstraction et pragmatisme
Modélisation et points de vue : Entre abstraction et pragmatismeModélisation et points de vue : Entre abstraction et pragmatisme
Modélisation et points de vue : Entre abstraction et pragmatisme
 
Algorithme
AlgorithmeAlgorithme
Algorithme
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)
 
Uml partie 1
Uml partie 1Uml partie 1
Uml partie 1
 
Single Page Application
Single Page ApplicationSingle Page Application
Single Page Application
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
 
UML use case class2UML use case class2.ppt
UML use case class2UML use case class2.pptUML use case class2UML use case class2.ppt
UML use case class2UML use case class2.ppt
 
UML use case class une presentation sur uml .ppt
UML use case class une presentation sur uml .pptUML use case class une presentation sur uml .ppt
UML use case class une presentation sur uml .ppt
 
C#
C#C#
C#
 
Lmo08a.ppt
Lmo08a.pptLmo08a.ppt
Lmo08a.ppt
 
Plasticitérecherche2017
Plasticitérecherche2017Plasticitérecherche2017
Plasticitérecherche2017
 
L'outil MDA acceleo.pptx
L'outil MDA acceleo.pptxL'outil MDA acceleo.pptx
L'outil MDA acceleo.pptx
 
Cours spring
Cours springCours spring
Cours spring
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studio
 
Lmo02.ppt
Lmo02.pptLmo02.ppt
Lmo02.ppt
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & Développements
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etl
 
Diapo PFE
Diapo PFEDiapo PFE
Diapo PFE
 

Comparaison de outils mda

  • 1. Présenter par: Comparaison de outils MDA Proposée par: Dr.Maddah Mohamed Melle:Zaghdou d Mounira Mr:Shili Mohammed République tunisienne ministère de l’enseignement Supérieur et de la recherche Scientifique université De sousse INSTITUT SUPÉRIEUR DES SCIENCES APPLIQUÉES ET DE TECHNOLOGIE DE SOUSSE
  • 2. Introduction Atlas Transformation Language QVT:Query,Views ,Transformation Kermeta :kernel de transformation Conclusion PLAN: 2
  • 3. 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.  Ces outils de transformation se diffèrent 3
  • 4. ATL: Atlas transformation Language ATL est un langage de transformation de modèles dans le domaine de l’IDM (Ingénierie Dirigée par les Modèles) ou MDE (Model-Driven Engineering). Il fournit aux développeurs un moyen de spécifier la manière de produire un certain nombre de modèles cibles à partir de modèles sources. Le modèle de transformation doit être conforme au méta- modèle qui définit la sémantique de transformation de modèles (ATL). Tous les méta-modèles doivent être conformes au méta-méta- modèle considérée (Ecore). 4
  • 5. Vue d’ensemble sur la transformation ATL 5
  • 6. Les règles d’ ATL  Les règles :Le langage ATL est un langage hybride : Les règles standards (Matched rules) : Ils constituent le noyau de la transformation déclarative Les règles paresseuses (lazy rule): Elles ressemblent aux règles standards, à la différence qu’elles ne sont déclenchées que par d'autres règles. Les règles paresseuses uniques (unique lazy rule): Identiques aux règles paresseuses non uniques, à la différence qu elles sont appliquées une unique‟ fois pour chaque tuple. Les règles appelées (called rules) : Ils fournissent le style de programmation impératif. 6
  • 7. Contrôle des transformationsles transformations ATL ne sont pas interactives plusieurs approches : •utilisation de «méta-informations» dans le modèle source, •isolation des choix dans un modèle séparé •(utilisé conjointement au modèle source), •transformation de transformation, •enchainement de transformations, orientation des transformations : •utilisation de called rules (dangereux dans un contexte d ´eclaratif), •utilisation des conditions d’application des matched rules. 7
  • 9. QVT:Query,Views ,Transformation Query/Views and Tranformations : est une spécification en cours d’approbation pour standardiser un langage de définition de transformations de modèles et de spécifications des vues et requêtes sur les modèles basés sur MOF. Requête: sur les modèles MOF oblige à filtrer et sélectionner les éléments à partir d'un modèle Filtrer et sélectionner des éléments d’un modèle Vues  est un modèle qui est dérivé d'un autre modèle. Un mécanisme pour créer des vues Transformation:  Normaliser les règles de transformation 9
  • 11. Les niveaux de QVT • QVT-Relation : langage déclaratif (Prolog) • QVT-Core : la sémantique des concepts déclaratifs (Pascal, C) • QVT-Operational : langage hybride 11
  • 12. QVT modeltype • Déclare un type de métamodèle • Permet de spécifier l’URI du métamodèle  exemple: on défini que mjavaMMcorrespond à http:///mjava.ecore (Déclaré avant la signature) : 12
  • 13. QVT main  Défini le point d’entré de la transformation  La seule méthode qui est exécutée quand la transformation est lancée  contient un ensemble d’expression 13
  • 14. QVT mapping • mapping== règle de transformation • Définit un mapping entre [1..*] éléments sources et [1..*] éléments cible • Eléments source et cible définit par la signature de l’opération • Appel de l’opération : a.map AtoB(); 14
  • 15. 15
  • 16. Kermeta :kernel de transformation -Un langage pour construire et spécifier des métamodèles -Un environnement pour toutes les étapes de développement basées sur l'utilisation de métamodèles: -De la production des MM jusqu'à leur exploitation -Intégration et/ou interopérabilité avec les autres outils du domaine -Adapté pour construire des DSL (Domain Specific Language) (Ingénierie des langages)  Approche OO permettant de simplifier les tâches des développeurs de DSL grâce à des mécanismes dédiés: -Manipulation intuitive des éléments de modèle -Tissage, patron de conception, -Clôtures lexicales, -Type modèle, généricité, … 16
  • 17. Cas d'utilisation -Pour définir la structure, le comportement et les contraintes d'un métamodèle (compatible avec EMOF et Ecore), -Pour vérifier des modèles -Pour animer/simuler des modèles -Pour manipuler/transformer/tisser des modèles 17
  • 19. 19
  • 20. Conclusion  Le programme de transformation de modèles peut être utilisé pour la réutilisation de modèles ou fournir des modèles en fonction des besoins de l’utilisateur.  Il permet aussi de comparer de modèles dans un même domaine.  La transformation a des avantages comme suivants : - Permettre de diminuer le temps de développement des transformations, - Réduire les éventuelles erreurs pouvant se produire dans le codage manuel - Améliorer la qualité du code final de la transformation 20
  • 21. Merci pour votre attentionMerci pour votre attention 21

Notes de l'éditeur

  1. Deux langages déclaratifs : le langage de relations (Relations) et le langage noyau (Core), doivent permettre d’opérer des filtrages sur les éléments des modèles.Deux langages procéduraux : un langage d’opérations de filtrage (Operational Mappings) et un langage d’implémentations opaque d’opérations (Black Box), doivent donner accès aux relations et éventuellement aux opérations des modèles traités. -------------------------------------------------------------------------------------------------------------------------------------- La dernière version du standard QVT [OMG-QVT, 2008] présente un caractère hybride dans le sens qu’elle est composée de trois langages de transformation différents (voir Figure II.8). La partie déclarative de QVT est définie par les langages Relations et Core qui ont des niveaux d’abstraction différents. Relations est un langage orienté utilisateur permettant de définir des transformations à un niveau d’abstraction élevé. Il a une syntaxe textuelle et graphique. Le langage Core forme l’infrastructure de base pour la partie déclarative ; c’est un langage technique de bas niveau défini par une syntaxe textuelle. Il sert à spécifier la sémantique d’exécution du langage Relations, sous la forme d’une transformation Relations2Core. La vision déclarative passe par une association de patterns, côté source et cible pour exprimer la transformation. Manifestement, elle permet une expression plus simple des transformations de type mappings (transformation unidirectionnelle). La composante impérative de QVT est supportée par le langage Operational Mappings. La vision impérative impose une navigation explicite et une création explicite des éléments du modèle cible. Le langage Operational Mappings propose un premier mécanisme d’extension des deux langages déclaratifs de QVT (Relations, Core) en ajoutant des constructions impératives (séquence, sélection, répétition, etc.) ainsi que des constructions OCL à effet de bord. Les langages de style impératif sont mieux adaptés pour des transformations complexes qui comprennent une composante algorithmique importante. Par rapport au style déclaratif, ils ont l’avantage de gérer les cas optionnels dans une transformation. Enfin, QVT propose un deuxième mécanisme d’extension pour spécifier des transformations, en permettant d’invoquer des fonctionnalités de transformations implémentées dans un langage externe, appelé « Black Box »