Ingénierie Dirigée par les Modèles : didacticiel GMF, ça marche ce truc ?
Eclipse GMF ( Graphical Modeling Framework ) permet en théorie de réaliser des diagrammes personnaliser à partir d'un métamodèle (DSL Domain Specific Language ou DSM Domain Specifc Model).
Je dis bien en théorie car j'y ai consacré une semaine (j'ai aussi eu d'autres occupations) et ça n'a jamais marché malgré tous mes essais avec toutes les dernières versions, mises à jour et recherches sur google sur les différents problèmes que je rencontrais.
Installez la dernière version d'Eclipse Mars Modeling Tools :
Comme dit l'homme tombant du 20 ème étage et arrivant au 19 ème :"jusqu'ici tout va bien !". Cette nouvelle mouture contient entre autre EMF et Sirius, qui a mon avis remplace avantageusement GMF.
La documentation de GMF nous dit d'installer dans l'ordre QVTO ( Query View Transformation Operational, le langage impératif de transformation de modèles normalisé par l'OMG)
Installation locale : http://www.eclipse.org/mmt/downloads/?project=qvto
Et oui, vous l'avez deviné à un moment donné il faut bien installer GMF
Insstallation par update :
Vérifier les mises à jour : Help - Check for Updates
Des nouvelles mises à jour vous sont proposées, acceptez-les !
Pour démontrer que ça ne marche pas il nous faut un métamodèle. Prenons celui de la documentation comme ça on ne pourra mettre en cause notre modèle !
Il s'agit du métamodèle de mindmap vu dans un préédent article :
Créer un projet GMF : File - New - Other - Graphical Modeling Framework - Graphical editor project - "testgmf" - Finish
Créez le modèle Ecore à partir du source XMI founi par l'article
Clic droit sur Model - New - Other - Eclipse Modeling Framework - Ecore Model - testgmf.ecore - finish
Clic droit sur testgmf.ecore - Open with- Text editor - remplacer le contenu par celui du source XMI du métamodèle de mindmap mentionné dans l'article cité précédemment
Double cliquer sur testgmf pour vérifier que l'on a bien les classe "Map", "Topic", ... Sauvegarder régulièrement à chaque étape successive.
Générer le fichier genmodel : Clic droit sur Model - New - Other - Eclipse Modeling Framework - EMF Generator Model - "testgmf.genmodel" - cliquez sur load pour le fichier ecore - laissez toutes les valeurs par défaut - Finish
Générer le code : double cliquez sur testgmf.genmodel pour ouvrir l'éditeur, clic droit dans l'éditeur sur Testgmf - Generate all - vérifiez dans src que les classes Map, Topic, ... sont bien créées.
Créer le graphe : Clic droit sur Model - New - Other - Graphical Modeling Framework - Simple Graphical Definition Model - "testgmf.gmfgraph" - laissez toutes les valeurs par défaut.
Crèez les tools ( palette, ...) : Clic droit sur Model - New - Other - Graphical Modeling Framework - Simple Tooling Definition Model - "testgmf.gmftool" - laissez toutes les valeurs par défaut.
Créez le mapping : Clic droit sur Model - New - Other - Graphical Modeling Framework - Guide Mapping Model Creation - "testgmf.gmfmap" - laissez toutes les valeurs par défaut.
Double cliquez sur testgmf.gmfmap - ouvrez l'arborescence jusqu'à Mapping - Link Mapping <Thread ...> - Feature Label Mapping [Thread.subject:EString] - View Onglet Properties - Misc - Diagram Label - Diagram Label Thread Subject
Générer le code : Clic droit sur testgmf.gmfmap - Create generator model - "testgmf.gmfgen" - cliquez sur load - laissez toutes les valeurs par défaut. - Finish
Générer le diagramme : clic droit sur testgmf.gmfgen - Generate diagram code
On arrive quoiqu'on fasse à l'erreur :
Exception (Boolean expected (was: org.eclipse.ocl.ecore.internal.OCLStandardLibraryImpl$1)!:in CodeStyle, line 18) while generating code
Boolean expected (was: org.eclipse.ocl.ecore.internal.OCLStandardLibraryImpl$1)!:in CodeStyle, line 18
Malgré tous mes essais d'installation, de réinstallation, de recherches sur Google de l'exception, des problèmes similaires, de simplification du métamodèle ( une seule classe avec un seul attribut ! ), de "post" sur les différents spécialisés, rien n'y fait, je m'avoue vaincu.
Du reste c'est peut être un bien et je me tourne maintenant vers Sirius qui permet de concevoir ses propres diagrammes à partir de ses métamodèles.
Par contre : clic droit sur testgmf.gmfgen - Generate diagram code (Xtend2) à l'air de mieux fonctionner, puisqu'il n'y a qu'une erreur dans un source facilement corrigeable.
"Tout changement est difficile au début, compliqué au milieu et magnifique à la fin."
Robin Sharma
Voir aussi :
http://urbanisation-si.wix.com/blog
http://urbanisme-si.wix.com/blog
http://urbanisation-si.wix.com/urbanisation-si
http://urbanisation-si.over-blog.com/
http://rhonamaxwel.over-blog.com/
http://urbanisation-des-si.blogspot.fr/
A découvrir aussi
- Ingénierie Dirigée par les Modèles (IDM) : le tour de passe-passe des transformations de modèles
- Ingénierie Dirigée par les Modèles (IDM) : tutoriel ATL (ATLAS Transformation Language) pour voir la vraie vie
- Tutoriel Papyrus : vos diagrammes UML 2 comme à l'époque des manuscrits de l'antiquité !
Inscrivez-vous au site
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 766 autres membres