MezData-Logo Creative Commons License 3612 Lösungen Button :OOP: Sequenz-Diagramm

Bisher konnte mit dem Klassen- und Objekt-Diagramm nur der statische Zustand und die Beziehungen zwischen den den Klassen und Objekten dargestellt werden:

Nun soll ein weiterer Diagrammtyp die dynamischen Vorgänge darstellbar machen - das Sequenzdiagramm:

Das Sequenzdiagramm hilft bei der Suche nach Methoden!

Allgemeines zu Sequenzdiagrammen

Im Sequenzdiagramm soll festgehalten werden, was nach einem bestimmten Ereignis passiert, z.B.:

Es wird jeweils ein Diagramm für jedes Ereignis erstellt, nicht alles in ein Diagramm zeichnen!

Bei der OOA, dem Finden der Anwendungsfälle (Use Cases) überlegt man zunächst, welche Sequenzen auftreten können.

Konstruktor und Destruktor

Beispiel: Ein Objekt soll erzeugt werden, z.B. eine Spinne oder ein Datensatz durch eine Aktion eines Anwenders.

Standartkonstruktor und Destruktor

Der User Klickt auf die Spinnenbox "sbox:SpiderBox" und erzeugt
eine neue Spinne.

In diesem Diagramm wird der Standart-Konstruktor <<create>> aufgerufen,
der einfach ein Objekt erzeugt. Die Spinnen-Objekte werden hier
mit keinem Namen assoziiert, daher ist die Spinne ein anonymes :Spider - Objekt

Hinweis zu Java und C++: Bei Java und C++ heist der Konstruktor wie die Klasse, hier also Spider().

Hinweis zu Delphi: Bei Delphi heist der Konstruktor Spider.create()??

Destruktor

Irgendwann stirbt die Spinne, es wird der Standart-Destruktor <<destoy>>
aufgerufen, der die Spinne "beerdigt" bzw. den belegten Speicher wieder frei gibt.

Hinweis zu Java: Bei Java ist kein explizieter Destruktor-Aufruf nötig, wenn ein Objekt nicht mehr referenziert wird, also kein Verweis mehr auf es existiert, wird es automatisch beim nächsten Durchlauf des Garbage-Collectors entfernt.

Hinweis zu C++ und Delphi: Hier ist ein Destruktor unbedingt erforderlich, sonst kann es zu Speicherproblemen kommen, "Alles voller Leichen"..

Eigener Konstruktor

Eine eigene Konstruktor-Methode create(x:Integer) wird aufgerufen
und initialisiert das Objekt.

Thema "Überladen von Methoden"

Thema "Klassen-Methoden"

Die click()-Methode der sbox wird nach dem Aufruf des Spinnen-Konstruktors erst weiterbearbeitet, wenn der Konstruktor der Spinne fertig ist.

Dieser Zusammenhang wird duch den Antwort-Pfeil dargestellt, auch wenn kein Wert zurück gegeben wird.

Anstelle von <<create>> bzw. <<destroy>> ist alternativ auch die Angabe des Konstruktors mit Parameter bzw. des Destruktors möglich:

Konstruktor Destruktor
create() destroy()
create(x : GZ)  
init() delete()

To Do: