@@ -32,5 +32,29 @@ Sequenzdiagramme können in der UML 2.0 verschachtelt sein. Aus einem Sequenzdia
Der mit <code> alt </code> markierte Block beschreibt eine <code> Alternative (Verzweigung) </code>. Ist die <code> Bedingung [b=wahr] </code> erfüllt, wird der Bereich oberhalb der gestrichelten Linie in dem alt-Block ausgeführt. Im else-Fall wird der Bereich unterhalb der gestrichelten Linie ausgeführt.
<br> <br>Diese Abbildung zeigt eine Schleife in einem Sequenzdiagramm. Das Objekt Kunde sendet dem MensaAutomat Botschaft "geldEin". Die Botschaft übergibt den Parameter "Betrag" an den "MensaAutomat". Der MensaAutomat sendet die Botschaft "anzeige(Betrag)" an das "Display". Das "Display" führt die Methode aus und gibt den Return an den "MensaAutomat" zurück. Der "MensaAutomat" gibt den Return an den "Kunden" zurück. Diese Sequenz von Botschaften wird solange ausgeführt bis die Abbruchbedingung [Summe reicht] erfüllt ist. <p>
## Anwendungsbereich
Sequenzdiagramme werden zur Darstellung der Kommunikation von Objekten eingesetzt. Sie können in der Analyse und im Design eingesetzt werden. Sequenzdiagramme werden häufig verwendet, um Szenarien eines Systems exemplarisch zu modellieren.
Ein System wird in der Regel nicht vollständig durch Sequenzdiagramme spezifiziert. Es werden wichtige oder oft vorkommende Szenen modelliert.
## Zusammenhang
Sequenzdiagramme können sich auf Use Cases beziehen. Die Klassen der Objekte in Sequenzdiagrammen müssen in den Klassendiagrammen enthalten sein. Ereignisse und Nachrichten erfordern entsprechende Methoden bei den Zielklassen.
## Beispiel
<b>Sequenzdiagramm der Szene Karte laden </b><br>
Dieses Sequenzdiagramm modelliert die Szene "Karte laden". Es bezieht sich auf den Use Case "KarteLaden" des Use Case Diagramms "Mensa".
<br><p>Der Akteur "Studierender" greift auf das Objekt der Klasse "Kartenleser" zu, indem er die Nachricht "KarteEin()" sendet. Der "Kartenleser" liest die "Mensakarte" über den Aufruf "lies()" und erhält als Rüchkgabewert den "Betrag". Der "Kartenleser" sendet die Nachricht "zeigeBetrag" an das Display.
Über die Nachricht "GeldEin()" wird der "Geldeinzug" aktiviert. Er zieht den eingelegten Schein ein und ruft seine eigene Methode "pruefeSchein()" auf. Der Return gibt TRUE oder FALSE zurück. Ist die Bedingung "[Schein erkannt]" erfüllt, ruft der "Geldeinzug" die Mseine eigene Methode "GeldRaus()" auf und gibt den Schein zurück. Trifft die Bedingung "[Schein erkannt]" sendet er dem Display die Nachricht "zeigeBetrag()"; der Betrag wird auf dem Display angezeigt. Die Nachricht "" und danach auf die "MensaKarte" gespeichert. Da mehrere Scheine hintereinander "schreibe()" an "Mensakarte" speichert den neuen Betrag auf der Karte. Trifft die Bedingung "[Schein erkannt]" nicht zu gibt der "Geldeinzug" den Schein über seine eigene Methode "GeldRaus()" wieder zurück.
Durch das kombinierte Fragment "loop" wird angedeutet, dass mehrere Scheine eingelegt werden können. Das Fragment "alt" kennzeichnet die verschiedenen Verhaltensweisen bei erkanntem und nicht erkanntem Geldschein.
<b>Sequenzdiagramm der Szene Essen zahlen </b><br><br>Dieses Sequenzdiagramm modelliert die Szene "Essen zahlen". Es bezieht sich auf den Use Case "EssenZahlen" des Use Case Diagramms "Mensa". <p>