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



Documents pareils
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

BIRT (Business Intelligence and Reporting Tools)

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

Introduction à Eclipse

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

Publication sur serveur distant

ECLIPSE ET PDT (Php development tools)

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

Cours iguess. inotes v10.1

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

EXA1415 : Annotations

OCL - Object Constraint Language

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

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

Tutoriel d installation de Hibernate avec Eclipse

La base de données dans ArtemiS SUITE

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

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

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

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

Etude de cas : PGE JEE V2

Projet de développement

TD/TP 1 Introduction au SDK d Android

Bases Java - Eclipse / Netbeans

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

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

Introduction aux concepts d ez Publish

Apprendre Java et C++ avec NetBeans

MEGA Publisher. Guide d utilisation

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

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

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

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

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

Approche Contract First

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

1 Modélisation d être mauvais payeur

TP1 : Initiation à Java et Eclipse

KPI (Key Performance Indicator) dans MOSS

Procédure d installation Smart Map 3

Intégration d un ERP guidée par les modèles

Introduction à MATLAB R

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

Présentation du langage et premières fonctions

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

Votre premier projet Android

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

MEGA ITSM Accelerator. Guide de Démarrage

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Economies d énergie par GPO

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Visual Paradigm Contraintes inter-associations

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

WINDOWS SHAREPOINT SERVICES 2007

Programmer en JAVA. par Tama

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

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

Chapitre VI- La validation de la composition.

TechSoftware Présentations

COMMENCER AVEC VUE. Chapitre 1

1. Plan. 1. Plan Information essentielles...2

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

EXTENSION D UN OUTIL DE VISUALISATION DE TRACES

Installation et configuration du logiciel BauBit

Construire des plug-ins pour SAS Management Console SAS 9.1

Etat de l art sur le développement logiciel dirigé par les modèles.

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

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

MEGA ITSM Accelerator. Guide de démarrage

INGÉNIERIE DIRIGÉE PAR LES MODÈLES ET COMPOSANTS SENSIBLES AU CONTEXTE

Guide de démarrage Intellipool Network Monitor

ScTools Outil de personnalisation de carte

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

TP 1. Prise en main du langage Python

Manuel d utilisation du site web de l ONRN

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

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

Eclipse atelier Java

Business Intelligence simple et efficace

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

Joomla! Création et administration d'un site web - Version numérique

Nuxeo 5.4 : les nouveautés

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

ABBYY Lingvo x3. Guide de l administrateur système ABBYY. Tous droits réservés.

4. Groupement d objets

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous :

Initiation à Mendeley AUT2012

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

INTRODUCTION AU CMS MODX

Sélection du contrôleur

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Configuration Interface for MEssage ROuting

Atelier Progress Rollbase

La sauvegarde (backup) de votre comptabilité a pour but de vous permettre de retrouver vos données si un incident est survenu.

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Transcription:

labsticc.univ-brest.fr/pages_perso/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, 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, ObeoDesigner Accès à l édition textuelle de modèles EMFText, XText 4 2

Obeo Designer Basé sur EMF Facilités de modélisation graphique Nombreuses possibilités Mises au point et tests rapides Plusieurs vues possibles Génération de code possible http://www.obeodesigner.com/ 5 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 6 3

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 7 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 8 4

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 9 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 10 5

GMF tool, map Aspect outils filename.gmftool, filename.gmfmap, filename.gmfgen Tool : Palette Création d éléments Map : lien graphique, modèle et outil Génération de filename.gmfgen Dashboard A n'utiliser qu'une seule fois au départ pour initialiser les modèles 11 GMF gen gmfgen model Modèle d entrée du générateur d éfiteur graphique 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 12 6

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 13 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 14 7

Éditeurs en cascade Création du deuxième éditeur Création d un deuxième fichier xx.genmodel Changer le champ Model Name xx Création des fichiers GMF xx.gmfgraph, xx.gmftool et xx.gmfmap Sélection du même fichier ecore pour xx.gmfmap xx.gmfgen Création à l aide de xx.gmfmap et xx.genmodel Adapter les noms de projet et autres notations Gen Editor Generator xx.diagram Package Name Prefix xx.diagram Gen Plugin xx Plugin ID xx.diagram Domain File et Diagram File extension 15 Éditeurs en cascade Paramétrage du 1 er éditeur Dans Gen Top Level Node xxeditpart New Child / Open Diagram Behaviour Sélection de Open Diagram Behaviour OpenDiagramEditPolicy Diagram Kind : placer le champ Model ID qui se trouve dans Gen Editor Generator xx.diagram Editor ID : placer le champ ID qui se trouve dans Gen Editor Generator xx.diagram» Gen Editor View xx.diagram.part 16 8

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 Model 2 Text : Xtext Installation et information http://www.eclipse.org/xtext/ Inclus dans Eclipse Modeling Tools Méta-modélisation Création d un modèle mymetamodel.ecore Génération de code (mymetamodel.genmodel) Syntaxe concrète 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 18 9

Xtext Pas obligatoirement lié à EMF 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" Aide à l édition Vérifications de XText Analyse syntaxique Associé à Xtext Générateur de code : Xtend Validation : adapter le code java 19 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 20 10

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 21 Xtext : exemple 11

23 Xtext : exemple 24 12

Éditeur GMF 25 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 } } 26 13

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 Version java 1.7 requise Menu Window/preferences/installed JRE/jre7 Donner la nature Xtext au projet EMF avant de générer la grammaire Faire GenerateAll après les modifications, sur le genmodel afin de régénérer les classes java 27 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/ 28 14