urbanisation-si

urbanisation-si

Eclipse Modeling Framework (EMF) : revoyons les fondamentaux

reference-metametamodele-ecore.gif

 

L'OMG nous a promis MDA (Model Driven Architecture). Ce framework permet de spécifier des applications avec un haut niveau d'abstraction appelé PIM (Platform Independent Model).

Les technologies de transformation comme on en a vu un exemple dans notre article "Tutoriel de transformation de modèles avec ATL (ATLAS Transformation Language)" permettent de convertir un PIM en PSM (Platform Specific Model) c'est à dire en modèle propre au choix d'implémentation de code. 

MDA inclu plusieurs normes :

  • UML(Unified Modeling Language)
  • MOF (Meta-Object Facility)
  • XMI (XML Metadata Interchange)
  • QVT (Query View Transform)

Tout cela est bien beau mais malheureusement cela reste à l'état de rêve, car la réalité est tout autre.

En effet, quand on regarde d'un peu plus près, on s'aperçoit que le MOF (métamétamodèle), l'infrastructure d'UML 2 entièrement spécifiée en OCL (Object Constraint Language) sont d'une extrême complexité.

D'autre part il n'existe aucun outil supportant entièrement la norme QVT, le langages de transformation de l'OMG. Il existe bien par exemple un plugin pour Eclipse QVTO (QVT Operational) mais encore rien ou presque pour QVTD (QVT Declarative) qui est le plus intéressant.

Bref, l'OMG a eu les yeux plus gros que le ventre et a été pris d'ambitions démesurées. Ce qui a eu pour résultats des normes trop complexes à réaliser et au final aucun outil réellement opérationnel.

EMF est au contraire, un cadre de pensée simple et pragmatique ayant pour objectifs la génération de code et les manipulations de modèles avec de nombreux retours d'expérience positifs.

EMF contribue largement aujourd'hui à l'Ingénierie Dirigée par les Modèles (IDM ou MDE Model Driven Engineering).

Contrairement à ce que pense de nombreux développeurs, les modèles ne servent pas seulement  à la documentation, mais permettent de générer des applications.

Tous les programmes manipulent des modèles de données en UML, XML Schema, ...

Le projet "Eclipe Modeling Project" regroupe :

  • EMF
  • CDO (Connected Data Objects),
  • Sirius qui vous permet de créer facilement votre propre environnement de modélisation graphique,
  • GMF,
  • Graphiti pour réaliser rapidement des éditeurs de diagrammes,
  • Ecore Tools pour concevoir des modèles Ecore,
  • OCL,
  • Papyrus un environnement permettant d'éditer tous les types de modèles EMF et supporte tout particulièrment UML et SysML.
  • XML Schema Definition (XSD)
  • ATL (ATLAS Transformation Language)
  • MMT (Model-to-Model Transformation) avec ATL, QVT Operational (Impératif) et QVTd (Declarative) à l'état embryonnaire
  • ...

EMF est un métamétamodèle définissant les concepts d'objets, d'attributs, d'opérations, de relations entre les objets et des contraintes qui sont représentés par un diagramme de classe UML 2.

EMF peut définir :

  • des interfaces Java
  • des diagrammes de classe UML 2
  • des XSD

A vous de choisir une de ces 3 représentaions et EMF vous donne les 2 autres ainsi que le code Java implémenté.

 

Architecture EMF :

eclipse-modeling-framework-import-generation.png

 

EMF est constitué d'un métamétamodèle objet Ecore :

reference-metametamodele-ecore-2.gif

Tous les modèles sont donc des instances d'Ecore.

Ecore dispose d'un format de persistance XMI avec les fichiers ".ecore".

Il existe une alternative en utilisant une partie du MOF : EMOF Essential MOF avec les fichiers ".emof"

Toutes les méta classes (EObject, ...) ont une implémentation Java avec leurs attributs et méthodes (voir la javadoc Ecore).

 

"La prière est le plus grand rempart de l'âme."
Saint Augustin

 

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/



17/08/2015
0 Poster un commentaire

A découvrir aussi


Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 115 autres membres