Documentation succincte sur GMF



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

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

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

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

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

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

Introduction aux concepts d ez Publish

COMMENCER AVEC VUE. Chapitre 1

Traduction des Langages : Le Compilateur Micro Java

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

ECLIPSE ET PDT (Php development tools)

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

OCL - Object Constraint Language

Formation HTML / CSS. ar dionoea

EXA1415 : Annotations

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Vérification formelle de la plate-forme Java Card

3. UML - Unified Modeling Language Diagrammes statiques

1 Modélisation d être mauvais payeur

RELEASE NOTES. Les nouveautés Desktop Manager 2.8

UML. Diagrammes de classes (suite) Delphine Longuet.

BIRT (Business Intelligence and Reporting Tools)

GUIDE D UTILISATION DE LA PLATEFORME D ENVOI DE COURRIELS

JOOMLA 1.5 avancé SUPPORT DE COURS + annexe

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

RTDS G3. Emmanuel Gaudin

Information utiles. webpage : Google+ : digiusto/

UML (Diagramme de classes) Unified Modeling Language

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

SEMIN- Gestion des couleurs sous R. Michel BAYLAC. MNHN Département Systématique et Evolution OSEB

Document Object Model (DOM)

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Serveur d Applications Web : WebObjects

Projet de développement

Tutoriel : Feuille de style externe

Alfstore workflow framework Spécification technique

MANUEL D UTILISATION PRO-FACE

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

IFT2255 : Génie logiciel

Modélisation physique des cellules logiques... Modèles pour le placement routage, le format "LEF"

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Développement d un interpréteur OCL pour une machine virtuelle UML.

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

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

Interfaces graphiques avec l API Swing

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Cisco CCVP. Configuration de CUCM

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Web Tier : déploiement de servlets

Microsoft Small Basic. A la découverte de la programmation

Chapitre I : le langage UML et le processus unifié

INTRODUCTION AU CMS MODX

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Cours en ligne Développement Java pour le web

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

Evidian IAM Suite 8.0 Identity Management

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Programmation Orientée Objet

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Java Aspect Components (JAC)

Initiation à la programmation OEF pour Wims (exercices).

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

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Stérilisation / Sterilization

Les frameworks au coeur des applications web

Cisco CCVP. Gestion des comptes d utilisateurs

DotNet. Plan. Les outils de développement

Diagramme de classes

Refonte front-office / back-office - Architecture & Conception -

ONe Key ID Compte InfoCentre pour les entreprises Compte auprès du ministère de l Environnement (MEO)

Meta Object Facility. Plan

Cours de Génie Logiciel

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

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

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Patrons de Conception (Design Patterns)

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

2013 Pearson France Adobe Illustrator CC Adobe Press

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Programmation orientée agents #1. v 1.3. M1 S2 - Université de Montpellier II"

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Génie Logiciel Avancé Cours 3 Le modèle à objets

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

Introduction à Eclipse

Chapitre VI- La validation de la composition.

Retour d expérience. Le rôle du Business Analyst chez Orange. Nadia Magarino & Christophe Dufour 29 avril 2015

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

Définition d un Template

LO19. Tutorial Rotional Rose. Alexandre Penfornis Thomas Derive

CST-RT021-part2:2013. Annexe CST-RT21-MFFS Spécification de format mezzanine pour films. Groupe de travail CST-RT021-MFFW

Silfid : Agence de création de site internet, formations et Conseils Retour sommaire

LIVRET DE facebook.com/asmadigames

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)

Université de Bangui. Modélisons en UML

Transcription:

Documentation succincte sur GMF Frédéric Fondement frederic.fondement@uha.fr GMF est un outil qui réalise un éditeur graphique pour un langage dont la syntaxe abstraite est donnée sous forme de métamodèle ecore. Pour se faire, GMF fournit un langage pour la description de la syntaxe concrète. Cette description se déroule en 3 étapes, chacune étant la description d un modèle, comme résumé à la Figure : la description des figures de représentation et des points de variation (gmfgraph), la description des outils (gmftool), la description des correspondances entre les concepts du métamodèle, les figures, et les outils (gmfmap). FIGURE. Approche GMF pour la spécification de syntaxes concrètes graphiques. Ces description sont complétées par un modèle de génération graphique (gmfgen) qui, à l instar du modèle de génération du métamodèle, synthétise les informations provenant de ces différents modèles, en y ajoutant des informations de personnalisation de la génération du code de l éditeur graphique. GMF intègre une transformation de modèles permettant de générer ce dernier modèle à partir des trois précédents, et un générateur de code générant une extension ( plug-in ) à Eclipse permettant d éditer graphiquement des modèles pour le langage considéré. Afin de produire ces trois modèles, GMF propose trois langages spécifiques. La description succincte de leur métamodèle fait l objet du présent document. Ce document se limite cependant à une description des concepts les plus essentiels de ces métamodèles. Pour une description plus complète, veuillez vous référer à la documentation officielle (voir le site http://www.eclipse.org/gmf/). pour une description par la pratique, il existe de nombreux tutoriels, comme sur http://www.ibm.com/ developerworks/library/os-ecl-gmf/index.html. Documentation succincte sur GMF - Session 2007-2008

. Description des figures (gmfgraph) Le métamodèle du langage gmfgraph est donné par la Figure 2. La définition des figures est donnée par la classe Canvas. Elle contient la description des figures graphiques (FigureGallery), des noeuds (Node), des connections (Connection), des compartiments (Compartment) et des labels (DiagramLabel). La galerie des figures décrit les figures (FigureDescriptor), et les figures (Figure) qui pourront être réutilisées dans diverses descriptions de figures, par exemple les flèches qui seront placées au bout de figures de connection (comme les associations UML). En plus de décrire la figure à laquelle elle correspond, un descripteur de figure pourra définir un accesseur à un élément particulier de son anatomie via un accesseur (ChildAccess). Dans l exemple du langage de diagrammes de classes UML, le descripteur de la figure pour une classe sera un rectangle, contenant notamment un texte dans lequel sera placé le nom de la classe. Le texte, en tant qu élément de figure sera rendu accessible au reste de la spécification par un accesseur. Un noeud (Node) est la formalisation d une figure; il se réfère à un descripteur de figure particulier, et sera réutilisé dans la mise en correspondance du modèle gmfmap. Une connection (Connection) est la même chose qu un noeud, à ceci près quelle est spécialisée dans la représentation de connections (comme les associations UML, une figure de classe étant elle plutôt un noeud). Il est à noter qu un noeud peut être affixé à l élément qui le contiendra. Un compartiment (Compartment) est une partie de des- Identity name : EString Canvas DiagramElement figure FigureDescriptor connections Connection nodes AbstractNode Node resizeconstraint : Direction affixedparentside : Direction figures FigureGallery implementationbundle : EString compartments Compartment collapsible : EBoolean needstitle : EBoolean descriptors accessor owner accessors ChildAccess accessor : EString accessor contentpane container actualfigure figure children Figure AbstractFigure labels DiagramLabel elementicon : EBoolean external : EBoolean figures RealFigure name : EString FIGURE 2. GMFGRAPH: main concepts Documentation succincte sur GMF - Session 2007-2008 2

Layoutable owner LayoutData layout Layout layoutdata border Border BorderLayout Figure AbstractFigure foregroundcolor backgroundcolor preferredsize minimumsize maximumsize font location size Color Dimension dx : EInt dy : EInt Font Point x : EInt y : EInt ConstantColor value : ColorConstants BorderLayoutData alignment : Alignment vertical : EBoolean ColorConstants white black lightgray gray darkgray red orange yellow green lightgreen darkgreen cyan lightblue blue darkblue Alignment BEGINNING CENTER END FILL FIGURE 3. GMFGRAPH: Propriétés génériques des figures. cription de figure qui sera capable de contenir d autres éléments. Dans l exemple d UML, on pourra penser à l endroit où doivent apparaître les attributs d une classe. La description de figure référencée sera celle pour la classe, et la partie de la figure sera donnée par un accesseur. Les labels de diagramme (DiagramLabel) permettent eux d accéder à des éléments textuels de certaines figures, toujours via leurs accesseur. Ceci permettra, lors de la mise en correspondance gmfmap, de synchroniser une donnée du modèle avec une valeur textuelle représentée. Les attributs génériques d une figure sont donnés en Figure 3. Une figure, telle que contenue dans une autre figure (RealFigure), est un élément qui doit être placé à un endroit précis. Pour se faire, on peut lui donner certaines règles d agencement (LayoutData), correspondant à l agencement décidé dans la figure hôte (Layout). Diverses stratégies d agencement existent, comme par exemple la stratégie de bord (BorderLayout), de pile (StackLayout), de flot (FlowLayout - format par défaut) ou de position (XYLayout). On peut également préciser (dans une certaine mesure) les dimensions (Dimension) préférées, minimales et maximales, pour peu que les stratégies de d agencement en tienne compte. Une figure peut définir une bordure (comme une ligne - LineBorder ou une marge - MarginBorder, voir multiples comme CompoundBorder), avoir une couleur (Color - qu elle soit constante - ConstantColor, ou donnée par ses valeurs RGB - RGBColor) et, si utile, une police de caractère (Font, comme BasicFont). Les divers types de figures sont donnés en Figure 4. Il est inutile de présenter les zones de texte (Label), rectangles (Rectangle et RoundedRectangle) et ellipses (Elipse). Une ligne brisée (Polyline) est une suite de segments ouverts, alors Documentation succincte sur GMF - Session 2007-2008 3

RealFigure name : EString targetdecoration sourcedecoration DecorationFigure Label text : EString Shape outline : EBoolean fill : EBoolean linewidth : EInt linekind : LineKind xorfill : EBoolean xoroutline : EBoolean LineKind LINE_SOLID LINE_DASH LINE_DOT LINE_DASHDOT LINE_DASHDOTDOT LINE_CUSTOM Point x : EInt y : EInt template Rectangle RoundedRectangle cornerwidth : EInt cornerheight : EInt Ellipse Polyline PolylineConnection PolylineDecoration Polygon PolygonDecoration ScalablePolygon FIGURE 4. GMFGRAPH: Types de figures. qu un polygone (Polygon) est une suite fermée. Certaines lignes multiples sont spécialisées dans les connections (PolylineConnection) et peuvent exposer une figure à son début et à sa fin, dont l orientation dépendra de la pente des extrémités. Ces décorations (DecorationFigure) peuvent être des lignes brisées (PolylineDecoration) ou des polygones (PolygonDecoration). 2. Palette d outils (gmftool) La palette d outils définit quels sont les outils disponible dans l éditeur graphique. L outil le plus important est l outil de création, qui permet d instancier un élément du métamodèle, qu il soit représenté par un noeud ou une connection. Les concepts reliés à la création sont représentés en Figure 5. tools AbstractTool title : EString description : EString ToolContainer CreationTool ToolRegistry palette Palette ToolGroup collapsible : EBoolean stack : EBoolean FIGURE 5. GMFTOOL: Outils de création. Documentation succincte sur GMF - Session 2007-2008 4

Le modèle est représenté par le registre d outil (ToolRegistry). Ce registre référence une palette d outils (Palette) composés d outils ou de groupes d outils (ToolGroup). Un de ces outils est l outil de création (CreationTool). Ce modèle permet en outre de créer des menus et des menus contextuels. Des images (Image comme DefaultImage ou BundleImage) peuvent être définies pour les outils et les éléments des menus. 3. Description des correspondances Le dernier modèle spécifique à la description de syntaxes graphiques est le modèle de correspondance. Il est en charge de la mise en relation de la syntaxe graphique proprement dite avec la syntaxe abstraite représentée par le métamodèle. Au passage, il spécifie également les actions prises par les éléments décrits dans la palette d outils. EReference containment : EBoolean container : EBoolean resolveproxies : EBoolean containmentfeature NeedsContainment diagramlink Connection CanvasMapping Mapping diagram Node childrenfeature nodes resizeconstraint : Direction affixedparentside : Direction TopNodeReference diagramnode NodeReference ownedchild NodeMapping parentnode children ownedchild LinkMapping links sourcemetafeature linkmetafeature ChildReference children EStructuralFeature changeable : EBoolean volatile : EBoolean transient : EBoolean defaultvalueliteral : EString defaultvalue : EJavaObject unsettable : EBoolean derived : EBoolean getfeatureid () : EInt getcontainerclass () : EJavaClass parentnode AbstractTool <<from tooldef>> title : EString description : EString domainmetaelement abstract : EBoolean interface : EBoolean EClass tool issupertypeof (EClass) : EBoolean getfeaturecount () : EInt getestructuralfeature (EInt) : EStructuralFeature getfeatureid (EStructuralFeature) : EInt getestructuralfeature (EString) : EStructuralFeature ToolOwner domainmetaelement MappingEntry getdomaincontext () : EClass compartments mapentry labelmappings LabelMapping readonly : EBoolean compartment CompartmentMapping domainspecialization Constraint compartment Compartment collapsible : EBoolean needstitle : EBoolean DiagramLabel elementicon : EBoolean external : EBoolean EAttribute id : EBoolean..* features diagramlabel FeatureLabelMapping viewpattern : EString editorpattern : EString editpattern : EString viewmethod : LabelTextAccessMethod editmethod : LabelTextAccessMethod Language ocl java regexp nregexp ValueExpression body : EString language : Language langname : EString FIGURE 6. GMFMAP La Figure 6 décrit les éléments les plus importants du métamodèle GMFMAP. L objet principal est Mapping, qui contient notamment la description des éléments mis en relations en général (CanvasMapping), et le détail des mises en correspondance pour les noeuds (NodeMapping) et les relations (LinkMapping). La mise en relation générale (CanvasMapping) indique la métaclasse maître du modèle, c est à dire la métaclasse dont une instance sera l élément racine du modèle (domainmetaelement, notée Element dans l éditeur réflexif). Elle référence Documentation succincte sur GMF - Session 2007-2008 5

également la palette (Palette dans l éditeur réflexif) du modèle GMFTOOL, et le Canvas (Diagram Canvas dans l éditeur réflexif) du modèle GMFGRAPH. Les noeuds qui peuvent être représentés directement dans un diagramme (c est à dire les noeud qui ne doivent pas forcément apparaître dans le compartiment d un autre noeud) doivent être déclarés par un TopNodeReference. Le TopNodeReference indique comment l élément de modèle correspondant au noeud peut être retrouvé à partir de l élément de modèle racine en donnant la référence de composition du métamodèle qui doit être naviguée (containmentfeature). Un TopNodeReference doit nécessairement spécifier une description de correspondance de noeud (ownerchild). Une description de correspondance de noeud (NodeMapping) met en relation une métaclasse du métamodèle (domainmetaelement, notée Element dans l éditeur réflexif), un noeud du modèle GMFGRAPH (diagramnode) et un outil du modèle GMFTOOL (tool). Si un noeud peut en contenir d autres via un compartiment de sa représentation, il doit contenir un CompartmentMapping d une part (référençant le Compartment correspondant dans le modèle GMFGRAPH), et d autre part d autres correspondances de noeuds filles (ChildReference), contenant elles lesdites correspondances de noeuds (ownedchild), quelle référence naviguer pour les obtenir (childrenfeature et/ou containmentfeature) tout en indiquant la correspondance de compartiment précédemment définie (compartment). Une ChildReference peut également être définie pour tout élément affixé; dans ce cas, aucune référence à une correspondance de compartiment n est nécessaire. Deux cas doivent être distingués pour établir la correspondance de liens (LinkMapping). Dans le premier cas, la liaison est exprimée dans le métamodèle par une simple référence (linkmetafeature, notée TargetFeature dans l éditeur réflexif). Dans le second cas, la liaison est exprimée par une métaclasse. Dans ce dernier cas, à l instar des correspondances de noeuds, il faut indiquer comment trouver ces correspondances depuis la classe racine (containmentfeature), ladite métaclasse (domainmetaelement, notée Element dans l éditeur réflexif), en plus de fournir les références pour atteindre la source (sourcemetafeature) et la cible (linkmetafeature, notée TargetFeature dans l éditeur réflexif) de la connection. Il faut bien sûr dans les deux cas indiquer la connection du modèle GMFGRAPH (diagramlink) et éventuellement l outil du modèle GMFTOOL (tool). Il peut être nécessaire dans les correspondances de noeuds et de liens d exposer dans la représentation certaines de leurs propriétés sous forme de texte. Par exemple, dans le langage de diagrammes de classes UML, le nom d une classe apparaît dans sa représentation. Pour se faire, une correspondance peut contenir une correspondance (FeatureLabelMapping) entre ladite propriété (features) et le label de diagramme du modèle GMFGRAPH (diagramlabel). Au cas où on ne veut représenter un élément de modélisation avec un noeud ou une connection donnée que sous certaine condition, il est possible d adjoindre à la correspondance concernée une contrainte type OCL (Constraint). Ceci permet par exemple d avoir différentes représentations pour un même élément, dont le choix dépendra de certaine propriétés sur un modèle. Documentation succincte sur GMF - Session 2007-2008 6