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

BIRT (Business Intelligence and Reporting Tools)

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

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

TP1 : Initiation à Java et Eclipse

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

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

TD/TP 1 Introduction au SDK d Android

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

mailpro mode d'emploi

Etude de cas : PGE JEE V2

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

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.

MANUEL D UTILISATION DES OUTILS «MapCERN»

Documentation Technique du programme HYDRONDE_LN

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

Votre premier projet Android

Warren PAULUS. Android SDK et Android x86

Création du projet : 1 sur 13

FAIRE UN PAIEMENT TIPI

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

Mobility Tool + : mode d emploi

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

Mise en oeuvre d un Serveur de CD AXIS StorPoint

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

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

WebSpy Analyzer Giga 2.1 Guide de démarrage

GANTTPROJECT. Julien TENDERO

wxwidgets dans un environnement Microsoft Windows

Apprendre Java et C++ avec NetBeans

ECLIPSE ET PDT (Php development tools)

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

Installation et compilation de gnurbs sous Windows

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

Bases Java - Eclipse / Netbeans

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Atelier Le gestionnaire de fichier

Tutoriel code::blocks


Principales Evolutions Version

Publier dans la Base Documentaire

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

Approche Contract First

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

esms Desktop Guide de l utilisateur

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

SUGARCRM MODULE RAPPORTS

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

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

E-Remises Paramétrage des navigateurs

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

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

Publication dans le Back Office

Formation Administrateur de Données Localisées (Prodige V3.2) Recherche et consultation des métadonnées

NAS 208 WebDAV Une alternative au protocole FTP pour le partage sécurisé des fichiers

Supprimer définitivement un fichier

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

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

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

TUTORAT DU PORTAIL FAMILLES

TNT Express. Magento

Business Sharepoint Contenu

Création d un formulaire de contact Procédure

4D Business Kit version 2.2 ADDENDUM

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Guide d installation de MySQL

Installer Enterprise Miner 5.1 en SAS environnement Windows

Publier un Carnet Blanc

Utiliser le service de messagerie électronique de Google : gmail (1)

INFORM :: DEMARRAGE RAPIDE A service by KIS

Tutoriel d installation de Hibernate avec Eclipse

MANUEL UTILISATEUR : RECETTES TABLE DES MATIERES PIE : PRESTATIONS INTERNES ET EXTERNES

A l aide de votre vous pouvez visiter un site web!

INSTALLATION CONFIGURATION D OWNCLOUD. La réponse informatique

Portabilité sur système Android d un système de borne d information

Comment installer le gestionnaire de licence avec une nouvelle version de Arche / Effel / Melody?

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

Tutoriel première utilisation ICEM-CFD. Couche limite et modification du maillage en 2D

Manuel d utilisation du site web de l ONRN

Once the installation is complete, you can delete the temporary Zip files..

MANUEL D INSTALLATION du module Chronopost pour. version 1.0.5

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Quelques mots à propos de Sage

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

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

Installation et configuration du logiciel BauBit

locatiolocatio GUIDE D'UTILISATION DE L'APPLICATION WEB LOCATIO Garantie des risques de la location immobilière

1 Introduction et installation

Fiches d aide à l utilisation

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

1 INTRODUCTION. PowerBuilder - Introduction. Pascal Buguet Imprimé le 19 août 2004 Page 1

Avenir Concept Monaco

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

Guide d utilisation du logiciel TdsTexto 1.0

GUIDE D'INSTALLATION DU SYSTEME DE GESTION DE BASES DE DONNEES MYSQL POUR LE PGI EBP

Transcription:

INSA 5GEI IDM INGÉNIERIE DIRIGÉE PAR LES MODÈLES BE TP 3 2015-2016 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 ExempleProcessus { 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. 2.1 Importer le métamodèle SimplePDL. Dans un nouveau projet eclipse, importer le métamodèle de SimplePDL ainsi que son instance (developpement.xmi) dans un nouveau projet (fr.enseeiht.gls.simplepdl). 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

2.2 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. Donner un nom au projet (fr.enseeiht.gls.simplepdl.m2t) 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.3 Le projet contient un dossier de sources (src). Dans le paquetage fr.enseeiht.gls.simplepdl.m2t.main, un template de génération a été engendré (topdl1.mtl). Ouvrir ce fichier. 2.4 Remplacer le contenu du fichier topdl1.mtl par celui du listing 1 (disponible sur le site du module). 2.5 Exécuter la transformation m2t. Il suffit de cliquer droit sur le fichier.mtl puis faire Run as > Launch Acceleo Application. Dans la fenêtre de configuration de la transformation sélectionner BE TP 3 3/5

le modèle d entrée (dans le champ Model) ainsi qu un dossier cible de la transformation (Target) où sera engendré le résultat de la transformation. 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 Écrire et tester le template todot2.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 Écrire un template Acceleo pour transformer un modèle de réseau de Petri en un fichier.net de Tina. Pour visualiser le réseau, faire nd fichier.net, puis edit > draw. 4.2 Écrire un template Acceleo pour transformer un modèle de réseau de Petri en un fichier.dot qui permettra de visualiser graphiquement le réseau. 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 : 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 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