Qu'est-ce qu'EMF ?
Par kadreg, mercredi 16 mai 2007 à 14:06 :: Programmation :: #35 :: rss
EMF signifie donc Eclipse Modeling Framework. Il s'agit d'un système permettant de modéliser statiquement une application (un équivalent du diagramme de classes UML) et de générer le code correspondant à sa manipulation et prenant en charge le cycle de vie des objets.
La première partie d'EMF est la modélisation applicative. Le format qui sert de pivot est un fichier .ecore, contenant le modèle statique de l'application. Un fichier .ecore peut être créé directement dans éclipse, ou, plus ami de l'utilisateur, déduit d'un fichier rational, XMI, ou d'un fichier java annoté. Voici un fichier ecore et sa modélisation via GMF :
On a ici la modélisation d'un modèle métier de bibliothèque. Ce modèle contient les données statiques, mais également les traitement métiers. Mais bien évidemment, on ne fait pas un modèle pour avoir un modèle. EMF possède une forte approche générative. De ce modèle, un code java va être généré. Ce code contiendra les déclarations d'objets métiers, sous forme d'interface et leur implémentation par défaut, ainsi qu'une factory permettant l'instanciation des différents objets.
On crée donc un model de génération, un fichier genmodel lié à notre ecore qui va exprimer les spécificités de génération de chaque élément vers du code java. A partir de ce genmodel, on génére le code du modèle, mais on peut également générer automatiquement du code de test, ou un éditeur pour la plate forme eclipse/RCP.
Et quelles sont les caractéristiques de ce code généré ? EMF est un framework, et arrive donc avec tout un ensemble de bibliothèques exploitées par la génération. Le plus visible est le mécanisme de EContainer. Un ensemble de containers utilisés par EMF permettant d'implémenter les associations, en prenant en compte le fait qu'elles puissent être bidirectionnelles, ou en ajoutant une gestion de notifications, notifications qui peuvent être utilisées dans la vue par exemple. D'ailleurs, ça tombe bien, l'éditeur qu'est capable de créer le genmodel utilise ce système pour son implémentation MVC.
Qui a besoin de l'utiliser ? Toute personne qui veut développer une application peut l'utiliser. Mais si le développement à lieu dans un contexte RCP, cela devient une solution de choix, de nombreux outils existent autour d'EMF dans un tel contexte. EMF sers de liant à toutes les technologies, les modèles des plugins étant exprimés en EMF, que ce soit le metamodèle graphique du GEF ou le metamodèle UML2 servant de base à plusieurs modeleurs.
Commentaires
1. Le mercredi 16 mai 2007 à 16:45, par contructifs
2. Le mercredi 16 mai 2007 à 16:51, par axel
3. Le mercredi 16 mai 2007 à 16:58, par allcolor
4. Le dimanche 10 juin 2007 à 13:00, par kadreg
Ajouter un commentaire