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

Slides:



Advertisements
Ähnliche Präsentationen
M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
Advertisements

Software Engineering 2 Übung – Konstruktion interaktiver (CASE) Tools SS 2007 Leif Geiger, Carsten Reckord, Software Engineering.
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
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Telefonnummer.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
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.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
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.
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 2 – Konstruktion interaktiver (CASE) Tools
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
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
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.
Die Geschichte von Rudi
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.
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.
Template v5 October 12, Copyright © Infor. All Rights Reserved.
PROCAM Score Alter (Jahre)
Das IT - Informationssystem
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.
Imperfekt Wie sagt man das mit Imperfekt
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
SiLeBAT Sicherstellung der Futter- und Lebensmittelwarenkette bei bio- und agro-terroristischen (BAT)-Schadenslagen.
Bildergalerie PRESEASON CAMP Juni 2014 Romanshorn Get ready for the Season!
Numbers Greetings and Good-byes All about Me Verbs and Pronouns
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
Das IT - Informationssystem
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

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 2 Administratives m Vorlesung: Montags Uhr Raum 1342 (4SWS) m Prüfung: Projektarbeit (wir basteln uns ein (Petri-Netz) 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 out = f (in); [out.x < 20] [out.x > 10] out.x = in.x + 1;

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

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

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 8 Meta Meta Meta m M0: Objekte / Instanzen zur Laufzeit (Jim, GET-Vorlesung) m M1: Modell Diagramme die der Benuzter eingibt (Student, Vorlesung,...) (oft UML) m M2: Meta-Modell: Klassendiagramm, dass Benuterzdiagramm beschreibt / Tool Ebene (mit UML oder MOF) m M3: Wer beschreibt das Meta-Modell? Meta-Meta Modell (meist MOF, MOF ist selbstbeschreibend M n+1 = M n ) aus Sicht des Tool-Bauers ist M3 Quatsch M3 braucht man nur um sich einen Knoten ins Hirn zu machen

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 9 Meta Object Facility – MOF m yet another meta model for class diagrams m UML notation + klare Semantik + standard Implementierung (z.B. JMI Repository) + standard Austauschformate (XMI) m Akademische Initiative m Open source m oft als Austauschformat zwischen Tools benutzt

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. Hibernate) 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 Coobra: 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 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 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 Commands Aufgabe m Klasse StatechartEditor bauen m main Methode baut eine Instanz m initGUI Methode baut Hauptfenster aus FWT Elementen m erwartete Operationen / GUI Elemente: l Load / Save l Undo / Redo l Create / Delete State l Create / Delete Transition l startDobs l Unparsing später, wir schauen uns das im Dobs an

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 Swing Elementen m Unparsing: Erzeugung der Darstellung aus dem Metamodell

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

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 20 Aufbau eines Beispiels

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 21 Erzeugen der Darstellung

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 22 Erzeugen der Darstellung

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 23 Erzeugen der Darstellung

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

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

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 26 Some Classes you may need...

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 27 Unparsing Summary m Suuuper aufwändig (da sollte mal jemand etwas tun...) und die Model-Change-Listener fehlen noch m Eclipse GEF: etwas komfortabler aber viel Einarbeitung m Fujaba FSA: beta aber generische Listener m FWT: pre-alpha m aktuelles Projekt: Trimos

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 28 Vorgehensweise 1. JUnit Test zur Erzeugung eines einfachen Statecharts 2. Fenster von letzter Woche öffnen 3. createUI Methode für States schreiben 4. Attribut-Updater schreiben 5. MouseListener schreiben 6. Model Change Listener schreiben 7. createUI Methode für States um Listener erweitern 8. JConnector von der Vorlesungsseite holen 9. createUI Methode für Transitions schreiben 10. Model Change Listener schreiben 11. JConnector um Pfeilspitze und JTextField erweitern 12. createUI Methode für Transitions um Listener erweitern 13. mich beeindruckt sehen

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 30 Interpreter 1. Stufe: m Metamodell um Ausführungsinformation erweitern: l Interpreter Objekt l Zeiger auf aktuellen Zustand l handleEvent-Methode: l Transition suchen l Guards prüfen l Zustand wechseln l Aktionen ausführen

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 31 Probleme m Statechart-Semantiken sucht euch eine aus

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 32 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 33 Asynchrone Nachrichten / mehrere Statecharts m state DialTone, dial (1) Event, call (1) geht an uns selbst, was passiert?

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 34 Asynchrone Nachrichten / mehrere Statecharts (cont.) Synchrone Eventverarbeitung: m Zustand bei re-entrant Transition-Aktionen oder Entry / Do Aktionen unklar m Zustand wird eventuell verlassen bevor Do Aktion ausführbar m... Asynchrone Eventverarbeitung: m Events werden in Queue abgelegt m Queue wird nebenläufig abgearbeitet

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 35 Asynchrone Nachrichten / mehrere Statecharts (cont. 2) m Zusätzliches Scheduler Objekt / Klasse m Scheduler hat viele Statechart-Interpreter m Jeder Statechart-Interpreter hat Event-Queue m Jeder Statechart-Interpreter hat event(e) Methode, die Events in die Queue ablegen m Scheduler ruft reihum die handleEvent Methode auf den Interpretern m Actions sollten Events nicht Broadcasten sondern gezielt ausliefern: statechart1.event("a")

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 37 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 38 Template basierte Code Generierung class $state.name extends $state.super.name { #foreach ( $trans in $state.exitTransitions) public void $trans.name () { // change to target state owner.setCurrentState ($trans.targetState); owner.getCurrent ().doAction(); }

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

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 40 Implementierung von Statecharts (schwierig) m switch case: public handleEvent(int e) { switch (currentState) { case ROT: switch (e) { case NEXT: currentState = ROTGELB; break;... } break; case ROTGELB:... rot grün gelbrotgelb next

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 41 Implementierung von Statecharts (leicht) m State Design Pattern: class Rot extends BasicState { public void next () { owner.setState(new RotGelb ()); owner.getState().doAction(); } } rot grün gelbrotgelb next

SS 2007 Software Engineering 2 Albert Zündorf, University of Kassel 42 Implementierung von Statecharts (leicht) rot grün gelbrotgelb next BaseState next() Rot next() RotGelb next() Owner current owner

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 44 Query – View – Transformation m Zentraler Teil der Model Driven Architecture (MDA) Initiative m man will auch mal mit den schönen Modellen rechnen m Ausführung / Code Generierung m Modell A in Modell B umbauen m Konsistenzanalysen m Refactorings, …

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

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

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

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

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