10. Vorlesung: Dynamische Konzepte

Slides:



Advertisements
Ähnliche Präsentationen
IO - Hardwarestruktur, allgemein
Advertisements

Frame-Logik Eine Einführung Andreas Glausch.
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Assoziationen Verbindungen zwischen Objekten einer Klasse
Objektorientierter Entwurf
Objektorientierte Konzepte und Notation in UML
Objektorientierte Analyse
Checklisten dynamisches Modell
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Ziel: externe Systemverhalten aus Anwendersicht
Sequenzdiagramm.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Objektorientierung
Abhängigkeitsbeziehung
Polymorphie (Vielgestaltigkeit)
Lösungen
Objektorientierte Konzepte
Objektorientierte Konzepte
Sebastian Grahn Sebastian Kühn
Vererbung Spezialisierung von Klassen in JAVA möglich durch
DVG Klassen und Objekte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
UML Sequenzdiagramme Impuls Referat Was ist die Motivation?
Unified Modeling Language Einführung zu UML Was ist „UML“?
Visualisierung objektrelationaler Datenbanken
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
2. Vorlesung Ansätze der Systemanalyse: Strukturierte Analyse (SA)
7. Vorlesung Vererbung Einfach- und Mehrfachvererbung Polymorphismus
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
4. Vorlesung: Use Case Diagramme Fallbeispiel
9. Vorlesung: Fortsetzung Klassendiagramm für Fallbeispiel
8. Vorlesung: Klassendiagramm für Fallbeispiel
3. Vorlesung: UML Use Case Diagramme
6. Vorlesung: Statische Konzepte
12. Vorlesung: Aktivitätsdiagramme
5. Vorlesung: Grundkonzepte Objekt-Orientierung
Sequenzdiagramme (1) Festlegen des Inter-Objekt-Verhaltens (Interaktionsstruktur, Verantwortlichkeiten) Sequenzdiagramm ist temporal orientiert zeigt.
Sequenzdiagramm Von Michael Möhring.
Unified Modeling Language Repetition / Einführung zu UML
Entwurfs- und Implementationsdiagramme
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Tipps für den Seminarvortrag Johann(a) Musterfrau.
UML-Kurzüberblick Peter Brusten.
Unified Modeling Language
UML Modellierung des Verhaltens von Klassen und Objekten
Vom Geschäftsprozess zum Quellcode
Zustandsübergangsdiagramme (1)
Objectives Verstehen was unterDelegate verstanden wird
1 Ausgangslage Vorgehensweise: Informell, pragmatisch, stark graphisch orientiert. Systemanalytischer Ausgangspunkt: Klassischer Systembegriff als Ansammlung.
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Unified Modeling Language UML
Anwendungsfalldiagramm
Abbildung UML-Schema  Rel. Schema (1)
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
Einführung in die Programmierung mit Java
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Sichtbarkeit einschränken
1 Objektorientierter Entwurf E-R-Modellierung: Ausschließlich strukturelle Aspekte Verhaltensaspekte noch unberücksichtigt:  Interaktionen zwischen Objekten.
(Beziehungen zwischen Objekten)
Name des Vortragenden ‌ Klasse ‌‌‌ Ort / tt.mm.jjjj Anwendungsfalldiagramm.
Tutorium Software-Engineering SS14 Florian Manghofer.
A nwendungsfalldiagramm. Ü berblick  Allgemein  Anwendungsfalldiagramm in Stichpunkten  Zusammenhang  Anwendungsbereich  Diagramm.
 Präsentation transkript:

10. Vorlesung: Dynamische Konzepte Botschaften Collaboration Diagrams Sequence Diagrams Statechart Diagrams (Zustandsdiagramme) Hans-Jürgen Steffens Systemanalyse SS 04

Botschaften (Messages) Objekte kommunizieren mit Hilfe von Botschaften (Messages) Z. T. auch Nachricht, Operations- oder Methodenaufruf genannt Ein Objekt sendet eine Botschaft an ein anderes Objekt Dieses Objekt muss über eine Operation gleichen Namens verfügen, die es dann ausführt Das sendende Objekt weiß nicht, wie die entsprechende Operation ausgeführt wird, es muss nur ihren Namen incl. Über- und Rückgabeparametern kennen Menge der Botschaften, auf die Objekte einer Klasse reagieren können: Protokoll der Klasse Interpretation von Botschaften bei Vererbung: Das empfangende Objekt überprüft bei der Definition seiner Klasse, ob eine entsprechende Operation definiert ist. Wenn ja, dann führt es diese aus. Andernfalls schaut es bei der direkten Oberklasse nach, anschließend bei deren Oberklasse usw. Hans-Jürgen Steffens Systemanalyse SS 04

Botschaften Wenn folgendes im Klassendiagramm definiert ist: ...ist folgende Botschaft möglich: Operation 1() : Klasse 1 : Klasse 2 Hans-Jürgen Steffens Systemanalyse SS 04

Interaktionsdiagramme Stellen den Fluss der Botschaften zwischen den Objekten bei der Durchführung bestimmter Szenarios dar Szenario: Ein abgeschlossener Ablauf (z. B. Durchführung eines Use Cases bzw. ein beim Aufruf einer Operation in Gang gesetzter komplexerer Ablauf), wobei i.d.R. nur ein möglicher Fall betrachtet wird Z. B. werden der Erfolgsfall und der Misserfolgsfall eines Ablaufs meist in mehreren Diagrammen dargestellt Typen von Interaktionsdiagrammen: Collaboration Diagram Fokus auf dem Zusammenspiel der Objekte in Bezug auf ihre Assoziationen Sequence Diagram Fokus auf dem zeitlichen Ablauf Collaboration Diagram und Sequence Diagram sind inhaltlich sehr ähnlich. Hans-Jürgen Steffens Systemanalyse SS 04

Collaboration Diagrams Object Diagrams mit Botschaften-Austausch an den Beziehungen Botschaften werden in der Reihenfolge ihres Versands nummeriert Wird während der Durchführung einer Operation eine weitere Botschaft versandt, so erfolgt verschachtelte Nummerierung 2 OperationA () 2.1 OperationB () - innerhalb der Operation A versandte Botschaft 2.1.1 Operation C () - innerhalb der Operation B versandte Botschaft Es werden nur diejenigen Objekte angegeben, die an dem Szenario beteiligt sind Als ursprünglicher Auslöser kann ein Akteur angegeben werden Werden Klassenoperationen aufgerufen, so wird anstatt des Objekts die Klasse eingetragen Neu erzeugte und gelöschte Objekte können gekennzeichnet werden: {new} – neues Objekt {destroyed} – gelöschtes Objekt {transient} – neu erzeugtes und wieder gelöschtes Objekt Hans-Jürgen Steffens Systemanalyse SS 04

Elemente der Collaboration Diagrams Objekt 1: Operation 1 () :Klasse 1 Association {transient} Nachricht 1.1: Operation 2 () 1.2: Operation 4 () Nummerierung (Reihenfolge und Schachtelung) :Klasse 2 :Klasse 4 {new} 1.1.1: Operation 3 () :Klasse 3 {new} Hans-Jürgen Steffens Systemanalyse SS 04

Beispiel: Autoverleih (Class Diagram) Kunde Ausleihe Fahrzeug 1 * * 1 ausleihDatum rueckgabeDatum ... ... ... ... fzg_suchen():fzg reservieren() preis() ... ausleihen () gesamtpreis_ermitteln() ... * 1 Fahrzeugtyp Preis ... Hans-Jürgen Steffens Systemanalyse SS 04

Beispiel: Autoverleih (Collaboration Diagram) 1.1: fzg_suchen () Fahrzeug 1: ausleihen () :Ausleihe 1.2: reservieren () 1.3: preis () :Fahrzeug {new} 1.3.1: get_preis () :Fahrzeugtyp Hans-Jürgen Steffens Systemanalyse SS 04

Sequence Diagrams Darstellung der zeitlichen Reihenfolge Zeit wird nach unten aufgetragen Für jedes beteiligte Objekt wird eine gestrichelte Lebenslinie eingezeichnet, die die Dauer seiner Existenz repräsentiert Neu entstehende Objekte: Botschaft auf Objekt-Symbol Gelöschte Objekte: großes X Botschaftenaustausch Gerichtete Kanten vom sendenden zum empfangenden Objekt mit Angabe der Operation Die Aktivierung des Objekts wird mit Hilfe eines Rechtecks dargestellt Rückgabe des Kontrollflusses kann mit Hilfe eines gestrichelten Pfeils dargestellt werden Die Beziehungen der Objekte sind im Sequence Diagram nicht ersichtlich. Hans-Jürgen Steffens Systemanalyse SS 04

Darstellung von Bedingungen und Iterationen Bedingter Versand von Botschaften: Bedingung wird in eckiger Klammer vorangestellt Hierdurch können auch Verzweigungen dargestellt werden Es sollten aus Gründen der Übersichtlichkeit nicht zu viele Verzweigungen in ein Diagramm eingezeichnet werden, ggf. kann man mehrere Diagramme erstellen Wiederholungen (Iterationen) Sternchen vor der Operation, ggf. mit Bedingung in eckiger Klammer Hans-Jürgen Steffens Systemanalyse SS 04

Elemente der Sequence Diagrams Objekt1:Klasse Objekt2:Klasse Objekt4:Klasse Neues Objekt angelegt Objekt botschaft() antwort botschaft() Aktivierung Objekt3:Klasse botschaft() antwort Iteration Zeit *botschaft() Objekt gelöscht antwort Bedingung [x>0]botschaft() [x<0]botschaft() Lebenslinie Hans-Jürgen Steffens Systemanalyse SS 04

Beispiel: Autoverleih (Sequence Diagram) Fahrzeug f:Fahrzeug :Fahrzeugtyp Klasse Objekt- name Klassen- name ausleihen() :Ausleihe fzg_suchen() f reservieren() preis () get_preis () preis preis gesamtpreis Hans-Jürgen Steffens Systemanalyse SS 04

Einsatz von Interaktionsdiagrammen Interaktionsdiagramme werden i.d.R. nicht zur kompletten Dokumentation des Gesamtsystems eingesetzt Werden eingesetzt zur Dokumentation und Untersuchung von besonders komplexen, schwer durchschaubaren und erklärungsbedürftigen Abläufen In der Analyse sollten derartige Abläufe so detailliert beschrieben werden, dass ihre fachliche Korrektheit diskutiert werden kann und dass eine geeignete Vorgabe für Entwurf und Implementierung vorliegt. Hans-Jürgen Steffens Systemanalyse SS 04

Zustandsdiagramme (State Chart Diagrams) Zustandsautomat (finite state machine) Besteht aus Zuständen und Zustandsübergängen (Transitionen) Zustand Zeitspanne, in der Objekt auf ein Ereignis wartet Objekt kann mehrere Zustände durchlaufen Zu jedem Zeitpunkt ist das Objekt in genau einem Zustand Dieser wird durch seine aktuellen Attributwerte und Beziehungen definiert Mit einem Zustand können Aktionen verbunden sein /entry: Aktionen, die beim Eintritt in den Zustand ausgeführt werden /exit: Aktionen, die beim Austritt aus dem Zustand ausgeführt werden /do: Aktionen, die während des Zustandes ausgeführt werden Zustände können weiter in Sub-Zustände zerlegt sein, für die wiederum Zustandsdiagramme gezeichnet werden können Hans-Jürgen Steffens Systemanalyse SS 04

Zustandsdiagramme (State Chart Diagrams) Transition Verbindet zwei Zustände Ist atomar (kann nicht unterbrochen werden) Wird ausgelöst von Ereignis Welche Transition durchgeführt wird („feuert“), hängt vom aktuellen Zustand und dem Ereignis ab Ereignisse Arten von Ereignissen: Bedingung, die wahr wird Signal Botschaft (Aufruf einer Operation) Verstrichene Zeit Eintreten eines bestimmten Zeitpunkts Kann mit Wächter verbunden sein Zusätzliche Bedingung, die ausgeführt wird, wenn Ereignis eintritt Hans-Jürgen Steffens Systemanalyse SS 04

Zustandsdiagramme (State Chart Diagrams) Werden in der Analyse benutzt, um den Lebenszyklus von ausgewählten Objekten zu beschreiben (dort wo dieser Lebenszyklus komplexer ist). Als Aktionen werden die Operationen der entsprechenden Klasse genutzt Hans-Jürgen Steffens Systemanalyse SS 04

Zustandsdiagramme – Wichtige Konstrukte Anfangszustand Transition Zustand 2 Ereignis 1 Zustand 1 do/ Aktivität Zustand 4 Ereignis 3[Wächter] Zustand 3 entry/Aktion 3 exit/Aktion 4 Ereignis 2/ Aktion 2 Endzustand Hans-Jürgen Steffens Systemanalyse SS 04

Beispiel: Zustandsdiagramm für Klasse Fahrzeug Neues Fz. / erfassen() frei Ausleihe / reservieren() Fz. okay / freigeben() Rückgabe / zurück- nehmen() zurück- verliehen gegeben Fz. nicht okay / inReparatur Melden() Fz-Schaden / inReparaturMelden() Reparatur beendet / ausReparatur zurückmelden() Fz-Schaden / inReparaturMelden() Fz. verkauft / löschen() In Reparatur Fz. verkauft / löschen() Fz. verkauft / löschen() Hans-Jürgen Steffens Systemanalyse SS 04

Abbildung der Zustände für Klasse Fahrzeug Attribut „Status“ dient der Abbildung der im Zustandsdiagramm verwendeten Zustände Bemerkung: Der Zustand verliehen hängt mit der Existenz eines Ausleihe-Objekts zusammen, bei dem das Rückgabedatum noch leer ist Hans-Jürgen Steffens Systemanalyse SS 04

Zusammenfassung Objekte kommunizieren mit Hilfe von Botschaften. Das empfangende Objekt führt seine Operation gleichen Namens durch. Mit Hilfe von Sequence und Collaboration Diagrams lassen sich Abläufe anhand des Botschaften-Flusses darstellen und analysieren. Beim Collaboration Diagram steht das Zusammenspiel der Objekte im Zusammenhang mit ihren Beziehungen im Vordergrund. Im Sequence Diagram wird die zeitliche Reihenfolge dargestellt. Mit Hilfe von Zustandsdiagrammen kann der Lebenszyklus von Objekten in Form von Zuständen und Zustandsübergängen (Transitionen) dargestellt werden. Hans-Jürgen Steffens Systemanalyse SS 04

Übungsfragen Was ist eine Botschaft? Welche Botschaften versteht ein Objekt? Was bezeichnet man als Protokoll einer Klasse? Welche Arten von Interaktionsdiagrammen gibt es in der UML? Wozu dienen diese? Wie unterscheiden Sie sich? Wie können Varianten von Abläufen (z. B. erfolgreiche und nicht erfolgreiche Durchführung) beschrieben werden? Was ist der Unterschied zwischen Lebenslinie und Aktivierung? Was ist der Zustand eines Objekts? Wie kann man herausfinden, in welchem Zustand sich ein Objekt befindet? Was ist eine Transition? Wann wird diese durchgeführt? Wofür verwendet man Zustandsdiagramme? Hans-Jürgen Steffens Systemanalyse SS 04