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 für Software EngineeringFriedrich-Alexander-Universität Erlangen-Nürnberg

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 Laufzeitrepräsentation und Manipulation desModells

I Editoren und Viewer für die Eclipse / RCP lattform

Adersberger, Wischermann:

Das Eclipse Modeling Framework

Inhalt EMF Überblick ecore EMF Generate Validierung Fazit Literatur

Das EMF im Verhältnis zu OMG MOF

I UML: Unified Modeling LanguageI universellI Domänenspezifika eher schwer zu berücksichtigen

I MOF: Meta Object FacilitiesI Standard für 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 für 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 hierfür

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 Multiplizität: Ober- und UntergrenzenI volatile: kein eigenes FeldI derived: aus anderen Werten abgeleitetI transient: von Serialisierung ausgenommenI unique: Wert kommt höchstens 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 können 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 Project

I 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 zugehörige 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 durchgeführt

Adersberger, Wischermann:

Das Eclipse Modeling Framework

Inhalt EMF Überblick ecore EMF Generate Validierung Fazit Literatur

Konsistenz von Assoziationen

Der generierte Code enthält Getter- und SetterMethoden undkümmert 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 umfaßt execute, undo, redo,canExecute, canUndo ...

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

I Über ein CompoundCommand können 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 kümmern

I Es wird eine ResourceFactory für 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 prüfen mit Java CodeAn Ecore Modellelemente kann die Signatur einerValidierungsmethode annotiert werden.

I EMF erzeugt eine entsprechende Methode in derImplementierungsklasse

I Aufruf durch Validatorklasse, entsprechender Menüpunktim Editor

Adersberger, Wischermann:

Das Eclipse Modeling Framework

Inhalt EMF Überblick ecore EMF Generate Validierung Fazit Literatur

Validierung von Modellinstanzen

I Geprüft werden außerdem einige modellierteEigenschaften, insbesondere die Einhaltung derMultiplizitäten

I Die Angabe von OCL-Constraints ist ebenfalls möglich

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 Laufzeitrepräsentation 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 anklicken!I EMF im WWWI EMF: Eclipse Modeling Framework, Second Edition;

Steinberg et.al 2008I Metamodelling Platforms; Karagiannis, Kühn, 2002I Das StateMaschinen-Beispiel

Adersberger, Wischermann:

Das Eclipse Modeling Framework