Das Eclipse Modeling Framework - Lehrstuhl für ?· I EMF Wizard ⇒ Empty EMF Project I Neues EMF-Modell…

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Software Engineering in derProjektpraxis

    Praktische bungen

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Das Eclipse Modeling Framework

    Josef Adersberger Dirk Wischermann

    Lehrstuhl fr Software EngineeringFriedrich-Alexander-Universitt Erlangen-Nrnberg

    15. Mai 2008

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Inhalt

    Einordnung von EMF

    Modellierung mit Ecore

    EMF Generate: Code, Editoren

    Validierung von EMF-Modellen

    Fazit

    Literatur

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Das Eclipse Modeling FrameworkEMF bietet Bibliotheken und Werkzeuge zurmodellgetriebenenen Software Entwicklung

    I Rahmenwerk zur Schaffung von Werkzeugen undAnwendungen

    I Ausganspunkt stets ein strukturiertes ModellI Fokus: Integration von Programmierung und ModellierungI Erzeugt wird

    I Java-Code zur Laufzeitreprsentation und Manipulation desModells

    I Editoren und Viewer fr die Eclipse / RCP lattform

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Das EMF im Verhltnis zu OMG MOF

    I UML: Unified Modeling LanguageI universellI Domnenspezifika eher schwer zu bercksichtigen

    I MOF: Meta Object FacilitiesI Standard fr die Definition von Modellierungssprachen

    selbstI Vokabular und Grammatik

    I wesentliche Untermenge essential MOF: EMOFI wird (in etwa) von EMF Ecore implementiert

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Hierarchie der Metamodellierung

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Bestandteile von EMF

    I Ecore: Klassenbibliothek / EMOF ImplementierungI Change Notification (Observer Pattern)I Persistenz / XMI SerialisierungI Reflective API zum generischen Zugriff auf Modelle

    I EMF.EditI Wiederverwendbare Klasssen fr ModelleditorenI JFaceI Command-Framework

    I EMF.Codegen

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Bestandteile von EMF (2)

    I EMF.Codegen: Generierter Code gestattet dreistufigenZugang zu Modellen

    I direkter Modellzugriff durch generierte Interfaces undImplementierungsklassen

    I Zugriff ber Adapter mittels sogenannter ItemProviderI Bearbeitung der Modelle im Editor EMF erzeugt hierfr

    Eclipse PluginsI EMF.ValidationI EMF.Change

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    KlasssendiagrammeDie Metamodellieurng erfolgt mit einfachenKlassendiagrammen

    I KlassenI Vererbung,

    SpezialisierungI Assoziationen,

    Aggregationen

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Das Ecore Metamodell

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    EMF Datentypen

    EMF bietet einen grundlegenden Satz an Datentypen.I Alle entsprechen Java Typen und sind serialisierbar.

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    StructuralFeatures

    Das Ecore Metamodell leitet Attribute und Referenzen von derKlasse EStructuralFeature ab. Geerbte Eigenschaften(exemplarisch):

    I Multiplizitt: Ober- und UntergrenzenI volatile: kein eigenes FeldI derived: aus anderen Werten abgeleitetI transient: von Serialisierung ausgenommenI unique: Wert kommt hchstens einmal vor.I ordered: . . .

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Erzeugung von Ecore-Modellen

    Ecore Modelle knnen auf vielerlei Arten erzeugt werden:I Direkt als XMI-Datei (XML Metadata Interchange)I Mit annotierten Java-InterfacesI Durch den XMI-Export eines UML

    ModellierungswerkzeugsI Aus Eclipse heraus mit einem EMF EditorI Dynamisch via Reflective API

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Handhabung in Eclipse

    Nicht immer intuitiv:I Ein leeres EMF-Projekt anlegen:

    I EMF Wizard Empty EMF ProjectI Neues EMF-Modell erzeugen:

    I Example Wizard Ecore ModelI Es wird mit einem leeren Ecore Modell begonnenI Modellobjekt auf EPackage belassen

    I .genmodel - Datei erzeugen:I Das Ecore Modell im Containment-Baum markierenI EMF Wizard EMF ModelI Mit Generatoranweisungen dekorierte Version des

    Ecore-Modells

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Struktur der EMF-Generate

    Der EMF-erzeugte Code teilt sich auf mehrere Eclipse-Projekteund Pakete auf:

    I Das ModellprojektI Interfaces, Implementierung, Util

    I Modell.editI Itemprovider und zugehrige Fabrik

    I Modell.editorI Editor, Editorplugin, Wizard, ActionBarContribution

    I Modell.testI Vorbereitete JUnit Testsuites

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Notification

    Im Framework ist ein Observerpattern realisiertI EObject erweitert NotifierI wird nur bei Bedarf durchgefhrt

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Konsistenz von Assoziationen

    Der generierte Code enthlt Getter- und SetterMethoden undkmmert sich automatisch um die Konsistenz vonAssoziationen.

    I Einfache ReferenzenI Bidirektionale Referenzen:

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Konsistenz von Assoziationen (2)

    Auch 1:n Relationen werden automatisch beherrscht:

    I EObjectWithInverseResolvingEList beinhaltet alleInformationen zum Handshake

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Die ItemProviderBindeglied zwischen Model und View

    Aus JFace bekannte Content- und LabelProvider werdenin einer Klasse je Sprachelement kombiniert und im ProjektEdit bereitgestellt.

    I Implementieren das Adapter - MusterI Instanzen werden via Fabrikmethode erzeugtI Fabrik selbst aus ComposedAdapterFactory (Pattern

    chain of responsability)Guter Einstiegspunkt in den Code: Die Methode createPagesder Editorklasse.

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    EMF Command

    In EMF wird das (bereits durch JFace bekannte) CommandMuster verwendet

    I Die Schnittstelle umfat execute, undo, redo,canExecute, canUndo ...

    I Es gibt grundlegende Kommandos wie Set,Add,Remove, Move, Copy oder ReplaceCommand

    I ber ein CompoundCommand knnen diesezusammengesetzt werden.

    I z.B. zu einem DragAndDropCommand

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Persistenz

    Auch um die Serialisierung der erstellten Modelle braucht sichder Benutzer nicht zu kmmern

    I Es wird eine ResourceFactory fr den Resourcentyp(z.B. XMI) erstellt und registriert

    I . . . ein ResourceSet angelegtI . . . eine Resource zu einer gegebenen URI erzeugtI . . . die die Methoden save und getContents versteht.

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Invarianten prfen mit Java CodeAn Ecore Modellelemente kann die Signatur einerValidierungsmethode annotiert werden.

    I EMF erzeugt eine entsprechende Methode in derImplementierungsklasse

    I Aufruf durch Validatorklasse, entsprechender Menpunktim Editor

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Validierung von Modellinstanzen

    I Geprft werden auerdem einige modellierteEigenschaften, insbesondere die Einhaltung derMultiplizitten

    I Die Angabe von OCL-Constraints ist ebenfalls mglich

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Fazit

    EMF ist ein recht umfangreiches Projekt, bei dem derEntwickler viel geschenkt bekommt.

    I Codeerzeugung zur Laufzeitreprsentation von ModellenI Eclipse Plugins zum Editieren der ModelleI ein umfangreiches Rahmenwerk

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    Ausblick

    Nicht angesprochen wurdenI EMF.QueryI EMF.TransactionI TeneoI SDOI . . .

    Adersberger, Wischermann:

    Das Eclipse Modeling Framework

  • Inhalt EMF berblick ecore EMF Generate Validierung Fazit Literatur

    LiteraturOnline-Ressourcen

    Bitte an