Cédric Brun bio photo

Cédric Brun

Build open-source technologies to enable mission critical tools for complex domains.

Email Twitter LinkedIn Github Youtube

Il y a quelques semaines, je suis tombé sur le fil suivant du Forum EMF demandant une documentation formelle du méta-modèle Ecore ?. Ed a pointé vers une documentation qui inclut des diagrammes réalisés avec soin mais faits avec des outils d’une autre époque.

En tant que mainteneur d’EcoreTools, je devais faire quelque chose à ce sujet, et c’est ce que j’ai fait :

Tous les participants au Framework de Modélisation Ecore implémentent l'interface EObject

Tadaa !

Les diagrammes suivants ont été créés grâce à EcoreTools qui fait partie du Package Modeling Eclipse. Tout le travail difficile a été fait auparavant par Ed lorsqu’il a dû décider quoi afficher et comment, tout ce que j’ai fait est de reproduire ceux-ci en utilisant EcoreTools et en les exportant à une résolution assez élevée (cliquez sur les images pour obtenir la pleine résolution).

Le patchset correspondant pour EMF est ici.

Mais à côté de cette action anecdotique, il y a quelque chose d’intéressant et de plus général sur la façon dont ces diagrammes présentent le modèle Ecore.ecore.

Composants Ecore

Ed commence par diagrammer la hiérarchie des types, sans aucune autre information (attributs ou références). Et au moins dans le cas d’Ecore, mais je suis sûr que c’est vrai dans un sens général, cela donne une très bonne introduction à un modèle de domaine : en commençant seulement avec les types qu’il définit.

Les composants Ecore sont reliés selon cette hiérarchie

Pour construire un tel diagramme en utilisant EcoreTools, importez toutes les EClasses dedans, puis activez les filtres suivants :

Filtres dans EcoreTool

Vous pouvez également activer la couche Contraintes qui donne un peu plus d’informations sur ce qui rend ces types valides.

Couches dans EcoreTool
La hiérarchie + les contraintes spécifiques

Voici un diagramme général mettant en évidence les références et attributs. Il peut paraître un peu encombré au premier abord, mais il regorge d’informations. Vous pouvez comprendre comment tous les aspects principaux d’Ecore fonctionnent juste en utilisant ce diagramme.

Les composants Ecore ont les relations, attributs et opérations suivants

Pour ce type de diagrammes, vous devez vraiment connaître quelques raccourcis clavier, parmi d’autres :

Cacher élément + ->doc
Cacher étiquette + ->doc
Supprimer les points de flexion + + ->doc

Vous trouverez tous les raccourcis clavier dans l’excellent article de blog de Mélanie.

Types Génériques

Le diagramme suivant se concentre sur la façon dont les Génériques sont modélisés dans Ecore et fait un assez bon travail en décrivant cela en cachant tous les autres aspects.

Ecore prend en charge les génériques comme suit

Plus important : cela n’était pas affiché du tout dans le diagramme précédent et c’est une bonne chose car on n’a pas besoin de comprendre ce point spécifique pour tirer parti d’Ecore.

Types primitifs Java

Les derniers diagrammes énumèrent les types de données.

Ecore définit les types de données pour les types de langage Java suivants

Pour ce type de diagrammes avec de nombreuses formes non connectées, vos meilleurs amis sont les actions Rendre de même taille, Distribuer et Aligner.

Rendre de même taille
Aligner
Distribuer

Types Externes

Ecore définit les types de données supplémentaires suivants

Alors maintenant, qui veut une belle affiche dans son bureau ?