Modélisation avec EMF

Embed Size (px)

DESCRIPTION

Ce support de cours s'intéresse à la modélisation via l'API Eclipse EMF (Eclipse Modeling Framework). Une première partie présente la construction d'un modèle EMF, une deuxième partie montre comment manipuler le méta-modèle puis les transactions sont montrées dans une dernière partie.

Text of Modélisation avec EMF

  • 1. Dveloppement de clientsriches : Plateforme Eclipse RCP Chapitre 4 : Modlisation Modlisation via EMF Mickal BARON - 2012 mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr
  • 2. Licence Creative Commons Contrat Paternit Partage des Conditions Initiales lIdentique 2.0 Francekeulkeul.blogspot.com http://creativecommons.org/licenses/by-sa/2.0/fr Modlisation via EMF - M. Baron - Page 2
  • 3. Droulement du cours Pdagogie du cours Illustration avec de nombreux exemples qui sont disponibles ladresse mbaron.developpez.com/eclipse/emf Des bulles daide tout au long du cours Logiciels utiliss Ceci est une astuce Eclipse 3.7.1 Indigo (Modeling Tools)keulkeul.blogspot.com Ceci est une alerte Prrequis Manipuler lAPI SWT, JFace et les UI-Forms Dvelopper un plugin Modlisation via EMF - M. Baron - Page 3
  • 4. Ressources Des articles sur EMF Aide Eclipse (EMF Developer Guide, EMF Model Transaction Developer Guide) www.devx.com/java/Article/29093/1954 www.vogella.de/articles/EclipseEMF/article.html eclipsesource.com/blogs/2011/03/22/what-every-eclipse-developer-should-know-about-emf-part-1 eclipsesource.com/blogs/2011/03/31/what-every-eclipse-developer-should-know-about-emf--part-2 www.vogella.de/articles/EclipseEMFNotification/article.html ed-merks.blogspot.com/2009/01/emf-ultra-slim-diet.html refcardz.dzone.com/refcardz/essential-emf Des supports de cours www.lisyc.univ-brest.fr/pages_perso/babau/cours/coursemf.pdfkeulkeul.blogspot.com m2chm.univ-lemans.fr/modules/UE5/Fichiers/CoursLaforcade2.pdf anubis.polytech.unice.fr/cours/_media/2008_2009:si5:idm:td:coursecore.pdf Des livres EMF : Eclipse Modeling Framework, 2nd Edition, 2008, ISBN-10: 0-321-33188-5 Modlisation via EMF - M. Baron - Page 4
  • 5. Droulement du cours Rappel pour le schma UML (diagramme de classes) Dmarrable > Voiture + dmarre + dmarre() Implmentation Hritage Batterie + getEtat(): intkeulkeul.blogspot.com VoitureElectrique - disjoncteur: boolen A besoin de + dmarre() Lien de navigabilit Association de type composition Modlisation via EMF - M. Baron - Page 5
  • 6. Organisation du cours Gnralits Modle Ecore Dfinir un modle EMF Instancier un modle Sauvegarder et charger les instances dun modle Manipuler le mtamodlekeulkeul.blogspot.com Utiliser EMF sans conteneur OSGi Notification Transactions Modlisation via EMF - M. Baron - Page 6
  • 7. Modlisation avec EMF Eclipse Modeling Framework (EMF) est un framework Java et un outil de gnration de codes pour construire des applications bases sur des modles Lien du projet : eclipse.org/modeling/emf/ EMF vous permettra de Gnrer du code Java Manipuler des modles dynamiques (pas besoin de codes gnrs)keulkeul.blogspot.com Interroger, crer et mettre jour des instances de modles Srialiser et dsrialiser des instances Valider des instances couter les changements des instancesModlisation via EMF - M. Baron - Page 7
  • 8. Modlisation avec EMF : Modle Ecore EMF sappuie sur le mtamodle Ecore qui respecte les principes dfinis par le eMOF (Extended Meta Object Facility) qui est un standard OMG Tout hrite de la classe EObjectkeulkeul.blogspot.com Hirarchie des classes Ecore Modlisation via EMF - M. Baron - Page 8
  • 9. Modlisation avec EMF : Modle Ecore Relations, attributs et oprations du modle Ecorekeulkeul.blogspot.com Modlisation via EMF - M. Baron - Page 9
  • 10. Modlisation avec EMF : Modle Ecore EClass : dsigne les classes des modles, identifies par un nom, peuvent contenir des StructuralFeatures (attributs ou rfrences). Supporte lhritage multiple, peut tre abstrait (pas dinstance possible) ou une interface (pas dimplmentation gnre) EAttribute : identifi par un nom et un type. Bornes mini et maxi sont utilises pour la cardinalit EReference : association entre deux classes, identifie parkeulkeul.blogspot.com un nom et un type (une classe). Relation inverse possible (opposite). Bornes mini et maxi sont utilises pour la cardinalit. Association de type composition autoris (containment) Modlisation via EMF - M. Baron - Page 10
  • 11. Modlisation avec EMF : Modle Ecore EDataType : type primitif ou type objet dfini par Java EPackage : dsigne les packages des modles qui sont des conteneurs de classifiers (classes et types). Dfini par un nom de package (unique) et une URI pour lidentification lors de la srialisation EOperation : dsigne les oprations dune classe pouvant tre invoques. Identifie par un nom, un type de retourkeulkeul.blogspot.com et des paramtres. Autorise les exceptions EEnum : dsigne le types numrs parmi un ensemble de EENumLiteral Modlisation via EMF - M. Baron - Page 11
  • 12. Modlisation avec EMF : Modle Ecore Les lments de type StructuralFeatures (attributs et rfrences) contiennent des paramtres pour contrler le code gnr Unsettable (true, false) : prcise quune valeur dun attribut na pas encore t dtermine (exemple : boolen true/false/undetermined) Containment (true, false) : lassoci