Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modellgetriebene Softwareentwicklung

Ähnliche Präsentationen


Präsentation zum Thema: "Modellgetriebene Softwareentwicklung"—  Präsentation transkript:

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


Herunterladen ppt "Modellgetriebene Softwareentwicklung"

Ähnliche Präsentationen


Google-Anzeigen