SlideShare una empresa de Scribd logo
1 de 18
Acceleo
Plan
•Introduction
•La création d'un projet UML
•La création du générateur
•Conclusion
Introduction
• Acceleo a été conçu pour permettre d'industrialiser le
développement des applications informatiques et il permet
de mettre en œuvre simplement et efficacement l'approche
MDA (Model Driven Architecture).
• Acceleo est un outil de génération de code sous Eclipse. Il
permet de concevoir des modules de génération de code
dans un langage choisi par le développeur, à partir d'un ou
plusieurs modèles, et fournit aussi des modules de génération
de code prêts à être utilisés.
1 / 15
La création du générateur
• Notre objectif est de créer un module capable de prendre un
modèle UML2 en entrée et de créer un ensemble de fichiers
Java.
• Le principe de fonctionnement d'Acceleo est le suivant:
Acceleo utilise un template pour générer du code à partir d'un
modèle. La réalisation d'un nouveau module de génération
passe donc par la création de templates.
2 / 15
Principe général d’Acceleo
3 / 15
• Dans un premier temps, il faut créer un projet de génération:
• Exécuter «File > New > Generator Project».
• Pour créer le fichier du générateur aller à
• «File > New > Empty Generator», ceci lance un assistant en
deux étapes. Dans la première étape, il faut renseigner le type
du méta-modèle d'entrée. Le méta-modèle dans notre cas
est UML2 qui a pour URI:
http://www.eclipse.org/uml2/2.0.0/UML
4 / 15
Template
• Un template de génération est un patron qui doit délimiter de
façon claire le texte statique généré et les éléments variables.
Dans Acceleo le texte variable commence par <% et se termine
par %>.
5 / 15
Les éléments de syntaxe
1) Les commentaires:
Il est possible de commenter les scripts de génération en
insérant des explications d'une ou plusieurs lignes entre les
balises <% - - et - - %>. Par exemple:
<%--Ceci est un commentaire--%>
6 / 15
2) metamodel:
Le mot clé «metamodel» permet de définir le méta-modèle
utilisé dans le script de génération. La syntaxe de cette
instruction est:
Où URIDeMonMetamodèle est l'URI qui identifie le méta
modèle utilisé. Par exemple pour le méta-modèle UML 2.0
on utilise l’URI :
http://www.eclipse.org/uml2/2.0.0/UML
metamodel URIDeMonMetamodèle
7 / 15
3) script:
La balise «script» permet d'identifier le script de génération et le
type d'objet sur lequel il s'applique. La syntaxe de cette balise
est:
<%script type="monType" name="identifiant"
file=" nomFGénéré " description="maDescription"
post="monPost"%>
8 / 15
Résumé des attributs
Nom Description Statut
type Type d'objet sur lequel s'applique le
script (classe, attribut ...)
Obligatoire
name Nom du script Obligatoire
file Nom du fichier à générer Optionnel
post Expression à exécuter sur le résultat de
l'évaluation
Optionnel
description Commentaire Optionnel
9 / 15
4) for:
L'instruction «for» est l'implémentation d'une boucle. La syntaxe
de cette instruction est:
<%for (maListeDObjets) {%>
instructions exécutées sur chaque élément de maListeDObjets
<%}%>
10 / 15
5) if:
L'instruction «if» permet de tester une condition. La syntaxe de
cette instruction est:
<%if (expressionBooléenne) {%>
instructions exécutées si expressionBooléenne est vraie
<%} else {%>
instructions exécutées sinon
<%}%>
11 / 15
Création du fichier d'exécution
• L'entrée «New > Chain» du menu contextuel du projet
permet de lancer l'assistant de création d’une chaîne
d'exécution:
Sélectionner à nouveau l'URI de UML2.
Sélectionner le modèle.
Cocher le générateur.
12 / 15
Code utilisateur
• Pour le moment, toutes les modifications apportées à un fichier
généré sont écrasées à la génération suivante. Pour résoudre
ce problème, Acceleo possède un mécanisme de balises
permettant de définir des zones destinées à accueillir du code
utilisateur qui ne sera pas écrasé à la génération suivante. Il
faut ajouter ces balises aux bons endroits dans le template afin
de pouvoir insérer du code utilisateur.
13 / 15
• Tout le code cible écrit entre les balises identifiées par
<%startUserCode%> et <%endUserCode%> est protégé et n'est
pas écrasé à la génération suivante ce qui permet de
personnaliser le code généré.
• Le texte sur la même ligne que la balise <%startUserCode%> est
un identifiant pour la zone de code utilisateur, cet identifiant
doit être unique pour garantir la conservation du code manuel
d'une génération à une autre.
14 / 15
Conclusion
• Cet exposé était une courte introduction des possibilités
offertes par Acceleo pour la génération de code. L'utilisation
de l'outil Acceleo apporte une certaine indépendance vis à vis
de la plateforme technologique. De plus la maintenance est
facilitée et on obtient une vraie synchronisation entre le code
et le modèle. Ce dernier passe du statut de modèle
documentaire à celui de modèle productif.
15 / 15
Merci de votre
attention !

Más contenido relacionado

Similar a L'outil MDA acceleo.pptx

Splpv2 annexes-c
Splpv2 annexes-cSplpv2 annexes-c
Splpv2 annexes-c
xerty
 
Formation viseo modelisation_uml_avec_enterprise_architect
Formation viseo modelisation_uml_avec_enterprise_architectFormation viseo modelisation_uml_avec_enterprise_architect
Formation viseo modelisation_uml_avec_enterprise_architect
Mïna You
 

Similar a L'outil MDA acceleo.pptx (20)

Splpv2 annexes-c
Splpv2 annexes-cSplpv2 annexes-c
Splpv2 annexes-c
 
Diapo PFE
Diapo PFEDiapo PFE
Diapo PFE
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
MAD Model Aggregator eDitor (EMF)
MAD Model Aggregator eDitor (EMF)MAD Model Aggregator eDitor (EMF)
MAD Model Aggregator eDitor (EMF)
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdf
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdf
 
01 presentation-application-software craftsmanship
01 presentation-application-software craftsmanship01 presentation-application-software craftsmanship
01 presentation-application-software craftsmanship
 
Workshop angular2
Workshop angular2 Workshop angular2
Workshop angular2
 
AOP.pptx
AOP.pptxAOP.pptx
AOP.pptx
 
ATL et SVG
ATL et SVGATL et SVG
ATL et SVG
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
Angular 11
Angular 11Angular 11
Angular 11
 
Aspectj
AspectjAspectj
Aspectj
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)
 
Transformation M2M avec ATL
Transformation M2M avec ATL Transformation M2M avec ATL
Transformation M2M avec ATL
 
les style d'architecture
les style d'architecture les style d'architecture
les style d'architecture
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
 
Formation viseo modelisation_uml_avec_enterprise_architect
Formation viseo modelisation_uml_avec_enterprise_architectFormation viseo modelisation_uml_avec_enterprise_architect
Formation viseo modelisation_uml_avec_enterprise_architect
 

Más de SamirAwad14 (20)

Etude comparative des classifieurs Naïve Bayes et SVM
Etude comparative des classifieurs Naïve Bayes et SVMEtude comparative des classifieurs Naïve Bayes et SVM
Etude comparative des classifieurs Naïve Bayes et SVM
 
NS3 - Exploitation.pptx
NS3 - Exploitation.pptxNS3 - Exploitation.pptx
NS3 - Exploitation.pptx
 
replication.pptx
replication.pptxreplication.pptx
replication.pptx
 
srep_cours_04.pdf
srep_cours_04.pdfsrep_cours_04.pdf
srep_cours_04.pdf
 
srep_cours_06.pdf
srep_cours_06.pdfsrep_cours_06.pdf
srep_cours_06.pdf
 
srep_cours_05.pdf
srep_cours_05.pdfsrep_cours_05.pdf
srep_cours_05.pdf
 
SQL-ORACLE.pptx
SQL-ORACLE.pptxSQL-ORACLE.pptx
SQL-ORACLE.pptx
 
trigger.pptx
trigger.pptxtrigger.pptx
trigger.pptx
 
Introduction.pptx
Introduction.pptxIntroduction.pptx
Introduction.pptx
 
repartition oracle.pptx
repartition oracle.pptxrepartition oracle.pptx
repartition oracle.pptx
 
Transaction.pptx
Transaction.pptxTransaction.pptx
Transaction.pptx
 
controle donnee.pptx
controle donnee.pptxcontrole donnee.pptx
controle donnee.pptx
 
SQL-ORACLE.pdf
SQL-ORACLE.pdfSQL-ORACLE.pdf
SQL-ORACLE.pdf
 
TD.pdf
TD.pdfTD.pdf
TD.pdf
 
trigger.pdf
trigger.pdftrigger.pdf
trigger.pdf
 
controle donnee.pdf
controle donnee.pdfcontrole donnee.pdf
controle donnee.pdf
 
Transaction.pdf
Transaction.pdfTransaction.pdf
Transaction.pdf
 
replication.pdf
replication.pdfreplication.pdf
replication.pdf
 
gestion utilisateur.pdf
gestion utilisateur.pdfgestion utilisateur.pdf
gestion utilisateur.pdf
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdf
 

Último

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 

Último (19)

L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 

L'outil MDA acceleo.pptx

  • 2. Plan •Introduction •La création d'un projet UML •La création du générateur •Conclusion
  • 3. Introduction • Acceleo a été conçu pour permettre d'industrialiser le développement des applications informatiques et il permet de mettre en œuvre simplement et efficacement l'approche MDA (Model Driven Architecture). • Acceleo est un outil de génération de code sous Eclipse. Il permet de concevoir des modules de génération de code dans un langage choisi par le développeur, à partir d'un ou plusieurs modèles, et fournit aussi des modules de génération de code prêts à être utilisés. 1 / 15
  • 4. La création du générateur • Notre objectif est de créer un module capable de prendre un modèle UML2 en entrée et de créer un ensemble de fichiers Java. • Le principe de fonctionnement d'Acceleo est le suivant: Acceleo utilise un template pour générer du code à partir d'un modèle. La réalisation d'un nouveau module de génération passe donc par la création de templates. 2 / 15
  • 6. • Dans un premier temps, il faut créer un projet de génération: • Exécuter «File > New > Generator Project». • Pour créer le fichier du générateur aller à • «File > New > Empty Generator», ceci lance un assistant en deux étapes. Dans la première étape, il faut renseigner le type du méta-modèle d'entrée. Le méta-modèle dans notre cas est UML2 qui a pour URI: http://www.eclipse.org/uml2/2.0.0/UML 4 / 15
  • 7. Template • Un template de génération est un patron qui doit délimiter de façon claire le texte statique généré et les éléments variables. Dans Acceleo le texte variable commence par <% et se termine par %>. 5 / 15
  • 8. Les éléments de syntaxe 1) Les commentaires: Il est possible de commenter les scripts de génération en insérant des explications d'une ou plusieurs lignes entre les balises <% - - et - - %>. Par exemple: <%--Ceci est un commentaire--%> 6 / 15
  • 9. 2) metamodel: Le mot clé «metamodel» permet de définir le méta-modèle utilisé dans le script de génération. La syntaxe de cette instruction est: Où URIDeMonMetamodèle est l'URI qui identifie le méta modèle utilisé. Par exemple pour le méta-modèle UML 2.0 on utilise l’URI : http://www.eclipse.org/uml2/2.0.0/UML metamodel URIDeMonMetamodèle 7 / 15
  • 10. 3) script: La balise «script» permet d'identifier le script de génération et le type d'objet sur lequel il s'applique. La syntaxe de cette balise est: <%script type="monType" name="identifiant" file=" nomFGénéré " description="maDescription" post="monPost"%> 8 / 15
  • 11. Résumé des attributs Nom Description Statut type Type d'objet sur lequel s'applique le script (classe, attribut ...) Obligatoire name Nom du script Obligatoire file Nom du fichier à générer Optionnel post Expression à exécuter sur le résultat de l'évaluation Optionnel description Commentaire Optionnel 9 / 15
  • 12. 4) for: L'instruction «for» est l'implémentation d'une boucle. La syntaxe de cette instruction est: <%for (maListeDObjets) {%> instructions exécutées sur chaque élément de maListeDObjets <%}%> 10 / 15
  • 13. 5) if: L'instruction «if» permet de tester une condition. La syntaxe de cette instruction est: <%if (expressionBooléenne) {%> instructions exécutées si expressionBooléenne est vraie <%} else {%> instructions exécutées sinon <%}%> 11 / 15
  • 14. Création du fichier d'exécution • L'entrée «New > Chain» du menu contextuel du projet permet de lancer l'assistant de création d’une chaîne d'exécution: Sélectionner à nouveau l'URI de UML2. Sélectionner le modèle. Cocher le générateur. 12 / 15
  • 15. Code utilisateur • Pour le moment, toutes les modifications apportées à un fichier généré sont écrasées à la génération suivante. Pour résoudre ce problème, Acceleo possède un mécanisme de balises permettant de définir des zones destinées à accueillir du code utilisateur qui ne sera pas écrasé à la génération suivante. Il faut ajouter ces balises aux bons endroits dans le template afin de pouvoir insérer du code utilisateur. 13 / 15
  • 16. • Tout le code cible écrit entre les balises identifiées par <%startUserCode%> et <%endUserCode%> est protégé et n'est pas écrasé à la génération suivante ce qui permet de personnaliser le code généré. • Le texte sur la même ligne que la balise <%startUserCode%> est un identifiant pour la zone de code utilisateur, cet identifiant doit être unique pour garantir la conservation du code manuel d'une génération à une autre. 14 / 15
  • 17. Conclusion • Cet exposé était une courte introduction des possibilités offertes par Acceleo pour la génération de code. L'utilisation de l'outil Acceleo apporte une certaine indépendance vis à vis de la plateforme technologique. De plus la maintenance est facilitée et on obtient une vraie synchronisation entre le code et le modèle. Ce dernier passe du statut de modèle documentaire à celui de modèle productif. 15 / 15