Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Modellgetriebene Softwareentwicklung
Projektseminar H. Fritzsche
2
Was muss installiert werden?
Idee der SF Grafik Was muss installiert werden? H. Fritzsche
3
Idee der SF Das zu entwickelnde Metamodell ist Ecore-basiert und wird von Ecore abgeleitet (Es gibt grundsätzlich zwei Möglichkeiten: - Ecore oder - UML2 + Profile GMF ist auf EMF-Metamodelle ausgerichtet (Editorerstellung) Zieltechnologien (Plattformen, Frameworks) sollen für konkretes Projekt individuell auswählbar sein Cartridges H. Fritzsche
4
H. Fritzsche
5
Der Kern steuert die Ausführung der Cartridge
Modell wird an Cartridge übergeben H. Fritzsche
6
H. Fritzsche
7
Was muss installiert werden?
Arbeit mit Eclipse Galileo, die Factory wird in Eclipse installiert Aufnahme EMF in Eclipse-Umgebung (features, plugins) Neues EMF-Projekt kreieren (SF-Student) Erweiterung um Cartridges durch ein Plug-in-Projekt Definition eigener Erweiterungspunkte H. Fritzsche
8
Das nachfolgende Beispiel für ein EMF-Projekt entspricht genau
dem Tutorial. Es umfasst folgende Schritte: Step 0: Vorbereitungen Step 1: (Import the Model from Rose or) Define the Model Using Annotated Java Step 2: Generate the EMF Model Code Step 3: Generate an Editor for the Model Step 4: Run the Generated Editor H. Fritzsche
9
STEP 1: Define the Model Using Annotated Java
Neues EMF-Projekt kreieren: H. Fritzsche
10
Es wird folgendes erzeugt:
Jetzt wird src „von Hand“ gefüllt. einzeln, immer beginnend beim Kontextmenü von src: H. Fritzsche
11
Jetzt wird das EMF-Modell erzeugt:
Hier ist ein Unterschied zum Tutorial Die Rubrik „EMF Model“ gibt Es nicht, statt dessen „EMF Generator Model“ (hat keine weiteren Auswirkungen) H. Fritzsche
12
Weiter bei STEP 2: H. Fritzsche
13
Ecore: H. Fritzsche
14
H. Fritzsche
15
STEP 2: Generate the EMF Model Code
H. Fritzsche
16
Das generierte Modell zum EMF-Projekt:
H. Fritzsche
17
ecore-Modell library.ecore und eine Generatormodell library.genmodel
► Ein ecore-Modell library.ecore und eine Generatormodell library.genmodel wurden erzeugt. Beide Modelle sind xml-Dateien. library ist der Package-Name. Das Generatormodell steuert die Codeerzeugung. H. Fritzsche
18
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi=" xmlns:xsi=" xmlns:ecore=" name="library" nsURI=" nsPrefix="org.eclipse.example.library"> <eClassifiers xsi:type="ecore:EClass" name="Book"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType <eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" defaultValueLiteral="100"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="#//BookCategory"/> <eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//Writer" eOpposite="#//Writer/books"/> </eClassifiers> H. Fritzsche
19
<eClassifiers xsi:type="ecore:EEnum" name="BookCategory">
<eLiterals name="Mystery"/> <eLiterals name="ScienceFiction" value="1"/> <eLiterals name="Biography" value="2"/> </eClassifiers> H. Fritzsche
20
<eClassifiers xsi:type="ecore:EClass" name="Library">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType <eStructuralFeatures xsi:type="ecore:EReference" name="writers" upperBound="-1" eType="#//Writer" containment="true" resolveProxies="false"/> name="books" upperBound="-1" eType="#//Book" containment="true" resolveProxies="false"/> </eClassifiers> H. Fritzsche
21
<eClassifiers xsi:type="ecore:EClass" name="Writer">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1" eType="#//Book" eOpposite="#//Book/author"/> </eClassifiers> </ecore:EPackage> H. Fritzsche
22
STEP 3: Generate an Editor for the Model
Nach der Generierung sollen die Klassen-Interfaces und die enum class erzeugt sein and a new pair of interfaces will have been created for the package itself and for the factory. 2 neue packages, with "impl" and "util" suffixes, which contain implementations of the interfaces and additional utility classes, and both types of manifest files for the model plug-in: "plugin.xml" and "MANIFEST.MF". H. Fritzsche
23
Code- Generierung beginnt beim Generatormodell Über Kontextmenü
H. Fritzsche
24
Das Edit-plugin enthält Adapter Das Editor-plugin Enthält einen Editor
H. Fritzsche
25
STEP 4: Run the Generated Editor
► Um die neuen Plugins zu testen, muss eine zweite Eclipse-Instanz gestartet werden. Select one of the projects and then choose "Run As/Eclipse Application" from the "Run" menu or toolbar drop-down. H. Fritzsche
26
H. Fritzsche
27
Eine Fehlerursache sind die fehlenden Dependencies :
H. Fritzsche
28
H. Fritzsche
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.