Transformation de modèle à texte avec Acceleo

Documents pareils
Générer du code à partir d une description de haut niveau

Introduction à Eclipse

TP1 : Initiation à Java et Eclipse

Etude de cas : PGE JEE V2

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

BIRT (Business Intelligence and Reporting Tools)

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

TP1 : Initiation à Java et Eclipse

FileZilla. Sauvegarder son site Guppy à l aide de. Sommaire:

mailpro mode d'emploi

SOMMAIRE. Accéder à votre espace client. Les Fichiers communs. Visualiser les documents. Accéder à votre espace client. Changer de Workspace

WebSpy Analyzer Giga 2.1 Guide de démarrage

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Warren PAULUS. Android SDK et Android x86

Récupérer les documents stockés sur l ENTG

5004H103 Ed. 02. Procédure d installation du logiciel AKO-5004

TD/TP 1 Introduction au SDK d Android

Atelier Le gestionnaire de fichier

1. Installation d'un serveur d'application JBoss:

Mise en oeuvre d un Serveur de CD AXIS StorPoint

MANUEL D UTILISATION DES OUTILS «MapCERN»

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Votre premier projet Android

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Guide Expert Comptable Production Coala

Création d un service web avec NetBeans 5.5 et SJAS 9

Procédure d installation des logiciels EBP sous environnement ESU4. Serveur SCRIBE ou Windows

Guide de l utilisateur Faronics System Profiler Standard

Manuel d utilisation du site web de l ONRN

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

Placez vous au préalable à l endroit voulu dans l arborescence avant de cliquer sur l icône Nouveau Répertoire

Gestion des documents avec ALFRESCO

DEPLOIEMENT MICROSOFT WINDOWS

Guide d installation du logiciel HI Version 2.7. Guide d installation du logiciel HI Version 9.4

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

< Atelier 1 /> Démarrer une application web

Tutoriel Atout Facture. 14/01/2015 Codelpi

WinReporter Guide de démarrage rapide. Version 4

R00 Installation du logiciel R sous Windows

E-Remises Paramétrage des navigateurs

Mobility Tool + : mode d emploi

SOMMAIRE. Comment se connecter?

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Tutoriel d installation de Hibernate avec Eclipse

TP1 : Initiation à l algorithmique (1 séance)

Restaurer des données

Explorer et apprendre à utiliser la clé USB Île-de-France

Volet de visualisation

Publication dans le Back Office

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

SUGARCRM MODULE RAPPORTS

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Apprendre Java et C++ avec NetBeans

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Construire des plug-ins pour SAS Management Console SAS 9.1

ECLIPSE ET PDT (Php development tools)

TP Wireshark. Première approche de Wireshark. 1 ) Lancer Wireshark (double clic sur l icône sur le bureau). La fenêtre

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

A2I. Site Web de l association des ingénieurs INSA de Lyon ESPACE EMPLOI

Cliquez sur le site que vous souhaitez consulter, il s affichera directement dans le navigateur.

wxwidgets dans un environnement Microsoft Windows

Documentation Technique du programme HYDRONDE_LN

Concept-Informatique 2007

Projet de développement

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

LES ACCES DISTANTS ET SECURISES. Installation et utilisation du client. Cisco AnyConnect VPN Client. pour Windows

FICHE PRATIQUE N 18 ENVOYER UN ING

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

HTTP Commander. Table des matières. 1-Présentation de HTTP Commander

Formation PROFIS Installation. Module 1 : Plateforme générale. PROFIS Installation I Plateforme générale I MKT E2 CM I

INSTALLATION CONFIGURATION D OWNCLOUD. La réponse informatique

Principales Evolutions Version

Installation et compilation de gnurbs sous Windows

Eclipse atelier Java

MISE EN PLACE D UN SERVEUR DHCP SOUS WINDOWS SERVEUR 2003 R2

Etape 1 : création d une «commande» (inscription et paiement)

Installation d un ordinateur avec reprise des données

Cher utilisateur, Nous vous souhaitons une excellente utilisation d INES.FreeEdition. L équipe INES info@ines.eu

Sélection du contrôleur

Manuel d utilisation

AFTEC SIO 2. Christophe BOUTHIER Page 1

1 Introduction - Qu est-ce que le logiciel R?

Séquencer une application

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Business Sharepoint Contenu

Quelques mots à propos de Sage

FAIRE UN PAIEMENT TIPI

Publier dans la Base Documentaire

GUIDE DE L UTILISATEUR INSTALLATION & CONFIGURATION

Installer Enterprise Miner 5.1 en SAS environnement Windows

PARTAGER UN ANNUAIRE COLLECTIF DE SIGNETS AVEC DEL.ICIO.US

Création du projet : 1 sur 13

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

Manuel d utilisation du web mail Zimbra 7.1

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Transcription:

INSA 5GEI IDM INGÉNIERIE DIRIGÉE PAR LES MODÈLES BE TP 3 2016-2017 Nous avons vu dans les TP précédents comment saisir ou modifier un modèle en utilisant un éditeur reflexif arborescent. Nous allons maintenant nous intéresser à la transformation d un modèle en sa représentation textuelle. On parle ici de transformation modèle vers texte (M2T). Nous allons utiliser l outil Acceleo 1 de la société Obeo. 1 Nous commençons par engendrer une syntaxe concrète à partir d un modèle SimplePDL. Ensuite, nous engendrerons un fichier dot pour pouvoir visualiser graphiquement un modèle de procédé. Exercice 1 : Comprendre la définition d un syntaxe concrète textuelle avec Acceleo Dans un premier temps, nous souhaitons pouvoir engendrer la représentation d un modèle SimplePDL dans une syntaxe concrète textuelle. Voici la syntaxe choisie illustrée sur un modèle de processus. process developpement { wd RedactionDoc wd Conception wd Developpement wd RedactionTests ws Conception f2f RedactionDoc ws Conception s2s RedactionDoc ws Conception f2s Developpement ws Conception s2s RedactionTests ws Developpement f2f RedactionTests } Le principe d Acceleo est de s appuyer sur des templates des fichiers à engendrer. Le template qui correspond à la syntaxe PDL1 est donné au listing 1. 1.1 Expliquer les différents éléments qui apparaissent sur le listing 1. On pourra s appuyer sur la documentation fournie dans Eclipse (Help > Help Contents > Acceleo). Exercice 2 : Créer et appliquer un template Acceleo Pour créer et appliquer un template Acceleo, nous allons nous servir du métamodèle de SimplePDL. On utilisera le métamodèle et les modèles SimplePDL des TP précédents. 2.1 Créer un projet de génération Acceleo. Pour créer un projet de génération Acceleo, faire New > Other > Acceleo Model to Text > Acceleo Project. 1. www.acceleo.org BE TP 3 1/5

Listing 1 Template Acceleo pour engendrer la syntaxe PDL1 à partir d un modèle SimplePDL 1 [comment encoding = UTF-8 /] 2 [module topdl1( http://simplepdl )] 3 4 [comment Generation de la syntaxe PDL1 Ã partir d un modã le de processus /] 5 6 [template public topdl1(aprocess : Process)] 7 [comment @main/] 8 [file (aprocess.name.concat(.pdl1 ), false, UTF-8 )] 9 process [aprocess.name/] { 10 [for (wd : WorkDefinition aprocess.processelements->getwds())] 11 wd [wd.name/] 12 [/for] 13 [for (ws : WorkSequence aprocess.processelements->getwss())] 14 ws [ws.predecessor.name/] [ws.getwstype()/] [ws.successor.name/] 15 [/for] 16 } 17 [/file] 18 [/template] 19 20 [query public getwds(elements : OrderedSet(ProcessElement)) : OrderedSet(WorkDefinition) = 21 elements->select( e e.oclistypeof(workdefinition) ) 22 ->collect( e e.oclastype(workdefinition) ) 23 ->asorderedset() 24 /] 25 26 [query public getwss(elements : OrderedSet(ProcessElement)) : OrderedSet(WorkSequence) = 27 elements->select( e e.oclistypeof(worksequence) ) 28 ->collect( e e.oclastype(worksequence) ) 29 ->asorderedset() 30 /] 31 32 [template public getwstype(ws : WorkSequence)] 33 [if (ws.linktype = WorkSequenceType::startToStart)] 34 s2s[elseif (ws.linktype = WorkSequenceType::startToFinish)] 35 s2f[elseif (ws.linktype = WorkSequenceType::finishToStart)] 36 f2s[elseif (ws.linktype = WorkSequenceType::finishToFinish)] 37 f2f[/if] 38 [/template] BE TP 3 2/5

Donner un nom au projet (fr.enseeiht.simplepdl.topdl1) puis faire Next. Dans la fenêtre qui s affiche nous allons définir les paramètres de notre génération Acceleo (fig. 1). Il s agit de : 1. saisir le nom du module : topdl1 2. sélectionner le métamodèle : http://simplepdl. Il faut cliquer sur le +, cocher Runtime Version et utiliser le motif * simp. 3. sélectionner le type de l élément sur lequel s appliquera la transformation : Process 4. définir le nom du template : topdl1 5. cocher Generate file et Main template. Faire Finish pour terminer la création du projet. Un nouveau projet est alors engendré. FIGURE 1 Informations à fournir à l assistant de création Acceleo 2.2 Le projet contient un dossier de sources (src). Dans le paquetage fr.enseeiht.simplepdl.topdl1.main, un template de génération a été engendré (topdl1.mtl). Ouvrir ce fichier. 2.3 Remplacer le contenu du fichier topdl1.mtl par celui du listing 1 (disponible sur le site du module). 2.4 Créons un lanceur Acceleo pour lancer la transformation depuis un modèle SimplePDL. 2.4.1 Créer un lanceur pour Acceleo. 1. Se placer dans la perspective Acceleo. BE TP 3 3/5

2. Sélectionner dans le "Package Explorer" le fichier "topdl1.mtl" dans le greffon Acceleo "fr.enseeiht.simplepdl.topdl1" (répertoire src/fr.enseeiht.simplepdl.topdl1.main). 3. Créer un greffon "Acceleo UI Launcher Project" (menu File, entrée New). Celui-ci doit s appeler "fr.enseeiht.simplepdl.m2t.topdl1.ui". Avancer avec "Next" deux fois et préciser la valeur "*.simplepdl" pour le champ "Model file name filter :". 4. Déployer les greffons "fr.enseeiht.simplepdl.topdl1" et "fr.enseeiht.simplepdl.topdl1.ui". 2.4.2 Tester le greffon M2T déployé. Après le redémarrage d Eclipse, sélectionner un modèle SimplePDL, faite un clic droit et sélectionner l entrée "Acceleo Model to Text", puis l entrée correspondant à la transformation. La transformation va créer un dossier src-gen lors de la première application qui contiendra les fichiers générés. Exercice 3 : Application à la génération d un fichier.dot Écrire une transformation modèle à texte qui permet de traduire un modèle de procédé en une syntaxe dot. Voici un exemple simple de fichier dot pour le même modèle de processus : digraph developpement { Conception -> RedactionDoc [arrowhead=vee label=f2f] Conception -> RedactionDoc [arrowhead=vee label=s2s] Conception -> Developpement [arrowhead=vee label=f2s] Conception -> RedactionTests [arrowhead=vee label=s2s] Developpement -> RedactionTests [arrowhead=vee label=f2f] } Une fois le fichier.dot obtenu, on obtient le graphe correspondant en PDF en faisant : dot ficher.dot -Tpdf -o fichier.pdf La documentation et des exemples concernant le langage dot peuvent être trouvés à l URL : http://www.graphviz.org/documentation.php 3.1 Créer un projet fr.enseeiht.petrinet.todot et écrire puis tester un template Acceleo todot.mtl pour engendrer un fichier.dot correspondant à un modèle de processus. On pourra ajouter un template principal à notre projet de génération avec : New > Other > Acceleo Model to Text > Acceleo Main Module File. 2 Application aux réseaux de Petri Exercice 4 : Transformations modèle à texte pour les réseaux de Petri Nous allons maintenant définir une transformation modèle à texte pour les réseaux de Petri. L objectif est d engendrer la syntaxe textuelle utilisée par les outils Tina 2, en particulier nd (Net- Draw). La figure 2(a) illustre les principaux concepts présents des réseaux de Petri temporels que nous considérons. Le fichier textuel de ce réseau est donné au listing 2(b) au format Tina. 4.1 Créer un projet fr.enseeiht.petrinet.totina et écrire un template Acceleo totina.mtl pour transformer un modèle de réseau de Petri en un fichier.net de Tina. Pour visualiser le réseau, 2. http ://www.laas.fr/tina/ BE TP 3 4/5

1 net ifip 2 pl p1 (1) 3 pl p2 (2) 4 pl p3 (0) 5 pl p4 (0) 6 pl p5 (0) 7 tr t1 [4,9] p1 p2*2 -> p3 p4 p5 8 tr t2 [0,2] p4 -> p2 9 tr t3 [1,w[ p5 -> p2 10 tr t4 [0,2] p3 p5?1 -> p3 11 tr t5 [0,3] p3 -> p1 (a) syntaxe graphique (b) syntaxe textuelle FIGURE 2 Exemple de réseau de Petri faire nd fichier.net, puis edit > draw. N oubliez pas de créer le lanceur fr.enseeiht.petrinet.totina.ui et de déployer les projets. 4.2 Créer un projet fr.enseeiht.petrinet.todot et écrire un template Acceleo todot.mtl pour transformer un modèle de réseau de Petri en un fichier.dot qui permettra de visualiser graphiquement le réseau. N oubliez pas de créer le lanceur fr.enseeiht.petrinet.todot.ui et de déployer les projets. 3 Application à la génération de propriétés LTL Exercice 5 : Vérification de propriétés sur un modèle SimplePDL Nous nous intéressons maintenant à vérifier des propriétés sur un modèle de procédé, les traduire sur le réseau de Petri correspondant et utiliser les outils associés aux réseaux de Petri, par exemple la boîte à outils Tina, pour les vérifier. Voici quelques propriétés qui intéressent les gens qui définissent des procédés : 1. un processus se termine si toutes les activités qui le composent se terminent. 2. toute activité commencée doit pouvoir se terminer. 3.... 5.1 Indiquer comment s expriment les propriétés ci-dessus sur le modèle de réseau de Petri correspondant à un modèle de procédé. 5.2 Donner la transformation Acceleo qui permet de réaliser la traduction de ces propriétés vers les réseaux de Petri. BE TP 3 5/5