Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Software Engineering 2 – Konstruktion interaktiver (CASE) Tools WS 10 / 11 Vorlesung: Albert Zündorf, Software Engineering Übungen: Nina Geiger, Software."—  Präsentation transkript:

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

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

3 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

4 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)

5 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

6 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

7 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

34 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

35 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

36 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen