Software Engineering 2 – Konstruktion interaktiver (CASE) Tools

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
Transaction Synchronization for XML Data in Client Server Web Applications Stefan Böttcher & Adelhard Türling Universität Paderborn.
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.
Design by Contract with JML - Teil 2
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
AUFGABE 1: Ein Wagen (dargestellt durch ein Rechteck) soll sich von links nach rechts bewegen. Tipp: Timer benutzen AUFGABE 2: Zusätzlich zu Aufgabe.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
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.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
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 Seminar Metamodellierung
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
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)
Software Engineering 2 – Konstruktion interaktiver (CASE) Tools WS 10 / 11 Vorlesung: Albert Zündorf, Software Engineering Übungen: Nina Geiger, Software.
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.
Schieferdeckarten Dach.ppt
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
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)
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Software(technik)praktikum Tutorial: Einführung in GEF
20:00.
OOD – Object Oriented Design II
Eine Einführung in die CD-ROM
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
ETS4 - Was ist neu? - Wie fange ich an? - Noch Fragen?
Automated Software Testing
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
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)
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Symmetrische Blockchiffren DES – der Data Encryption Standard
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
GMF (Graphical Modeling Framework)
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
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
Methodische Grundlagen des Software-Engineering
 Präsentation transkript:

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

Administratives Vorlesung: Montags 15-18 Uhr Raum 1342 (4SWS) Prüfung: Projektarbeit (wir basteln uns ein (Petri-Netz) Tool) SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

Überblick Referenzarchitektur Meta-Modell Repository Austauschformate Unparsing Checking Code Generierung SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

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 > 10] [out.x < 20] out.x = in.x + 1; SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

Beispiel aus http://www.daimi.au.dk/CPnets/intro/ SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

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

Sicht des Tool-Bauers 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 M3 C A S E T O O L . . . M2 UMLClass UMLAssoc M1 Student Course M0 Albert SE II Jim SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

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

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

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

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

3. Repository Anforderungen Serialisierung XML - Formate Datenbanken Coobra Speichern und Laden + Einfachheit ++ - Tool-Kopplung O Multi-User Support Versionierung -- Schema-Evolution ? Scaling SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

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

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

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: Erzeugung von Darstellungselementen für Modell Synchronisation bei Änderungen SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

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

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

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

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

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

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

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

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

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

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

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

Nebenläufigkeit: corePlanning Orga Team planing DatePlan BandPlan RoomPlan [failure] dateNegos bandNegos roomNegos DateFixed BandFixed RoomFixed Date [success] [success] reviewing Bands [success] Room SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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 einer In 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 b c t d e SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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