Le Compte Rendu
Le Compte Rendu
Le Compte Rendu
MOF/EMF/ Les
plugins Eclipse
1
Table des matières
2
1.XML Metadata Interchange :
XMI
La notion XMI (XML Metadata Interchange) constitue un standard de l'Object Management Group
(OMG) dédié à l'échange de métadonnées via le langage XML. Cette norme joue un rôle crucial dans
la facilitation des échanges de modèles UML entre différentes applications de modélisation UML, et
elle est étendue à toute métadonnée dont le métamodèle peut être exprimé en MOF (Meta-Object
Facility). XMI opère comme un pont entre deux standards industriels majeurs : XML et MOF. Son
utilisation est répandue dans le domaine de l'ingénierie dirigée par les modèles en tant que procédé
de sérialisation d'objets MOF, permettant de décrire des objets sous forme XML.
En tant que standard ouvert et indépendant de la plateforme et du fournisseur, XMI est largement
intégré dans les outils de modélisation UML. Plusieurs versions de XMI existent, la dernière étant la
version 2.5.1, publiée en juin 2015. Des informations détaillées sur XMI sont disponibles dans la
spécification officielle de l'OMG.
XMI agit également comme langage d'échange entre le monde des modèles et le monde XML
(eXtensible Markup Language), servant de format standard d'échange entre les outils compatibles
MDA (Model-Driven Architecture). Il définit comment utiliser les balises XML pour représenter un
modèle UML en XML, facilitant ainsi les échanges de données (ou métadonnées) entre différentes
applications ou plates-formes de modélisation.
Les règles définies par XMI permettent la construction de DTD (Document Type Definition) et de
schémas XML à partir de méta-modèles, et inversement. Ainsi, il est possible d'encoder un méta-
modèle dans un document XML, et à partir de ce document XML, il est possible de reconstruire des
méta-modèles. Les méta-modèles MOF et UML sont décrits par des DTD, et les modèles sont traduits
dans des documents XML conformes à leur DTD correspondante.
Un avantage significatif de XMI réside dans son regroupement des métadonnées et des instances
dans un même document, facilitant ainsi la compréhension des instances par une application grâce à
leurs métadonnées. Cette caractéristique simplifie les échanges entre applications, renforçant son
utilité dans le contexte de l'ingénierie dirigée par les modèles.
3
Classe MOF : Les classes MOF servent à définir
les concepts fondamentaux dans un métamodèle. Elles peuvent avoir des propriétés, des
associations, et peuvent être spécialisées.
Instance MOF : Les instances MOF sont des objets créés à partir d'un métamodèle. Elles
représentent des données conformes à la structure définie par le métamodèle.
Comme le montre l'Illustration ci-dessus, l'objectif général de EMF est de proposer un outillage qui
permet de passer du modèle au code Java automatiquement. Pour cela le Framework s'articule
autour d'un modèle (le Core Model).EMF va proposer plusieurs services :
1. la transformation des modèles d’entrées, présentés sous diverse formes, en Core Model
2. la gestion de la persistance du Core Model
3. la transformation du Core Model en code Java.
4
CWM (Common Warehouse Metamodel) :
CWM est un exemple d'application du MOF dans le contexte des entrepôts de données,
illustrant la diversité des domaines où le MOF peut être utilisé.
1. Développement Basé sur des Modèles (MDSD) : EMF est largement utilisé dans des
approches de développement basé sur des modèles. Les modèles, définis à l'aide d'EMF,
deviennent une partie intégrante du processus de développement logiciel, facilitant la
création et la manipulation des structures de données complexes.
5
instances de modèles. Cela améliore la
productivité et simplifie la gestion des modèles complexes.
3. Développement d'Outils de Modélisation : EMF est utilisé pour construire des outils de
modélisation personnalisés. Ces outils peuvent être spécifiques à un domaine particulier,
offrant une solution adaptée aux besoins de modélisation spécifiques d'une application ou
d'un projet.
4. Intégration avec Eclipse : En tant que framework Eclipse, EMF est étroitement intégré dans
l'environnement de développement Eclipse. Il est souvent utilisé dans des projets Eclipse
pour la modélisation de données et l'interaction avec d'autres plugins Eclipse.
9. Développement d'Outils de Validation de Modèles : EMF peut être employé pour créer des
outils de validation de modèles qui assurent la conformité des modèles aux règles spécifiées.
Cela contribue à garantir la qualité des modèles utilisés dans le développement.
10. Développement dans des Domaines Spécifiques : EMF trouve des applications dans des
domaines spécifiques tels que la simulation, la conception de systèmes embarqués, la
modélisation d'entreprises, et d'autres domaines où la représentation et la manipulation de
modèles sont cruciales.
2. Génération de Code Automatisée : EMF automatise la génération de code Java à partir des
modèles définis. Cela permet aux développeurs d'accéder facilement aux fonctionnalités du
modèle à travers des classes Java générées, ce qui accélère le développement.
6
3. Éditeurs Graphiques Générés : EMF génère
automatiquement des éditeurs graphiques pour les modèles, facilitant la création, la
modification et la visualisation des instances de modèles de manière visuelle. Cela améliore
la productivité des développeurs.
4. Intégration Étroite avec Eclipse : En tant que framework Eclipse, EMF s'intègre de manière
transparente dans l'environnement de développement Eclipse. Les développeurs peuvent
exploiter les fonctionnalités d'Eclipse, notamment la perspective Modélisation, pour
travailler efficacement avec des modèles EMF.
5. Développement Basé sur des Modèles (MDSD) : EMF favorise le développement basé sur
des modèles, où les modèles occupent une place centrale dans le processus de
développement logiciel. Cela simplifie la création et la gestion de modèles, améliorant ainsi la
qualité du code généré.
8. Extensibilité : EMF est extensible, ce qui signifie qu'il peut être étendu pour prendre en
charge des fonctionnalités spécifiques à un projet. Les développeurs peuvent ajouter des
fonctionnalités personnalisées et des extensions selon les besoins de leur application.
9. Gestion des Changements : EMF intègre un système de notification qui permet de détecter
les changements dans les modèles. Cela simplifie la gestion des mises à jour et des réactions
aux modifications, facilitant ainsi le suivi des évolutions des modèles.
10. Communauté Active : EMF bénéficie d'une communauté active au sein de la Fondation
Eclipse, assurant un développement continu et des mises à jour régulières. Cela garantit la
stabilité et la compatibilité avec les dernières versions d'Eclipse.
Eclipse Papyrus
UMLet
7
PlantUML
StarUML
Les outils de modélisation UML tels que Eclipse Papyrus, UML Designer, Visual Paradigm for
UML, Violet UML Editor, UMLet, Umbrello UML Modeller, PlantUML et StarUML peuvent
présenter des différences significatives en termes de fonctionnalités, d'interface utilisateur,
de flexibilité, et d'objectifs spécifiques. Voici une comparaison basée sur certains critères
courants :
4.1Interface Utilisateur :
4.3Génération de Code :
Eclipse Papyrus : Prise en charge de la génération de code.
UML Designer : Prise en charge de la génération de code.
Visual Paradigm for UML : Génération de code avancée, y compris la génération de code
vers plusieurs langages.
Violet UML Editor : Principalement un outil de dessin, pas orienté vers la génération de code.
UMLet : Prise en charge limitée de la génération de code.
Umbrello UML Modeller : Génération de code limitée.
PlantUML : Génération de code textuel.
StarUML : Prise en charge de la génération de code.
8
4.4Extensibilité et Personnalisation
Eclipse Papyrus : Très extensible avec la possibilité d'ajouter des profils UML et d'étendre les
fonctionnalités.
UML Designer : Extensible avec la possibilité de personnaliser les modèles.
Visual Paradigm for UML : Modélisation extensible avec la possibilité d'ajouter des
extensions personnalisées.
Violet UML Editor : Limité en termes d'extensibilité.
UMLet : Extensible avec des plugins.
Umbrello UML Modeller : Possibilité d'ajouter des plugins, mais moins extensible que
d'autres.
PlantUML : Extensible avec la possibilité d'ajouter des fonctionnalités textuelles.
StarUML : Extensible avec des extensions tierces.
4.5Interopérabilité :
Eclipse Papyrus : Prise en charge de l'import/export XMI pour l'interopérabilité.
UML Designer : Prise en charge de l'import/export XMI.
Visual Paradigm for UML : Prise en charge de l'import/export XMI.
Violet UML Editor : Limité en termes d'interopérabilité.
UMLet : Prise en charge de l'exportation vers différents formats d'image.
Umbrello UML Modeller : Prise en charge de l'import/export XMI.
PlantUML : Interopérabilité via du code texte.
StarUML : Prise en charge de l'import/export XMI.
5.Conclusion :
Cette étude approfondie sur XML Metadata Interchange (XMI), Meta Object Facility (MOF), Eclipse
Modeling Framework (EMF), ainsi que la comparaison des plugins Eclipse pour le support UML, offre
une perspective complète sur les technologies de modélisation et de développement. Ces normes et
frameworks sont essentiels dans le domaine de l'ingénierie dirigée par les modèles (IDM) et du
développement basé sur des modèles (MDSD).
L'utilisation de XMI comme norme d'échange de métadonnées facilite l'interopérabilité entre les
outils de modélisation UML, créant un pont essentiel entre le monde des modèles et celui du langage
XML. MOF, en tant que standard de méta-modélisation, offre un cadre robuste pour définir la
structure et le comportement des modèles, favorisant ainsi la cohérence et l'interopérabilité.
EMF, en s'appuyant sur MOF, émerge comme un outil puissant dans le développement basé sur des
modèles, offrant une génération automatisée de code, des éditeurs graphiques intuitifs, et une
intégration transparente avec Eclipse. Ses avantages, tels que la simplification de la modélisation, la
productivité accrue, et l'extensibilité, en font un choix populaire parmi les développeurs.
La comparaison des plugins Eclipse souligne la diversité des options disponibles, chacune présentant
des caractéristiques spécifiques adaptées à différents besoins. Les différences dans l'interface
utilisateur, la génération de code, l'extensibilité, et d'autres critères, offrent aux développeurs la
flexibilité de choisir un plugin en fonction des exigences spécifiques de leur projet.
9
En somme, cette étude met en lumière l'importance
cruciale de normes comme XMI et MOF dans le domaine de la modélisation, tout en soulignant le
rôle central d'EMF dans le développement basé sur des modèles. Les plugins Eclipse enrichissent
davantage l'écosystème en offrant des options diversifiées pour la modélisation UML. Cette
combinaison de normes et d'outils constitue une base solide pour la conception et le développement
logiciel dans des environnements axés sur les modèles.
10