Sequenzdiagramme beschreiben die Kommunikation zwischen Objekten in einer bestimmten Szene. Es wird beschrieben welche Objekte an der Szene beteiligt sind, welche Informationen (Nachrichten) sie austauschen und in welcher zeitlichen Reihenfolge der Informationsaustausch stattfindet. Sequenzdiagramme enthalten eine implizite Zeitachse. Die Zeit schreitet in einem Diagramm von oben nach unten fort. Die Reihenfolge der Pfeile in einem Sequenzdiagramm gibt die zeitliche Reihenfolge der Nachrichten an.
## Notation
<b>Lebenslinie, Klasse, Objekt </b><br><br>In dem Rechteck oberhalb der gestrichelten Linie wird für eine Lebenslinie der Objektname und der Klassenname angegeben. Der Name wird unterstrichen. Die senkrechte, gestrichelte Linie stellt die Lebenslinie (lifeline) eines Objekts dar. So weit die gestrichelte Linie geht, existiert das Objekt. Das schmale, senkrechte Rechteck auf der gestrichelten Linie stellt eine Aktivierung dar. Eine Aktivierung ist der Bereich, in dem eine Methode des Objektes aktiv ist (ausgeführt wird). Auf einer Lebenslinie können mehrere Aktivierungen enthalten sein. <p>
<b>Nachricht, Botschaft, Message </b><br><br>Objekte kommunizieren über Nachrichten. Nachrichten werden als Pfeile zwischen den Aktivierungen eingezeichnet. Der Name der Nachricht steht an dem Pfeil. Eine Nachricht liegt immer zwischen einem sendenden und einem empfangenden Objekt. Es gibt verschiedene Nachrichtentypen. <p>
<b>SQ_snchAufruf </b><br><br>Ein synchroner Aufruf wird durch einen Pfeil mit ausgefüllter Soitze dargestellt. Der Aufruf erfolgt in Pfeilrichtung, d. h. die Zielklasse muss eine entsprechende Methode implementieren. Der Aufrufer wartet mit der weiteren Verarbeitung bis die Zielklasse ihre Verarbeitung beendet hat und setzt die Verarbeitung dann fort. Ein Aufruf muss einen Namen haben; in runden Klammern können Aufrufparameter angegeben werden. Der gestrichelte Rückpfeil ist der Return. Die Bezeichnung des Return mit einem Namen ist optional. <p>
<b>SQ_asynchSignal </b><br><br> Mit einer offenen Pfeilspitze werden asynchrone Nachrichten gekennzeichnet. Der Aufruf erfolgt in Pfeilrichtung. Der Aufrufer wartet mit der Verarbeitung nicht auf die Zielklasse, sondern setzt sein Arbeit nach dem Senden der Nachricht fort. Asynchrone Aufrufe werden verwendet, um parallele Threads zu modellieren.<p>
<b>Objekt erzeugen, zerstören </b><br><br>Das Erzeugen eines Objektes wird durch eine Nachricht, die im Kopf des Objekts endet dargestellt (gestrichelte Linie). Das Zerstören (Löschen) eines Objektes wird durch ein x auf der Lebenslinie markiert. <p>
<b>Rekursion </b><br><br>Sendet ein Objekt eine Nachricht an sich selbst, so ruft es eine Methode auf, die es selbst implementiert. <p>
Ein Sequenzdiagramm enthält Objekte, Lebenslinien, Aktivierungen, Nachrichten und <code> kombinierte Fragmente (combined fragment) </code>. Mit kombinierten Fragmenten können in Sequenzdiagrammen die Kontrollstrukturen höherer Programmiersprachen ausgedrückt werden. Jedes kombinierte Fragment wird als rechteckiger Block dargestellt. In der linken, oberen Ecke trägt er eine Bezeichnung, die den Typ der Kontrollstruktur angibt (interaction operator). Die wichtigsten kombinierte Fragmente der UML 2.0 sind weiter unten erläutert.