software engineering 2 – konstruktion interaktiver (case) tools ss 2007 albert zündorf, software...

51
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

Upload: pankraz-heinzerling

Post on 05-Apr-2015

111 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

Software Engineering 2 – Konstruktion interaktiver (CASE) Tools

SS 2007

Albert Zündorf, Software Engineering

Page 2: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

2

Administratives

Vorlesung: Montags 15-18 Uhr Raum 1342 (4SWS)

Prüfung: Projektarbeit (wir basteln uns ein (Petri-Netz) Tool)

Page 3: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

3

Überblick

1. Referenzarchitektur

2. Meta-Modell

3. Repository

4. Austauschformate

5. Unparsing

6. Checking

7. Code Generierung

Page 4: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

4

1. Referenzarchitektur

Repository

Meta Model

GUI(Commands)

Generators / Interpreters

QVT

Import/ Export

GUI(Unparsing)

Page 5: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

5

2. Meta-modell

abstrakter Syntaxgraph (ASG)

logische Datenstruktur hinter der Darstellung am Bildschirm

speichert Editoreingaben

beschrieben durch Klassendiagramm

File Edit Tools X

out = f (in);[out.x < 20][out.x > 10]

out.x = in.x + 1;

Page 6: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

6

Beispiel aus http://www.daimi.au.dk/CPnets/intro/

Page 7: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

7

2. Meta-modell

Page 8: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

8

Meta Meta Meta

M0: Objekte / Instanzen zur Laufzeit (Jim, GET-Vorlesung)

M1: Modell Diagramme die der Benuzter eingibt(Student, Vorlesung, ...)(oft UML)

M2: Meta-Modell: Klassendiagramm, dass Benuterzdiagramm beschreibt / Tool Ebene(mit UML oder MOF)

M3: Wer beschreibt das Meta-Modell? Meta-Meta Modell (meist MOF, MOF ist selbstbeschreibend Mn+1 = Mn)

Page 9: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

9

Sicht des Tool-Bauers

M0

M1

M2

M3

Jim SE II

Albert

Student

Course

UMLClass

UMLAssoc

. . .

CASE

TOOL

• Meta Modelle sind auch nur Modelle

• Modellierungsebene beeinflusst Modellierungssprache nur wenig

• Oft mehrere Ebenen betroffen

• Meta Meta ist Quatsch

• nur wenn man einen Knoten im Hirn braucht

• nur zur Verwirrung der Leute

Page 10: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

10

Meta Object Facility – MOF

yet another meta model for class diagrams

UML notation

+ klare Semantik

+ standard Implementierung(z.B. JMI Repository)

+ standard Austauschformate(XMI)

Akademische Initiative

Open source

oft als Austauschformat zwischen Tools benutzt

Page 11: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

11

3. Repository

Man will ja auch mal abspeichern und wieder laden:

Binäre File-Formate / Java Serialisierung

class C implements Serializable

bestimmen aller Objekte die gespeichert werden sollen( Composite Struktur)

transiente Attribute werden ausgeklammert

Anforderungen Serialisierung

Speichern und Laden +

Einfachheit ++

Tool-Kopplung O

Multi-User Support -

Versionierung --

Schema-Evolution ?

Scaling O

Page 12: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

12

3. Repository

XML-Formate

generische Lade-/Speicher Routinen per Java Reflection

bestimmen aller Objekte die gespeichert werden sollen( Composite Struktur)

JDom / Xerces Basistechnologie(beherschbar)

Anforderungen XML - Formate

Speichern und Laden +

Einfachheit +

Tool-Kopplung +

Multi-User Support -

Versionierung --

Schema-Evolution +

Scaling -

Page 13: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

13

3. Repository

Relationale Datenbanken

Objekte und Beziehungen werden als Tupel in Datenbanktabellen gespeichert

Zugriff per ODBC

Middleware (z.B. Hibernate)

Multi-User Betrieb durch Datenbank Sperrkonzepte und Transaktionen pessimistische Sperren Caching schwierig

Anforderungen Datenbanken

Speichern und Laden +

Einfachheit -

Tool-Kopplung +

Multi-User Support +

Versionierung -

Schema-Evolution +

Scaling ++

Page 14: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

14

3. Repository

Coobra: COmmon Object Replication frAmework

Basismechanismus von Fujaba

Protokollierung aller Attributzugriffe als Deltas per Listener

Undo / Redo

Deltas Checkin / Checkout in Repository

optimistisches Locking / Merging

Integriert in Fujaba Code Generierung

manuelle Implementierung möglich

Anforderungen Coobra

Speichern und Laden +

Einfachheit ++

Tool-Kopplung +

Multi-User Support ++

Versionierung ++

Schema-Evolution +

Scaling -

Page 15: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

15

3. Repository

Anforderungen Serialisierung XML - Formate

Datenbanken Coobra

Speichern und Laden + + + +

Einfachheit ++ + - ++

Tool-Kopplung O + + +

Multi-User Support - - + ++

Versionierung -- -- - ++

Schema-Evolution ? + + +

Scaling O - ++ -

Page 16: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

16

4. Commands

Aktionen hinter Menüpunkten und Buttons

Viele Buttons/Menüpunkte für ein Kommando denkbar

Undo/Redo Einheiten

API Operationen

Macros

Page 17: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

17

4. Commands

Normalerweise ein Objekt/eine Klasse pro Command

Aufwändige Protokolle für's Undo/Redo

API getrennt

Bei uns Undo/Redo per Coobra

FWT direkter Aufruf von Operationen Operationen beliebig gruppierbar (z.B. in Klasse StatechartEditor) FWT Elemente benutzen direkt die API

Page 18: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

18

4. Commands

Aufgabe

Klasse StatechartEditor bauen

main Methode baut eine Instanz

initGUI Methode baut Hauptfenster aus FWT Elementen

erwartete Operationen / GUI Elemente: Load / Save Undo / Redo Create / Delete State Create / Delete Transition startDobs Unparsing später, wir schauen uns das im Dobs an

Page 19: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

19

5. Unparsing

Metamodell: interne Speicherung z.B. für Code Generierung

GUI: Darstellung am Bildschirm z.B. mit GEF (oder Swing)

Unparsing: Erzeugung der Darstellung aus dem Metamodell

2 Teilprobleme:

1. Erzeugung von Darstellungselementen für Modell

2. Synchronisation bei Änderungen

?p1:Place t1:Transition

a1:Arc

pn:PetriNet

p2:Place

a2:Arc

Page 20: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

20

Bildschirmdarstellung vs. interne Struktur

p1:Place t1:Transition

a1:Arc

pn:PetriNet

p2:Place

a2:Arc

c:Canvas

c1:Circle r1:Rectangle c1:Circle

l1:Label cn1:Connection cn2:Connection l2:Label

Model

View

GUI

Action Update

Page 21: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

21

… The GEF Way (1)

p1:Place t1:Transition

a1:Arc

pn:PetriNet

p2:Place

a2:Arc

c:Canvas

c1:Circle r1:Rectangle c1:Circle

l1:Label cn1:Connection cn2:Connection l2:Label

Model

View

GUI

Update

Create/Update

Paint

Action

3 Probleme:

1. Initiales Unparsing

2. Update des Views bei Änderung am Model

3. Umsetzen von Nutzeraktionen in Modelländerungen

MVC

Page 22: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

22

View-Update: Model-View-Controller

p1:Place t1:Transition

a1:Arc

pn:PetriNet

p2:Place

a2:Arc

c:Canvas

c1:Circle r1:Rectangle c1:Circle

l1:Label cn1:Connection cn2:Connection l2:Label

Model

View

Interface

Model weiß nichts über View Notification Mechanism

View weiß nichts über Model

Controller Bringt beides zusammen…

Interface

l1:Listener l2:Listener...

setGraphicalPropertyX()

setName(„myPlace“)

firePropertyChange(…)

setText(„myPlace“)

Controllerc1:Controller c2:Controller

Page 23: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

23

p1:Place t1:Transition

a1:Arc

pn:PetriNet

p2:Place

a2:Arc

Interface

c:Canvas

c1:Circle r1:Rectangle c1:Circle

l1:Label cn1:Connection cn2:Connection l2:Label

Interface

… The GEF Way (2)

Model

View

create()setGraphicalPropertyX()

ControllerGEF

Action

ep1:EditPart ep2:EditPart...epf:EditPartFactory

c1:Command

ep1:EditPolicy

z.B. EMF

Draw2DFigures

„1:1“

1:1

create()

Page 24: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

24

EMF + GEF = GMF

GEF ist schön und gut, aber …

… immer noch viel zu kompliziert und aufwändig

… nicht model-driven (Java-Hacken)

GMF (Graphical Modeling Framework)

Führt EMF und GEF zusammen

Spezifizieren statt Programmieren

… alles viel schöner, einfacher, schneller, besser !?

Sehr spezifische Anforderungen an das Modell(1:1 Umsetzung): Da gibt‘s noch was zu tun…

Page 25: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

25

GMF Übersicht

Page 26: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

26

Graphical Definition Model

Definiert die Diagrammelemente

Figure-Gallery enthält graphische Primitive

Nodes, Connections… binden Figures an logische Diagrammelemente

Graphical Definition Model =Visual Language

Page 27: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

27

Tooling Definition

Toolbar

Menüs

Page 28: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

28

Mapping Model / Notation Model

Bildet das Domain Model auf das Graphical Definition Model ab Im Wesentlichen 1:1 Kanten aus Objekten oder Links braucht Komposition im Modell … Etwas komplexere Mappings über

OCL-Bedingungen möglich In Zukunft (vielleicht) mal flexibler

durch „echtes“ Model-Mapping mit QVT

Mapping Model + Graphical Definition Model = Notation Model

Ordnet Tools aus Tooling Definition zu

Page 29: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

29

Unparsing Summary

Page 30: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

30

1. Referenzarchitektur

Repository

Meta Model

GUI(Commands)

Generators / Interpreters

QVT

Import/ Export

GUI(Unparsing)

Page 31: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

31

setUp

Beispiel Petri Net: Uni-Party

Idea OrgaTeam

start

findPeople

Date

Bands

Room

corePlanning go

Advertising

PartyTeam

Equipment

FireDep.

DrinkingFood.

detailingprepareopen

entryparty

begincloseIt

wrapUP

teamParty

celebrate

increment

Page 32: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

32

Nebenläufigkeit: corePlanning

OrgaTeam

Date

Bands

Room

planing

DatePlan BandPlan RoomPlan

dateNegos bandNegos roomNegos

DateFixed BandFixed RoomFixed

reviewing

[failure]

[success]

[success]

[success]

Page 33: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

33

Semantikvorschlag:

ordne jeder Transition ein Java-Codefragment zu

In und Out Stellen sind Variablen (a bis e) vom Typ Stelle

Transitionen werden neu geschedult wenn sich an einerIn oder Out Stelle was ändert

Transition entscheidet ob und welche Token konsumiert und produziert werden

wenn eine Transition etwas tut, wird sie neu geschedult

es gibt spezielle Input und Output stellen

Input Stellen können von außen befüllt werden

Output Stellen können von außen geleert werden

Initial Marking ist leer

a

t

b c

d e

Page 34: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

34

1. Referenzarchitektur

Repository

Meta Model

GUI(Commands)

Generators / Interpreters

QVT

Import/ Export

GUI(Unparsing)

Page 35: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

35

Query – View – Transformation

Zentraler Teil der Model Driven Architecture (MDA) Initiative

„man will auch mal mit den schönen Modellen rechnen“

Konsistenzanalysen

Refactorings, …

Modell A in Modell B umbauen

Ausführung / Code Generierung

Page 36: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

36

elementare Konsistenzanalysen:

Stellen und Transitionen eindeutig benannt

jede Transition hat mind. eine In und eine Out Stelle

jede Stelle hat mindestens eine Transition

Page 37: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

37

inhaltliche Konsistenzanalysen:

jede Input Stelle trägt zu mind. einer Output stelle bei

jede Output Stelle wird von mind. einer Input Stelle versorgt

Page 38: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

38

Konsistenzanalysen (2cd)

Inkonsistenzen fallen meist bei Ausführung / Code-Generierung auf

Einfache Strategie:

Fehler-Management-Objekt einführen

pro Fehler: fehler Markierungsobjekt erzeugen fehlerhafte Stelle markieren an Fehler-Management-Objekt anhängen Fehlerliste anzeigen vor jeder neuen Analyse / Ausführung / Code-Generierung alte

Fehler löschen

Page 39: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

39

Refactorings: merge Transitions

fasse zwei Transitionen zu einer zusammen

name der ersten

Java Code von beiden hintereinander

In Stellen von beiden

Out Stellen von beiden

Page 40: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

40

Refactorings: merge Places

fasse zwei Stellen zu einer zusammen

Name der ersten

Transitionen von beiden

Page 41: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

41

Refactorings: split Place

ersetze Stelle durch zwei Stellen mit Transition dazwischen

die Transition liest und schreibt auf beiden neuen Stellen

Java Code kopiert alle Token vor und zurück

Page 42: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

42

1. Referenzarchitektur

Repository

Meta Model

GUI(Commands)

Generators / Interpreters

QVT

Import/ Export

GUI(Unparsing)

Page 43: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

43

Interpreter

1. Stufe:

Metamodell um Ausführungsinformation erweitern: Interpreter Objekt Token mit Zeigern auf Dokumente

Interpreter: bei Stellen als Listener für Tokenänderungen subscriben bei Tokenchange, benachbarte Transitionen in Todo-Queue Transitionen aus Todo-Queue feuern, d.h. Java Code ausführen

Page 44: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

44

Action Language

Action Language Bean-Shell www.beanshell.org

import bsh.Interpreter;

Interpreter i = new Interpreter(); // Construct an interpreter

i.set("foo", 5); // Set variables i.set("date", new Date() );

Date date = (Date)i.get("date"); // retrieve a value from a variable

// Eval a statement and get the result i.eval("bar = foo*10"); System.out.println( i.get("bar") );

// Source an external script file i.source("somefile.bsh");

Page 45: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

45

Ampel Beispiel:

red_yellow

ry

green

yellow

yggy

yr

red

Token t = red.getFirstFromTokens();if (t != null) {

// firered.removeFromTokens (t);t.getDocument.setYellow(true);red_yellow.addToTokens (t);

}

Page 46: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

46

class Ampel

Ampel

red : Booleanyellow : Booleangreen : Boolean

Page 47: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

47

1. Referenzarchitektur

Repository

Meta Model

GUI(Commands)

Generators / Interpreters

QVT

Import/ Export

GUI(Unparsing)

Page 48: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

48

Code Generierung

Mehrere Alternativen:

Visitor der das Metamodell durchläuft und Strings in eine Datei schreibt. hoher Aufwand Indentieren und so ist doof Pretty Printer nehmen nicht sehr Wartungsfreundlich

Template basierte Code Generierung hat sich durchgesetzt

Page 49: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

49

Template basierte Code Generierung

class $owner.name { public void initPetriNet () {

#foreach ( $place in $net.places)

Place $place = new Place ();$place.setName ("$place");

#end

#foreach ( $trans in $net.transitions)

Transition $trans = new Transition ();

#foreach ( $src in $trans.preplaces )

$trans.addToPreplaces ($src);

#end. . .

#end} }

Page 50: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

50

Empfohlene Template Engine

google for Velocity

Page 51: Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

51

Zusammenfassung

Repository

Meta Model

GUI(Commands)

Generators / Interpreters

QVT

Import/ Export

GUI(Unparsing)