lab-sticc.univ-brest.fr/~babau/ Ingénierie Dirigée par les Modèles Editeurs de modèles (Eclipse Modeling Tools) Jean-Philippe Babau



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

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

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

Ingénierie des Modèles. Méta-modélisation

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

ECLIPSE ET PDT (Php development tools)

BIRT (Business Intelligence and Reporting Tools)

Introduction à Eclipse

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

OCL - Object Constraint Language

Cours iguess. inotes v10.1

EXA1415 : Annotations

Rapport de Mini-Projet en ArcGIS Engine

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

Tutoriel d installation de Hibernate avec Eclipse

Votre premier projet Android

1 Modélisation d être mauvais payeur

MEMOIRE. Présenté à L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTÈRE INFORMATIQUE NTSID. Par.

Approche Contract First

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Etude de cas : PGE JEE V2

Apprendre Java et C++ avec NetBeans

Introduction aux concepts d ez Publish

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Présentation de la plateforme WINDCHILL. Invitation à rejoindre la plateforme

Projet de développement

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

!" #$$%& Disque dur 2.5 pouces Firewire Apple MacOS FR V2.4 - Page 1/17

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

Programmer en JAVA. par Tama

Acronymes et abréviations. Acronymes / Abbréviations. Signification

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

La base de données dans ArtemiS SUITE

Dans ce mémento, vous trouverez les informations détaillées pour configurer les fonctionnalités du Responsive Design dans le Worldsoft CMS:

CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052

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

MEGA Publisher. Guide d utilisation

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

Introduction à MATLAB R

Procédure d installation Smart Map 3

TP 1. Prise en main du langage Python

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

Censio Tutorial Sharepoint Cloud Connector exporter les données d un fichier plat dans Sharepoint Online. Version 1.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

KPI (Key Performance Indicator) dans MOSS

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

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Publication sur serveur distant

Super HUD- Guide Utilisateur

Présentation de Plone Structure de Plone Les skins Les workflows Archetypes Conclusion. Plone. Gaël LE MIGNOT Pilot Systems.

I. Présentation du serveur Samba

TD/TP 1 Introduction au SDK d Android

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Optimiser pour les appareils mobiles

Importation de fichiers Eagle

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Eclipse et ses plugins de modélisation (EMF GEF GMF). Entrée en matière. par. Jacques Barzic. Avertissement

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Document Object Model (DOM)

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Définition des Webservices Ordre de paiement par . Version 1.0

Présentation du langage et premières fonctions

TP1 : Initiation à Java et Eclipse

Installation et configuration du logiciel BauBit

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier Tenrox. Tous droits réservés.

LES OUTILS DES DESIGNERS WEB : L ÈRE POST-ADOBE Atelier Paris Web Benoît Vrins -

Diagrammes de Package, de déploiement et de composants UML

WINDOWS SHAREPOINT SERVICES 2007

Sauvegardes par Internet avec Rsync

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Conventions d écriture et outils de mise au point

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Introduction aux outils BI de SQL Server Fouille de données avec SQL Server Analysis Services (SSAS)

Guide de démarrage Intellipool Network Monitor

Nuxeo 5.4 : les nouveautés

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

RTDS G3. Emmanuel Gaudin

Initiation à Mendeley AUT2012

Notice ARES Version 5.20 Française

Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Bases Java - Eclipse / Netbeans

Cours d algorithmique pour la classe de 2nde

MEGA ITSM Accelerator. Guide de Démarrage

Form Designer Guide d utilisateur DOC-FD-UG-FR-01/01/12

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

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

Le langage C. Séance n 4

Guide d installation logicielle

Sélection du contrôleur

1.3 Gestion d'une application

Transcription:

lab-sticc.univ-brest.fr/~babau/ Ingénierie Dirigée par les Modèles Editeurs de modèles (Eclipse Modeling Tools) Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1

Modèles et méta-modèles Introduction aux modèles C est quoi un modèle? Ca sert à quoi de faire des modèles? Comment on fait des modèles? Outils de modélisation et de méta-modélisation Editeurs de modèles (EMF, GMF, Sirius, Xtext) Expression et évaluation de contraintes (OCL) Transformation de modèles (M2M, M2T) 3 Eclipse Modeling Tools Méta-modélisation et édition de modèles avec EMF Basé sur Ecore Créer un projet EMF Générer le code filename.genmodel Accès à l édition graphique de modèles GEF et GMF, Sirius Accès à l édition textuelle de modèles EMFText, XText 4 2

GMF : principes Basé sur EMF et Java Un modèle ecore et un générateur de code genmodel Plusieurs aspects : plusieurs modèles Aspects graphique : filename.gmfgraph Aspects outils : filename.gmftool Lien entre modèle, graphique et outils : filename.gmfmap Générateur d éditeur graphique : filename.gmfgen Editeur graphique Génération d un projet modelname.diagram Aide à la création des modèles : DashBoard 5 GMF principes La EClass racine n est pas représentée On édite directement les éléments «à l intérieur» de la EClass racine C est «le fond» de l éditeur On a accès aux attributs de la EClass racine via les propriétés Il faut prévoir une EClass racine On ne dessine que les éléments contenus dans la EClass racine Un seul niveau dans une fenêtre Possibilités de définir des éditeurs en cascade Pour éditer des entités contenues dans des entités Une vue, et donc un éditeur, par entité contenue Plusieurs niveaux : plusieurs fenêtres et plusieurs éditeurs 6 3

GMF graph Aspect graphique Fichier filename.gmfgraph Structure Galerie de figures Ensemble des figures à représenter Nœuds et connexions Ensemble des entités et des liens à représenter Labels Ensemble des textes à afficher Compartiments Ensemble des regroupements 7 Forme graphique : un polygone ajouter un Template Point child node x=0, y=0 ajouter 7 Template Point node x=40, y=0 x=40, y=30 x=30, y=30 x=30, y=40 x=40, y=30 x=30, y=40 x=0, y=40 8 4

Les labels Centrer un label Sélectionner la figure New Child / Grid Layout (true, 1) Dans la figure, sélectionner le label New Child / Grid Layout Data (true, true, CENTER,0,1,CENTER,1) Positionner un label sur une connection Sélectionner le Diagram Label New Child / Alignment facet CENTER : au milieu New Child / Label Offset facet X et Y : positions relatives 9 GMF tool, map et gen Tool : Palette filename.gmftool Création d éléments Map : lien graphique, modèle et outil filename.gmfmap Basé sur filename.ecore, filename.gmfgraph, filename.gmftool Génération de filename.gmfgen Dashboard A n'utiliser qu'une seule fois au départ pour initialiser les modèles Vérifier les modèles générés 10 5

GMF gen gmfgen model Modèle d entrée du générateur d éditeur graphique Equivalent de genmodel pour ecore Généré par gmfmap Peut être modifié et adapté Possibilité de modification du code Java généré @generated NOT Exemple d une initialisation de diagramme http://gmfsamples.tuxfamily.org/wiki/doku.php?id=gmf_tutorial7 11 Taille des éléments Contraindre une taille constante Dans le fichier MM.gmfgraph Dans le descripteur de figure figurename Sélection de la figure New Child / Preferred Size Dimension Initialisation des dimensions en X et Y Dans le fichier MM.gmfgen Gen Top Level Node NodeName / Inner Class Viewmap figurename New Child / Resize Constraints 12 6

Attributs et icones Masquer un attribut PropertyName de l onglet properties Dans le projet MM.edit Fichier EClassItemProvider.java Dans la méthode getpropertydescriptors(object object) Mettre en commentaire // addpropertynamepropertydescriptor(object); Ne pas modifier un attribut via l interface graphique Dans le fichier MM.gmfmap Sélectionner le Feature Label Mapping correspondant Positionner Read Only à true Ne pas afficher d icône sur le champ à modifier Dans le fichier MM.gmfgraph Sélectionner le Diagram Label champ correspondant Positionner Element Icon à false 13 Éditeur GMF 14 7

Documentation web Documentation GMF http://wiki.eclipse.org/graphical_modeling_framework/tutorial/part_1 http://gmfsamples.tuxfamily.org/wiki/doku.php?id=gmf_tutorial2 http://sbachmann.developpez.com/eclipse/generer-editeurgraphique-gmf/ Utilisation des images SVG dans un projet GMF : http://wiki.eclipse.org/gmf_tutorial_part_2#use_svgfigure Présentation du comportement étrange des «Polyline» de gmfgraph comme un bug : https://bugs.eclipse.org/bugs/show_bug.cgi?id=145863 Pour les contraintes OCL et GMF : http://sbachmann.developpez.com/eclipse/exprimer-valider-contraintes-ocl-emf/ Des éditeurs graphiques et utilitaires http://trac.rtsys.informatik.uni-kiel.de/trac/09ws-eclipse/wiki/exercises/gmf http://www.kermeta.org/docs/fr.irisa.triskell.kermeta.samples.fsm.documentation/build/html.chunk ed/kermeta-create-fsm-graphical-editor-with-gmf/ch02.html#create_new_gmf_project http://serdom.eu/ser/2009/01/21/eclipse-gmf-making-figures-sensitive-to-attributes-of-semanticelements http://gmfsamples.tuxfamily.org/wiki/doku.php Sirius Basé sur EMF Mises au point et tests rapides Plusieurs vues possibles Une vue : un aspect du modèle Plusieurs représentations : diagrammes, tables Actions sur le modèle déclenchées par l interface Intégration Acceleo, Java, Xtext Génération de code possible 16 8

Sirius Structure Un projet contient une spécification (viewpoint specification project) Une spécification est composée de points de vue (viewpoint) un point de vue contient des représentations (diagram, sequence diagram, table, tree) Diagram Une EClass Root (Domain Class) Pre-condition sur l ouverture Il y a plusieurs couches (layer) dans un diagramme Une couche par défaut Contient les éléments (node, edge) à représenter 17 Sirius Node Une EClass Une précondition Une représentation (style) Un schéma Une image conditionnelle Edge Une EReference Une représentation (style) Palette Node Creation, Edge Creation Action lié à la création 18 9

Mise en place de l éditeur graphique avec Sirius https://wiki.eclipse.org/sirius/tutorials/4mintutorial Attention Il faut exporter le projet EMF il faut créer un modèle dans le «Modeling project» quand on crée un Node, il faut remplir le champ «Semantic Candidates Expression» 19 Éditeur Sirius 20 10

Documentation Sirius http://www.obeodesigner.com/company/news/474-sirius-agraphical-model-is-worth-a-thousand-words http://www.eclipse.org/sirius/ Http://alain-bernard.developpez.com/tutoriels/eclipse/sirius-intro/ 21 Model 2 Text : Xtext Préambule : modélisation Ecore Création d un méta-modèle mymetamodel.ecore Génération de code (mymetamodel.genmodel) Export du projet EMF Syntaxe concrète Représentation textuelle des modèles File/New/other/Xtext/ Xtext Project from existing Ecore Models Next : Select EPackages : sélection du package root du métamodèle Entry rule : c est la EClass root Next : choix du nom du projet et de l extension des fichiers Grammaire du langage : mydsl.xtext 22 11

Xtext : principes Aide à l édition Coloration syntaxique Complétion automatique Vérification Analyse syntaxique Détection d erreur Associé à Xtext Générateur de code : Xtend Validation : adapter le code java 23 Xtext : syntaxe concrète Lexique Renvoie un type de base (par défaut EString) terminal ID : ('^')?('a'..'z' 'A'..'Z' '_') ('a'..'z' 'A'..'Z' '_' '0'..'9')*; terminal INT returns ecore::eint : ('0'..'9')+; Date : yyyy-mm-dd Expressions Extended Backus-Naur Form-like (EBNF) exactement 1 (par défaut) zéro ou un? zéro ou plus * un ou plus + ou 24 12

Xtext : syntaxe concrète Grammaire Une règle pour chaque EClass Nommer les éléments référencés Un attribut name de type EString par EClass Ajoutez une EClass abstraite NamedElement Éléments syntaxiques de Xtext = affectation d un élement += affectation de plusieurs éléments?= affectation d un booléen si présence d un mot clé & liste non ordonnée [EClass] référence croisée vers des éléments existants (containement false) attention : doit posséder un attribut de type EString qui s appelle name 25 Xtext : exemple 13

27 Xtext : exemple 28 14

Model 2 Text : Xtext Génération de l éditeur myprojectname/src/myprojectname/generatemydsl.mwe2 Run As MWE2 Workflow Caractéristiques texte -> ecore Ok si la syntaxe est vérifiée Ecore -> texte Ok si la syntaxe est vérifiée 29 Xtext : adaptations Dans le fichier GenerateMyDSL.mwe2, modifiez les options ainsi // the Antlr parser fragment = parser.antlr.xtextantlrgeneratorfragment { options = { backtrack = true memoize=true classsplitting = true } } // antlr parser generator tailored for content assist fragment = parser.antlr.xtextantlruigeneratorfragment { options = { backtrack = true memoize=true classsplitting = true } } 30 15

Installation et usage Installation et information http://www.eclipse.org/xtext/ Inclus dans Eclipse Modeling Tools Intégration Ecore Faire GenerateAll après les modifications, sur le genmodel afin de régénérer les classes java Attention : dans la version Juno, pour que xtext fonctionne, il faut ajouter la "Nature Xtext" au projet EMF contenant le modèle ecore sélectionnez le projet ecore menu contextuel : "Configure / Add Xtext Nature" Version java 1.7 requise Menu Window/preferences/installed JRE/jre7 31 Ctrl Shift F Auto Format Classe ExampleFormatter à adapter Fichier ExampleFormatter.xtend Passage à la ligne après les mots-clés Input, Output et les règles syntaxiques declaration et body for(kw : findkeywords('input',output')) { c.setlinewrap().after(kw) } for(rule: findrulecalls(declarationrule, bodyrule)) { c.setlinewrap().after(rule) } Régénérer xtext / export /restart Documentation http://www.eclipse.org/xtext/documentation.html#formatting 32 16

Quelques liens utiles pour xtext http://christiandietrich.wordpress.com/2011/07/16/iqualifiednameproviders-inxtext-2-0/ http://stackoverflow.com/questions/10316112/xtext-cross-reference-usingcustom-terminal-rule http://www.openarchitectureware.org/pub/documentation/4.2/html/contents/xtext _tutorial.html#d0e http://www.eclipse.org/xtext/ 33 17