1 / 66

Software Engineering 2 – Konstruktion interaktiver (CASE) Tools

WS 13 / 14 Vorlesung: Albert Zündorf, Software Engineering Übungen: Andreas Scharf, Software Engineering. Software Engineering 2 – Konstruktion interaktiver (CASE) Tools. Administratives. Vorlesung: Montags 15-18 Uhr Raum 1340 (4 SWS)

peta
Download Presentation

Software Engineering 2 – Konstruktion interaktiver (CASE) Tools

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WS 13 / 14 Vorlesung: Albert Zündorf, Software Engineering Übungen: Andreas Scharf, Software Engineering Software Engineering 2 – Konstruktion interaktiver (CASE) Tools

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

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

  4. Repository Meta Model GUI(Commands) Generators / Interpreters QVT Import/ Export GUI(Unparsing) 1. Referenzarchitektur 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 X File Edit Tools SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

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

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

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

  12. The Object Diagram Model WS 12/13 Software Engineering 2 Albert Zündorf, University of Kassel

  13. The Object Diagram Model WS 12/13 Software Engineering 2 Albert Zündorf, University of Kassel

  14. 3. 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

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

  16. … The GMF Way (1) Model 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

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

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

  19. 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

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

  21. 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

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

  23. 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

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

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

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

  27. 4. Commands • Operationen auf der logischen Objektstruktur (EMF Modell) • Konsistenzanalysen • Refactorings • komplexe Editor Kommandos • Code Generierung • Aktionen hinter Menüpunkten und Buttons • Viele Buttons/Menüpunkte für ein Kommando denkbar • Undo/Redo Einheiten SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

  28. 4. Commands Aufgabe • Konsistenzanalysen: • Name ist Java Identifier • Genau ein Start • jede Aktion von Start aus erreichbar • Refactorings: • Start to Task • Task to Start • Split Task to Task – Flow – Task • Split Fow to Flow – Task – Flow • Join Task – Flow – Task to Task • Join Flow – Task – Flow to Flow SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

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

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

  32. 3. Repository XML-Formate • generische Lade-/Speicher Routinen per Java Reflection • bestimmen aller Objekte die gespeichert werden sollen( Composite Struktur) • JDom / Xerces Basistechnologie(beherschbar) SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

  33. 3. Repository Relationale Datenbanken • Objekte und Beziehungen werden als Tupel in Datenbanktabellen gespeichert • Zugriff per ODBC • Middleware (z.B. JPA) • Multi-User Betrieb durch Datenbank Sperrkonzepte und Transaktionen • pessimistische Sperren • Caching schwierig SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

  35. 3. Repository SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

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

  37. Simulation / Interpreter SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

  38. Simulation 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. Repository Meta Model GUI(Commands) Generators / Interpreters QVT Import/ Export GUI(Unparsing) 1. Referenzarchitektur SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel

  41. Beispiel Petri Net: Uni-Party Idea OrgaTeam Date Bands corePlanning go start 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

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

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

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

  45. 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

  46. 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

  47. 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

  48. 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

  49. 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

  50. 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

More Related