Upload
hakhanh
View
217
Download
0
Embed Size (px)
Citation preview
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
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