Modélisation avec EMF

  • Published on
    14-Dec-2014

  • View
    24.153

  • Download
    3

Embed Size (px)

DESCRIPTION

Ce support de cours s'intresse la modlisation via l'API Eclipse EMF (Eclipse Modeling Framework). Une premire partie prsente la construction d'un modle EMF, une deuxime partie montre comment manipuler le mta-modle puis les transactions sont montres dans une dernire partie.

Transcript

<ul><li> 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 </li> <li> 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 </li> <li> 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 </li> <li> 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 </li> <li> 5. Droulement du cours Rappel pour le schma UML (diagramme de classes) Dmarrable &gt; 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 </li> <li> 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 </li> <li> 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 </li> <li> 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 </li> <li> 9. Modlisation avec EMF : Modle Ecore Relations, attributs et oprations du modle Ecorekeulkeul.blogspot.com Modlisation via EMF - M. Baron - Page 9 </li> <li> 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 </li> <li> 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 </li> <li> 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) : lassociation est une composition Unique (true, false) : pour les cardinalits multiples, prcise quil ne peut y avoir la mme valeur dobjet Changeable (true, false) : valeur ne peut changer (pratique pour les relations inverses)keulkeul.blogspot.com Volatile (true, false) : ne gnre pas lattribut pour stocker ltat, le corps de la mthode est galement laiss vide Transient (true, false) : non persist Derived (true, false) : calcul partir dautres StructuralFeatures (attribut gnralement marqu VolatileModTransient) - M. Baron - Page et lisation via EMF 12 </li> <li> 13. Modlisation avec EMF : Formats Pour construire un modle EMF plusieurs formats disponibles Modle Ecore (voir la suite) Classes Java annotes Modle de classes Rose Modle UML XML Schema : les instances XMI seront conformes lXML Schema de dpartkeulkeul.blogspot.com Nous utiliserons par la suite un modle Ecore puisque loutillage fourni par EMF facilite la construction Modlisation via EMF - M. Baron - Page 13 </li> <li> 14. Exemple : un carnet dadresses AddressBook Un carnet dadresses - name:String est compos dun ensemble de personnes 0..n Address 1 Person - number : int - street : String - firstName : String - familyName : Stringkeulkeul.blogspot.com - age : int Une personne habite + display() : String une adresse Une mthode pour afficher ltat dune instance de Person Modlisation via EMF - M. Baron - Page 14 </li> <li> 15. Dfinir un modle EMF : tapes de modlisation 1 Cration du modle EMF (extension .ecore) 2 Cration du modle de gnration (extension .genmodel) 3 Paramtrer le modle de gnration 4 Gnration des codes Java et de lditeur graphiquekeulkeul.blogspot.com 5 Cration dune configuration dexcution 6 Cration des instances Modlisation via EMF - M. Baron - Page 15 </li> <li> 16. Dfinir un modle EMF : Cration du modle Cration dun projet EMF vide (File -&gt; New -&gt; Project) Choisir Eclipse Modeling Framework puis Empty EMF Projectkeulkeul.blogspot.com Puis faire Next Modlisation via EMF - M. Baron - Page 16 </li> <li> 17. Dfinir un modle EMF : Cration du modle Choisir le nom du projet EMF Choisir comme nom de projet eclipse.emf.addressbookkeulkeul.blogspot.com Puis faire Finish Modlisation via EMF - M. Baron - Page 17 </li> <li> 18. Dfinir un modle EMF : C...</li></ul>