Software Engineering 2 – Konstruktion interaktiver (CASE) Tools WS 10 / 11 Vorlesung: Albert Zündorf, Software Engineering Übungen: Nina Geiger, Software.

Slides:



Advertisements
Ähnliche Präsentationen
Software Engineering 2 Übung – Konstruktion interaktiver (CASE) Tools SS 2007 Leif Geiger, Carsten Reckord, Software Engineering.
Advertisements

Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Einführung in die Informatik: Programmierung und Software-Entwicklung
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2006 Albert Zündorf, Software Engineering.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 GUI Konstruktion: 1. Entwurf mit Papier und Bleistift / Post Ist 2. Eventuell.
4. Design Gliederung: Einführung Anforderungsdefinition Analyse Design
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools SS 2007 Albert Zündorf, Software Engineering.
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zündorf.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 Model View Controller Pattern.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools WS 09 / 10 Vorlesung: Albert Zündorf, Software Engineering Übungen: Nina Geiger, Software.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools WS 10 / 11 Vorlesung: Albert Zündorf, Software Engineering Übungen: Nina Geiger, Software.
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools WS 13 / 14 Vorlesung: Albert Zündorf, Software Engineering Übungen: Andreas Scharf, Software.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4.
Seminar SE: MDE 1 FG Software Engineering Software Engineering Seminar Model Driven Engineering Seminar des Fachgebiet Software Engineering Ruben Jubeh,
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools WS 10 / 11 Vorlesung: Albert Zündorf, Software Engineering Übungen: Nina Geiger, Software.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
20:00.
Zusatzfolien zu B-Bäumen
In der Schule.
OOD – Object Oriented Design II
Eine Einführung in die CD-ROM
ETS4 - Was ist neu? - Wie fange ich an? - Noch Fragen?
für Weihnachten oder als Tischdekoration für das ganze Jahr
1 Ein kurzer Sprung in die tiefe Vergangenheit der Erde.
Gameplay Systems I Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung SS 2012 Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz.
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
PROCAM Score Alter (Jahre)
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Symmetrische Blockchiffren DES – der Data Encryption Standard
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Folie Einzelauswertung der Gemeindedaten
J-Team: Gymnasium Ulricianum Aurich und MTV Aurich Ein Projekt im Rahmen von UlricianumBewegt.de Euro haben wir schon…  8000 mal habt ihr bereits.
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
Sehen, Hören, Schmecken: wenn uns unsere Sinne täuschen
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools
 Präsentation transkript:

Software Engineering 2 – Konstruktion interaktiver (CASE) Tools WS 10 / 11 Vorlesung: Albert Zündorf, Software Engineering Übungen: Nina Geiger, Software Engineering

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 2 Administratives m Vorlesung: Montags Uhr Raum 1340 (4SWS) m Prüfung: Projektarbeit (wir basteln uns ein SmartIO Tool)

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

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)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 5 2. Meta-modell m abstrakter Syntaxgraph (ASG) m logische Datenstruktur hinter der Darstellung am Bildschirm m speichert Editoreingaben m beschrieben durch Klassendiagramm File Edit Tools X

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 6 2. Meta-modell m abstrakter Syntaxgraph (ASG) m logische Datenstruktur hinter der Darstellung am Bildschirm m speichert Editoreingaben m beschrieben durch Klassendiagramm File Edit Tools X

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 7 2. Meta-modell m abstrakter Syntaxgraph (ASG) m logische Datenstruktur hinter der Darstellung am Bildschirm m speichert Editoreingaben m beschrieben durch Klassendiagramm File Edit Tools X

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 8 2. Meta-modell

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

Time Levels SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 10 runtime development time tool development time library development time

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Referenzarchitektur Repository Meta Model GUI (Commands) Generators / Interpreters QVT Import/ Export GUI (Unparsing)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Unparsing m Metamodell: interne Speicherung z.B. für Code Generierung m GUI: Darstellung am Bildschirm z.B. mit GEF (oder Swing) m Unparsing: Erzeugung der Darstellung aus dem Metamodell m 2 Teilprobleme: 1. Erzeugung von Darstellungselementen für Modell 2. Synchronisation bei Änderungen ?

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 13 Bildschirmdarstellung vs. interne Struktur Model View GUI Action Update

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 14 … The GMF Way (1) Model View GUI Update Create/Update Paint Action m 3 Probleme: 1. Initiales Unparsing 2. Update des Views bei Änderung am Model 3. Umsetzen von Nutzeraktionen in Modelländerungen MVC

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 15 View-Update: Model-View-Controller Model View Interface m Model l weiß nichts über View l Notification Mechanism m View l weiß nichts über Model m Controller l Bringt beides zusammen… Interface setGraphicalPropertyX() … setName(myPlace) firePropertyChange(…) setText(myPlace) Controller c1:Controller c2:Controller

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 16 Interface … The GMF Way (2) Model View create() setGraphicalPropertyX() … Controller GEF Action z.B. EMF Draw2D Figures 1:1 create()

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 17 EMF + GEF = GMF m GEF ist schön und gut, aber … m … immer noch viel zu kompliziert und aufwändig m … nicht model-driven (Java-Hacken) GMF (Graphical Modeling Framework) m Führt EMF und GEF zusammen m Spezifizieren statt Programmieren m … alles viel schöner, einfacher, schneller, besser !? m Sehr spezifische Anforderungen an das Modell (1:1 Umsetzung): Da gibts noch was zu tun…

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 18 GMF Übersicht

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 19 Graphical Definition Model m Definiert die Diagrammelemente m Figure-Gallery enthält graphische Primitive m Nodes, Connections… binden Figures an logische Diagrammelemente Graphical Definition Model = Visual Language

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 20 Tooling Definition m Toolbar m Menüs m …

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 21 Mapping Model / Notation Model m Bildet das Domain Model auf das Graphical Definition Model ab l Im Wesentlichen 1:1 l Kanten aus Objekten oder Links l braucht Komposition im Modell … l Etwas komplexere Mappings über OCL-Bedingungen möglich l In Zukunft (vielleicht) mal flexibler durch echtes Model-Mapping mit QVT l Mapping Model + Graphical Definition Model = Notation Model m Ordnet Tools aus Tooling Definition zu

Eugenia m GMF ist immer noch zu kompliziert m Eugenia: l Annotation des Klassendiagramm l Generierung der GMF Konfigurationen Siehe Übung SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 22

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 23 Unparsing Summary m

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Repository Man will ja auch mal abspeichern und wieder laden: Binäre File-Formate / Java Serialisierung m class C implements Serializable m bestimmen aller Objekte die gespeichert werden sollen ( Composite Struktur) m transiente Attribute werden ausgeklammert AnforderungenSerialisierung Speichern und Laden+ Einfachheit++ Tool-KopplungO Multi-User Support- Versionierung-- Schema-Evolution? ScalingO

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Repository XML-Formate m generische Lade-/Speicher Routinen per Java Reflection m bestimmen aller Objekte die gespeichert werden sollen ( Composite Struktur) m JDom / Xerces Basistechnologie (beherschbar) AnforderungenXML - Formate Speichern und Laden+ Einfachheit+ Tool-Kopplung+ Multi-User Support- Versionierung-- Schema-Evolution+ Scaling-

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Repository Relationale Datenbanken m Objekte und Beziehungen werden als Tupel in Datenbanktabellen gespeichert m Zugriff per ODBC m Middleware (z.B. JPA) m Multi-User Betrieb durch Datenbank Sperrkonzepte und Transaktionen l pessimistische Sperren l Caching schwierig AnforderungenDatenbanken Speichern und Laden+ Einfachheit- Tool-Kopplung+ Multi-User Support+ Versionierung- Schema-Evolution+ Scaling++

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Repository Coobra2: COmmon Object Replication frAmework m Basismechanismus von Fujaba m Protokollierung aller Attributzugriffe als Deltas per Listener m Undo / Redo m Deltas Checkin / Checkout in Repository m optimistisches Locking / Merging m Integriert in Fujaba Code Generierung m manuelle Implementierung möglich AnforderungenCoobra Speichern und Laden+ Einfachheit++ Tool-Kopplung+ Multi-User Support++ Versionierung++ Schema-Evolution+ Scaling-

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Repository AnforderungenSerialisierungXML - Formate DatenbankenCoobra Speichern und Laden++++ Einfachheit+++- Tool-KopplungO+++ Multi-User Support--+++ Versionierung Schema-Evolution?+++ ScalingO-++-

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Referenzarchitektur Repository Meta Model GUI (Commands) Generators / Interpreters QVT Import/ Export GUI (Unparsing)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Commands m Aktionen hinter Menüpunkten und Buttons m Viele Buttons/Menüpunkte für ein Kommando denkbar m Undo/Redo Einheiten m API Operationen m Macros

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Commands m Normalerweise ein Objekt/eine Klasse pro Command m Aufwändige Protokolle für's Undo/Redo m API getrennt m Bei uns Undo/Redo per Coobra

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Commands Aufgabe m Klasse EngineeringCEditior bauen m eclipse GMF plugin m erwartete Operationen / GUI Elemente: l Load / Save l Undo / Redo l Create / Delete Block l Create / Delete Wire l refactorSubCircuitsToBlockDecl l startDobs l Unparsing später, wir schauen uns das im Dobs an

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Referenzarchitektur Repository Meta Model GUI (Commands) Generators / Interpreters QVT Import/ Export GUI (Unparsing)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 34 Simulation store b 9 b Sum1to10 gen start stop i store a 1 a compute x sum sum = x + y y store sum 0 sum b

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 35 Simulation store b 9 b Sum1to10 gen start stop i store a 1 a compute x sum sum = x + y y store sum 0 sum b

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 36 Simulation store b 9 b Sum1to10 gen start stop i store a 1 a compute x sum sum = x + y y store sum 0 sum b

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 37 Simulation store b 9 b Sum1to10 gen start stop i store a 1 a compute x sum sum = x + y y store sum 0 sum b

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 38 Simulation, Text parts:

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

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

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Referenzarchitektur Repository Meta Model GUI (Commands) Generators / Interpreters QVT Import/ Export GUI (Unparsing)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 42 setUp Beispiel Petri Net: Uni-Party Idea Orga Team start findPeople Date Bands Room corePlanninggo Advertising PartyTeam Equipment FireDep. DrinkingFood. detailing prepareopen entryparty begin closeIt wrapUP teamParty celebrate increment

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 43 Nebenläufigkeit: corePlanning Orga Team Date Bands Room planing DatePlanBandPlanRoomPlan dateNegosbandNegosroomNegos DateFixedBandFixedRoomFixed reviewing [failure] [success]

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 44 Semantikvorschlag: m ordne jeder Transition ein Java-Codefragment zu m In und Out Stellen sind Variablen (a bis e) vom Typ Stelle m Transitionen werden neu geschedult wenn sich an einer In oder Out Stelle was ändert m Transition entscheidet ob und welche Token konsumiert und produziert werden m wenn eine Transition etwas tut, wird sie neu geschedult m es gibt spezielle Input und Output stellen m Input Stellen können von außen befüllt werden m Output Stellen können von außen geleert werden m Initial Marking ist leer a t bc de

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Referenzarchitektur Repository Meta Model GUI (Commands) Generators / Interpreters QVT Import/ Export GUI (Unparsing)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 46 Query – View – Transformation m Zentraler Teil der Model Driven Architecture (MDA) Initiative m man will auch mal mit den schönen Modellen rechnen m Konsistenzanalysen m Refactorings, … m Modell A in Modell B umbauen m Ausführung / Code Generierung

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 47 elementare Konsistenzanalysen: m Stellen und Transitionen eindeutig benannt m jede Transition hat mind. eine In und eine Out Stelle m jede Stelle hat mindestens eine Transition

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 48 inhaltliche Konsistenzanalysen: m jede Input Stelle trägt zu mind. einer Output stelle bei m jede Output Stelle wird von mind. einer Input Stelle versorgt

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 49 Konsistenzanalysen (2cd) m Inkonsistenzen fallen meist bei Ausführung / Code-Generierung auf Einfache Strategie: m Fehler-Management-Objekt einführen m pro Fehler: l fehler Markierungsobjekt erzeugen l fehlerhafte Stelle markieren l an Fehler-Management-Objekt anhängen l Fehlerliste anzeigen l vor jeder neuen Analyse / Ausführung / Code-Generierung alte Fehler löschen

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 50 Refactorings: merge Transitions m fasse zwei Transitionen zu einer zusammen m name der ersten m Java Code von beiden hintereinander m In Stellen von beiden m Out Stellen von beiden

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 51 Refactorings: merge Places m fasse zwei Stellen zu einer zusammen m Name der ersten m Transitionen von beiden

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 52 Refactorings: split Place m ersetze Stelle durch zwei Stellen mit Transition dazwischen m die Transition liest und schreibt auf beiden neuen Stellen m Java Code kopiert alle Token vor und zurück

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Referenzarchitektur Repository Meta Model GUI (Commands) Generators / Interpreters QVT Import/ Export GUI (Unparsing)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 54 Interpreter 1. Stufe: m Metamodell um Ausführungsinformation erweitern: l Interpreter Objekt l Token mit Zeigern auf Dokumente m Interpreter: l bei Stellen als Listener für Tokenänderungen subscriben l bei Tokenchange, benachbarte Transitionen in Todo-Queue l Transitionen aus Todo-Queue feuern, d.h. Java Code ausführen

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 55 Action Language m Action Language Bean-Shell 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");

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 56 Ampel Beispiel: red_ yellow ry green yellow yg gy yr red Token t = red.getFirstFromTokens(); if (t != null) { // fire red.removeFromTokens (t); t.getDocument.setYellow(true); red_yellow.addToTokens (t); }

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 57 class Ampel Ampel red : Boolean yellow : Boolean green : Boolean

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel Referenzarchitektur Repository Meta Model GUI (Commands) Generators / Interpreters QVT Import/ Export GUI (Unparsing)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 59 Code Generierung Mehrere Alternativen: m Visitor der das Metamodell durchläuft und Strings in eine Datei schreibt. l hoher Aufwand l Indentieren und so ist doof Pretty Printer nehmen l nicht sehr Wartungsfreundlich m Template basierte Code Generierung l hat sich durchgesetzt

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 60 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 }}

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 61 Empfohlene Template Engine m google for Velocity

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 62 Zusammenfassung Repository Meta Model GUI (Commands) Generators / Interpreters QVT Import/ Export GUI (Unparsing)

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 63 Diplomarbeiten am Fachgebiet m Johannes und Sys: Spieleprogrammierung m Ruben: l Lego Mindstorms / Chumbee l Ubiquitäre Systeme l Fujaba – UML Lab Kopplung m Nina: l GWT GUI Builder l Web Apps m Jörn: l Natural Text To Object / Android Apps l Fujaba – UML Lab Kopplung m Andreas: l Model Transformation in konkreter Syntax / Model Refactorings l Fujaba – UML Lab Kopplung m Albert: l Fujaba für verteilte Systeme l Verifikation & Model Checking

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 64 Tool Demo Anforderungen m Graphischer Editor m Speichern und Laden m Undo / Redo m Interpreter m Code Generator m Sprachfeatures: l BlockDecl l BlockAppl l Comp l If / While l Gen l Rekursion?