Objektorientierter Entwurf

Slides:



Advertisements
Ähnliche Präsentationen
Übung: Online-Belegung einer Lehrveranstaltung
Advertisements

Übung: Online-Belegung einer Lehrveranstaltung
Frank Simon, BTU Cottbus: Einführung in UML
Einführung in die Programmierung Zusammenfassung
Einführung in JavaScript II
9. Syntaxdiagramme und Backus-Naur-Form (BNF)
Kapitel 7 State-Machines/Zustandsautomaten
Lösung 6.3 Denksportaufgabe
der Universität Oldenburg
Objektorientierter Entwurf
Objektorientierte Konzepte und Notation in UML
Objektorientierte Analyse
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Ziel: externe Systemverhalten aus Anwendersicht
Sequenzdiagramm.
Objektorientierte Analyse (OOA) Inhaltsübersicht
Lösungen
Objektorientierte Konzepte
Objektorientierte Konzepte
CSCW – FSS 2007 ©Jürgen Vogel Zustandsautomat CSM Frei Verfügbar Blockiert Wartet Anfrage Æ Politik = mutually-exclusive Freigabe Æ Anzahl Holder=1 Anfrage.
DVG Ablaufsteuerung
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
Einführung in die Programmierung Datensammlung
Einführung in die Programmierung Anweisungen und Datentypen
Einführung MySQL mit PHP
3. Vorlesung: UML Use Case Diagramme
12. Vorlesung: Aktivitätsdiagramme
10. Vorlesung: Dynamische Konzepte
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Informatik 1 Übung 2.
INHALT INHALT Inhalt Delphi IDE ObjectPascal Hello World! Delphi IDE
Sequenzdiagramme (1) Festlegen des Inter-Objekt-Verhaltens (Interaktionsstruktur, Verantwortlichkeiten) Sequenzdiagramm ist temporal orientiert zeigt.
Sequenzdiagramm Von Michael Möhring.
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Einführung in die Programmierung
Informatik 1 Übung 4.
UML-Kurzüberblick Peter Brusten.
UML Modellierung des Verhaltens von Klassen und Objekten
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Vom Geschäftsprozess zum Quellcode
Arduino Kurs Abend 2.
Zustandsübergangsdiagramme (1)
EPROG Tutorium #3 Philipp Effenberger
Einführung in PHP.
Einführung in PHP 5.
Vorlesung 3. if else Anweisung if (Ausdruck) Anweisung1 else Anweisung2 Ausdruck hat einen von 0 verschiedenen Wert, so wird Anweisung 1 ausgeführt. Bei.
PHP: Operatoren und Kontrollstrukturen
Hochschule Fulda – FB ET Sommersemester 2014
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Unified Modeling Language UML
Software Engineering Struktogramme
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Informatik Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholugnsanweisungen 3. Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholungsanweisungen.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
MATLAB Control Statements.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Name des Vortragenden ‌ Klasse ‌‌‌ Ort / tt.mm.jjjj Anwendungsfalldiagramm.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Einführung DI Harald Sander.
Struktogramme.
Unterschiedliche Kontrollstrukturen
Unterschiedliche Arten von Kontrollstrukturen
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Objektorientierter Entwurf Dynamische Konzepte im OOD: Szenario Zustandsautomat

Szenario Wiederholung: Was ist ein Szenario? 1 Anwendungsfall= Bündel von Szenarios 1 Szenario= Beschreibung eines Anwendungsfall- Objekts Zeigt eine Sequenz von Verarbeitungsschritten, die unter bestimmten Bedingungen auszuführen sind Beschreibt eine Folge von Ereignissen und Systemreaktionen, die bei der Ausführung eines System(-teil)s auftreten

Szenario Beispiele: Use Case: entleihe Medium Szenario 1: Name: entleihe Medium (Standardfall Ausgabe) Bedingungen: Medium verfügbar Medium nicht vorgemerkt Entleiherausweis gültig Entleiherkonto ausgeglichen Ergebnis: Medium wird ausgegeben Szenario 2: Name: entleihe Medium (Medium vorgemerkt) Medium ist verfügbar Medium wurde vorgemerkt Medium wird ausgegeben, wenn Entleiher= Vormerker Wenn Entleiher!=Vormerker, Vormerkung vorschlagen

Sequenzdiagramm: Erweiterungen für den Entwurf (nach UML 2.0) 1. Synchrone und asynchrone Nachricht Synchrone Nachricht: Der Sender der Nachricht wartet, bis der Empfänger die Verarbeitung komplett durchgeführt hat. Erst wenn der Empfänger eine Antwortnachricht zurückschickt, setzt der Sender die Verarbeitung fort. UML: Pfeil mit gefüllter Pfeilspitze Rückantwort: gestrichelter Pfeil mit offener Spitze Asynchrone Nachricht: Der Sender der Nachricht fährt mit seiner eigenen Verarbeitung fort, ohne auf die Beendigung der Verarbeitung des Empfängers zu warten. Es entsteht parallele (nebenläufige) Verarbeitung. UML: Pfeil mit offener Spitze

Sequenzdiagramm 2. Erzeugen und Löschen von Kommunikationspartnern Nach UML 2.0 wird ein neuer Kommunikationspartner im Sequenzdiagramm über einen gestrichelten Pfeil mit offener Spitze erzeugt, das Löschen des Kommunikationspartner wird durch ein großes X am Ende des Aktivitätsbalkens grafisch dargestellt.

Sequenzdiagramm 3. Beschriftung und Parameter von Nachrichten - Angabe von Klammern, wenn Daten übergeben werden

Sequenzdiagramm 4. Lost/ Found message

Sequenzdiagramm 5. Kombinierte Fragmente =Partitionierung des Sequenzdiagramms; mit Hilfe von Fragmenten können verschiedene Interaktionen deutlicher dargestellt werden: opt: optionale Interaktion (if-then) alt: alternative Abläufe (if-then-else, switch)

Sequenzdiagramm loop: Schleife (for, while-do, do-while) loop (min,max): min und max geben die Mindest-/ Höchstzahl der Wiederholungen an loop (min,*): unendlich viele Wdh. loop (min): Anzahl der Mindestwiederholungen loop: Schleife wird 0 bis unendlich mal ausgeführt  Angabe berechenbarer Ausdrücke für min und max: z.B.: loop (i=1,i<100)  optional: Angabe einer Bedingung

Sequenzdiagramm break: Ausnahmebehandlung (exception)

Sequenzdiagramm 6. Interaktionsreferenz =Referenz auf anderes Interaktionsdiagramm, optional mit Parameterübergabe

Sequenzdiagramm 7. Schachtelung

Sequenzdiagramm Notation Sequenzdiagramm: Überblick

Kommunikationsdiagramm Überblick: Notation Kommunikationsdiagramm

Übung 1 Ziel: Sequenzdiagramm mit Erweiterungen erstellen Gegeben ist das folgende Java-Programm. Wir gehen hier davon aus, dass die Operation doMore() von einem Objekt mit der Bezeichnung einObjekt aktiviert wird. Zuerst werden die beiden Objekte bzw. Kommunikationspartner b:ClassB und c:ClassC erzeugt. In der Schleife nimmt die Laufvariable j nacheinander die Werte l bis 5 an und ruft bei jedem Durchgang die Operation a.doLess(j) auf, die wiederum die Operation b.work(j) aktiviert. Anschließend wird die Operation calculateP(data) auf das Objekt von A angewendet. In Abhängigkeit des errechneten Werts von p werden entweder die Operationen b.doSomethingElse() und b.work(p) oder die Operation c.doSomethingElse() aufgerufen. class ClassB { public void doSomething { ... } public void work (int w) { ... } } class ClassC { public void doSomethingElse() { ... } class ClassA { private ClassB b; private ClassC c; public void doLess(int param) { b.work(param);} public int calculateP(int param) { int p = 2 * param; return p;} public void doMore(int data) { b = new ClassB();c = new ClassC(); for (int j = 1; j <= 5; j++) doLess (j); int p = caIculateP (data); if (p <1){ b.doSomething();b.work(p);} else c.doSomethingElse(); }

Zustandsautomat Zustandsautomat= Zustände+ Übergänge (Transitionen) Zustand: Zeitspanne, in der ein Objekt auf ein Ereignis wartet (andauernde Aktivität) Ereignis: tritt zu einem bestimmten Zeitpunkt auf und hat (konzeptionell) keine Dauer; kann Aktion innerhalb eines Zustands auslösen (durch Operationen realisiert) Transition: Durch ein Ereignis ausgelöster Zustandswechsel (Aktion) Ein Objekt kann sukzessive mehrere Zustände durchlaufen Momentaner Zustand und eintretendes Ereignis konstituieren den Folgezustand

Zustandsdiagramm: Erweiterungen für das OOD Pseudozustände Dienen zur Modellierung von Ablauflogik innerhalb eines Zustandsdiagramms 1.1 Anfangszustand Startpunkt für die Ausführung des Zustandautomaten Genau eine Transition führt in den ersten „echten“ Zustand Der Übergang vom Start- zum Folgezustand wird i.d.R. nicht mit einem Ereignis benannt inBetrieb

Zustandsdiagramm 1.2 Entscheidungszustand Modellierung von Alternativen, abhängig vom Ergebnis der vorherigen Aktivität Dynamic conditional branch: die jeweilige Alternative wird aktuell berechnet Notationsalternativen (UML 2.0):

Zustandsdiagramm 1.3 Junction Ermöglicht die Verknüpfung von Transitionen ohne dazwischen liegenden Zustand Eine junction muss mindestens eine eingehende und eine ausgehende Transition besitzen Static conditional branch: die verknüpfte Transition ist nicht abhängig von einer vorherigen Aktivität

Zustandsdiagramm 1.4 Terminator (terminate pseudo state) Beendigung der Verarbeitung des Zustandsautomaten Zeigt an, dass Objekte dynamisch gelöscht werden; im Gegensatz zum „normalen“ Ende des Zustandsautomaten (Modellierung mittels Bullauge, in UML 2.0 ein echter Zustand) wird also angezeigt, dass explizit ein Objekt gelöscht wird:

Zustandsdiagramm 1.5 Historie Markierung, durch die angezeigt wird, dass ein Zustandsautomat zum zuletzt eingenommenen Zustand zurückkehrt Flache/ tiefe Historie: besteht ein Zustandsdiagramm aus mehreren zusammengesetzten Unterzuständen in verschiedenen Ebenen, so wird durch Verwendung des tiefen Historienindikators angezeigt, dass sich der Zustandsautomat auch solche tiefer liegenden Vorzustände merkt bzw. dahin zurückkehrt.

Zustandsdiagramm 1.6 Entry- / Exit point, Unterzustandsautomat Eingangs-/ Ausgangspunkt kennzeichnen den Übergang in einen Teilzustandsautomaten Verwendung: wenn bessere Übersichtlichkeit erreicht wird; bei Modellierung von Unterzuständen in separaten Diagrammen Unterzustandsautomat: verwenden, um häufig wiederkehrendes Verhalten zu spezifizieren

Zustandsdiagramm Überblick: Notation Zustandsdiagramm

Zustandsmuster (state pattern) Operationen führen in Abhängigkeit vom jeweiligen Zustand Teilaufgaben aus

Übung 2 Ziel: Zustandsdiagramm modellieren Eine Tresortür ist zu öffnen. Zu Beginn ist die Tür im Zustand verriegelt. Ein eingegebener Code wird geprüft. Falls er korrekt ist, wird die Tür entriegelt und kann dann innerhalb von 3 Sekunden geöffnet werden. Geschieht dies nicht, geht die Tür nach dieser Zeit in den Zustand verriegelt über. Ist der Code falsch, dann hat der Benutzer noch zwei weitere Versuche. Bei der dritten falschen Code-Eingabe geht die Tresortür für 10 Minuten in den Zustand blockiert über. Die Verarbeitung endet, wenn die Tür erfolgreich geöffnet wurde oder die Blockierung beendet ist.