urbanisation-si.com

urbanisation-si.com

Ingénierie Dirigée par les Modèles : didacticiel GMF, ça marche ce truc ?

graphical-modeling-framework-1.png

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.

Etape 1.

Installez la dernière version d'Eclipse Mars Modeling Tools

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/R/eclipse-modeling-mars-R-win32.zip

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.

Etape 2.

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 

Etape 3.

Et oui, vous l'avez deviné à un moment donné il faut bien installer GMF

Insstallation par update :  

Etape 4.

Vérifier les mises à jour : Help - Check for Updates

Des nouvelles mises à jour vous sont proposées, acceptez-les !

 

Etape 5.

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 :

https://www.urbanisation-si.com/ingenierie-dirigee-par-les-modeles-les-metamodeles-mindmap-l-embarras-du-choix

Créer un projet GMF : File - New - Other - Graphical Modeling Framework -  Graphical editor project - "testgmf" - Finish

 

Etape 6.

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.

 

Etape 7

Générer le fichier genmodelClic 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

 

Etape 8.

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.

 

Etape 9.

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.

 

Etape 10. 

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. 

 

Etape 11. 

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

 

Etape 12.

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

 

Etape 13.

Générer le diagramme : clic droit sur testgmf.gmfgen - Generate diagram code 

On arrive quoiqu'on fasse à l'erreur :

Problems while generating code
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/

http://bonnes-pratiques-si.eklablog.com/

http://urbanisation-si.eklablog.com/



11/09/2015
1 Poster un commentaire

A découvrir aussi


Inscrivez-vous au site

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 717 autres membres