-
Métamodèle UML2
Bonjour tout le monde,
Je suis en train de réaliser un projet qui permettra de générer 90% du code source d'une application JEE et cela à partir d'un diagramme de classe.
Je cherche à réaliser une palette qui permet de dessiner un diagramme de classe que j’utiliserai ensuite avec Acceleo pour générer le code source.
J'ai pensé à utiliser GMF pour générer cette palette à partir d'un modèle Ecore du diagramme de classe, seulement le seul modèle Ecore que je trouve est celui de UML2 en entier (avec tous les diagrammes) et je n'arrive pas à extraire seulement le modèle du diagramme de classe.
Je voudrais savoir comment faire pour obtenir uniquement le modèle Ecore du diagramme de classe pour que je puisse l'utiliser pour créer une palette qui permet de dessiner des diagrammes de classe ?
Ou bien serait-il plus approprié de créer mon propre Ecore du diagramme de classe ?
Merci d'avance pour votre aide.
-
Bonjour M3HD1 !
En effet, l'Ecore d'UML2.x est bien chargé puisque tous les concepts d'UML2 sont présents (comportement, séquencement, données, ...)
A mon avis le plus simple pour toi sera de créer ton propre modèle Ecore avec un seul diagramme. Dans la vue Outline tu fais un Load Ressources et tu vas chercher l'Ecore UML2.x. Du coup dans cette même vue tu verras l'arborescence de tous les éléments d'UML2.x et tu pourras simplement faire glisser dans ton diagramme ceux qui t'intéresse, qui concerne le modèle du diagramme des classes donc. Tu verras que comme ça tu n'auras rien à redéfinir, toutes les associations se feront toutes seules, ainsi que les attributs et les multiplicités comme ils ont été spécifiés dans l'Ecore UML2.x, du coup pas de risque d'erreur, par contre ton diagramme sera assez chargé aussi.
Pour t'aider tu peux regarder les spécifications UML2.3 superstructure disponibles sur ce lien : http://www.omg.org/spec/UML/2.3/
Bon courage ;)
Antoine
-
Bonjour,
Tout d'abord merci pour ta réponse, c'est déjà rassurant que quelqu'un m'ait compris :)
Théoriquement j'ai compris ton idée, j'ai essayé d'importer org.eclipse.uml2.uml comme projet plug-in fragment, et j'ai visualisé le Ecore Diagram d'UML2 mais je ne vois pas comment faire glisser les éléments dont j'ai besoin (ceux du diagramme de classe) à partir de l'outline ?
Et même si je trouvais comment le faire, comment saurais-je quels sont tous les éléments nécessaires pour un bon fonctionnement du diagramme de classe ? Est-ce que si je fais glisser par exemple un élément, disons le modèle Class, toutes ses dépendances seront automatiquement importées avec ?
Ou bien, devrais-je consulter la superstructure d'UML pour savoir quels sont les éléments nécessaires ?
Mehdi
-
Bonsoir,
J'ai essayé de construire tout seul le méta-model du diagramme de classe avec les Ecores, pour cela j'ai importé le Package d'UML qui contient tous les Ecores de tout le langage UML, mais je trouve vraiment des difficultés pour savoir quels sont les composants du diagrammes de classe uniquement, j'ai essayé de me référer à la doc OMG mais ça s’avère beaucoup plus compliqué que prévu !
Suis je vraiment sur le bon chemin ?!
-
Si tu as réussi à importer et utiliser les objets d'UML je pense que tu es sur la bonne voie, c'est vrai que c'est pas forcément simple d'extraire les bonnes infos du diagramme UML. Après tu peux aussi te faire un Ecore perso qui défini les concepts du modèle des classes, y'a pas grands choses non plus :
Classe, Association, Attributs, quelques propriétés sur une classe (nom, visibilité, ...), sur une association (nom, multiplicité, agrégation, composition, héritage) et sur les attributs (nom et type essentiellement).
Par contre pour représenter ça en GMF, ça risque d'être un peu plus chaud (genre mettre un diamant noir au bout d'une association si c'est une composition, ... ) la je t'avoue que je maîtrise pas trop...
Après, je viens de regarder : tu as déjà un éditeur de diagramme des classes sous Topcased (ensemble de plugins Eclipse inclu dans une version d'Eclipse à ce lien : http://www.topcased.org/index.php?id...e=52&Itemid=60) et derrière ce diagramme gère le format du diagramme en XMI (variantes XML). Tu peux aussi à partir de la te faire un parser XML pour lire le diagramme et générer le code que tu veux !
Et enfin, tu sais que ça existe les outils qui font ça ? bouml par exemple que je conseillais à @sarinia génère tout ton diagramme des classes en Java ou C++...
-
Bonjour,
Apres quelques recherches et conseils, je me suis mis à réaliser mon propre méta-model à l'aide de l'OMG, et de quelque méta-model disponibles.
J'ai commencé par créer une simple palette qui permet de dessiner des classes et des relations, j'ai configuré Acceleo pour la génération du code source, et j'ajouterai à chaque fois de nouvelles composantes à ma palette en configurant Acceleo en parallele.
Merci pour votre.
Cordialement, Mehdi