255
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! |
|---|
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.
Beispiel: Ein Objekt soll erzeugt werden, z.B. eine Spinne oder ein Datensatz durch eine Aktion eines Anwenders.
![]() |
Der User Klickt auf die Spinnenbox "sbox:SpiderBox" und erzeugt eine neue Spinne. In diesem Diagramm wird der Standart-Konstruktor <<create>> aufgerufen, 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()?? DestruktorIrgendwann stirbt die Spinne, es wird der Standart-Destruktor <<destoy>> 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".. |
![]() |
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() |