UML  -Sequenzdiagramme sind Interaktionsdiagramme, die detailliert darstellen, wie Operationen ausgeführt werden. Sie erfassen die Interaktion zwischen Objekten im Rahmen einer Kollaboration. Sequenzdiagramme konzentrieren sich auf die Zeit und zeigen die Reihenfolge der Interaktion visuell an, indem die vertikale Achse des Diagramms verwendet wird, um die Zeit darzustellen, welche Nachrichten wann gesendet werden.

Was ist ein Sequenzdiagramm?

Ein Sequenzdiagramm, auch Sequenzdiagramm, Sequenzdiagramm oder Sequenzdiagramm genannt, ist ein UML-Interaktionsdiagramm. Es zeigt die dynamische Zusammenarbeit zwischen mehreren Objekten, indem es die zeitliche Reihenfolge beschreibt, in der Nachrichten zwischen ihnen gesendet werden.

In UML wird ein Objekt in einem Sequenzdiagramm als Rechteck gezeichnet, das den Namen des Objekts unterstrichen enthält. Ein Objekt kann auf drei Arten benannt werden: der Objektname, der Objektname und seine Klasse oder nur der Klassenname (anonymes Objekt). Die drei Möglichkeiten, ein Objekt zu benennen, sind in der folgenden Abbildung dargestellt.

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Die Objekte des Sequenzdiagramms

  1. Zeigen Sie die Reihenfolge der Interaktionen zwischen Objekten. Modellieren Sie das Interaktionsverhalten als Nachrichtenweitergabe und zeigen Sie die Interaktion zwischen Objekten dynamisch an, indem Sie beschreiben, wie Nachrichten zwischen ihnen gesendet und empfangen werden.
  2. Im Vergleich zu anderen UML-Diagrammen legt ein zeitliches Sequenzdiagramm mehr Wert auf die zeitliche Abfolge des Interaktionsverhaltens.
  3. Es kann den Prozess der Parallelität visuell beschreiben.

Die Elemente des Sequenzdiagramms

1. Akteur – Systemakteure, die Menschen, Maschinen, andere Systeme, Subsysteme sein können; zur Darstellung im zeitlichen Ablaufdiagramm verwendet.

2. Objekt – Es gibt drei Möglichkeiten, Objekte zu benennen:

  1. Enthält den Objektnamen und den Klassennamen, zum Beispiel: Live-Klasse: Klasse, im Zeitreihendiagramm mit „Objekt: Klasse“.
  2. Zeigt nur den Klassennamen an, dh es handelt sich um ein anonymes Objekt, zum Beispiel: :course; im Timing-Diagramm mit „:class“.
  3. Zeigt nur den Objektnamen, aber nicht den Klassennamen, zB: Dozent; im Timing-Diagramm wird es durch „Objekt“ dargestellt.

Alle drei Benennungsmethoden sind verfügbar, was für Leute, die das chronologische Diagramm lesen, am einfachsten ist, zu verstehen, wählen Sie welche aus.

3. Die Reihenfolge der Objekte

  • Die linke und rechte Reihenfolge der Objekte ist nicht wichtig, aber um ein klares und ordentliches Diagramm zu erstellen, sollten die folgenden zwei Prinzipien befolgt werden: Stellen Sie die Objekte mit häufigen Interaktionen so nah wie möglich zusammen;
  • Platzieren Sie das Objekt, das die gesamte Interaktionsaktivität initialisiert, ganz links.

Lebenslinie

Eine gestrichelte Linie, die sich vom Objektsymbol im Zeitdiagramm nach unten erstreckt und angibt, wie lange das Objekt existiert.

  • Fokus der Kontrolle (auch bekannt als Aktivierungszeitraum) ist das Symbol für den Zeitraum, in dem das Objekt die entsprechende Operation ausführt. Es kann als Klammerpaar { } in der C-Semantik interpretiert werden; dargestellt durch ein kleines Rechteck. Es stellt den Zeitraum dar, während dessen ein Element eine Operation ausführt. Die Ober- und Unterseite des Rechtecks ​​sind jeweils auf die Initiierungs- und die Abschlusszeit ausgerichtet.
  • Nachrichten werden im Allgemeinen als synchrone Nachricht, asynchrone Nachricht und Rücknachricht klassifiziert.

Beachten Sie, dass

  • Der Sender einer Nachricht übergibt die Kontrolle an den Empfänger der Nachricht, stoppt dann die Aktivität und wartet darauf, dass der Empfänger der Nachricht die Kontrolle aufgibt oder zurückgibt, was verwendet wird, um die Synchronisation anzuzeigen.
  • Der Sender einer Nachricht leitet das Signal über die Nachricht an den Empfänger der Nachricht weiter und setzt dann seine Aktivität fort, ohne darauf zu warten, dass der Empfänger die Nachricht oder die Steuerung zurückgibt. Empfänger und Sender einer asynchronen Nachricht arbeiten gleichzeitig.
  • Eine Rückgabenachricht zeigt eine Rückgabe von einem Prozeduraufruf an.

 

Schöpfungs- und Zerstörungsnachrichten

Die Teilnehmer leben nicht notwendigerweise für die gesamte Dauer der Interaktion eines Sequenzdiagramms. Teilnehmer können gemäß den übermittelten Nachrichten erstellt und gelöscht werden.

Eine  Konstruktornachricht  erstellt ihren Empfänger. Die Absender, die zu Beginn der Interaktion bereits vorhanden sind, werden oben im Diagramm platziert. Ziele, die während der Interaktion durch einen Konstruktoraufruf erstellt werden, werden automatisch weiter unten im Diagramm platziert.

Eine  Destruktornachricht  zerstört ihren Empfänger. Es gibt andere Möglichkeiten, anzuzeigen, dass ein Ziel während einer Interaktion zerstört wird. Nur wenn die Zerstörung eines Ziels auf „nach dem Destruktor“ eingestellt ist, müssen Sie einen Destruktor verwenden.

Nicht sofortige Nachricht

Nachrichten werden oft als unverzögert angesehen, daher ist die Zeit, die benötigt wird, um beim Empfänger anzukommen, vernachlässigbar. Die Meldungen werden als horizontaler Pfeil gezeichnet. Um anzuzeigen, dass es eine gewisse Zeit dauert, bis der Empfänger tatsächlich eine Nachricht erhält, wird ein  schräger Pfeil verwendet .

Kombinationsfragmente

Ein Sequenzfragment wird als ein als kombiniertes Fragment bezeichnetes Kästchen dargestellt, das einen Teil der Interaktion im Sequenzdiagramm einschließt. Der Fragmentoperator (in der oberen linken Ecke) gibt den Typ des Fragments an. Mit interaktiven Fragmenten können Sie verwandte Nachrichten in einem Sequenzdiagramm gruppieren. Es stehen verschiedene vordefinierte Fragmenttypen zur Verfügung, mit denen Sie alternative Ergebnisse, parallele Nachrichten oder Schleifen angeben können.

Das Fragment im Sequenzdiagramm sind rechteckige Rahmen, die über einen Teil des Diagramms gezogen werden. Sie stellen die bedingte Struktur dar, die den Nachrichtenfluss beeinflusst. Diese Frames werden in der UML-Spezifikation kombinierte Fragmente genannt, und die Container werden Interaktionsoperanden genannt. Frames sind in der linken oberen Ecke beschriftet. Diese Bezeichnung wird in UML als Interaktionsoperator bezeichnet.

 

Beispiel – Bestellszenario aufgeben

Ein Schiffsmitglied, das online eine Bestellung aufgeben möchte. Die bestellten Artikel werden dem Mitglied je nach Mitgliedsstatus (VIP, ordentliches Mitglied) per Kurier oder Post zugestellt. Wenn das Mitglied die Benachrichtigungsoption in der Bestellung auswählt, sendet das Geschäft eine Bestätigungsbenachrichtigung an das Mitglied.

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Ein weiteres Beispiel: Bestellung aufgeben

Ein Sequenzdiagramm ist ein zweidimensionales Diagramm, bei dem die horizontale Achse Objekte darstellt und die vertikale Achse die Zeit darstellt, wobei Nachrichten horizontal zwischen Objekten weitergegeben und vertikal in chronologischer Reihenfolge angeordnet werden. Das Beispiel zeigt ein Sequenzdiagramm mit drei beteiligten Objekten: Kunde, Bestellung und Bestand. Ohne die Notation formal zu kennen, können Sie wahrscheinlich eine ziemlich gute Vorstellung davon bekommen, was vor sich geht.

  1. Schritt 1 und 2: Der Kunde erstellt eine Bestellung.
  2. Schritt 3: Der Kunde fügt der Bestellung Artikel hinzu.
  3. Schritt 4, 5: Jeder Artikel wird auf Verfügbarkeit im Bestand geprüft.
  4. Schritt 6, 7, 8 : Wenn das Produkt verfügbar ist, wird es der Bestellung hinzugefügt.
  5. Schritt 9 zurück
  6. Schritt 10, 11: Ordnung speichern und zerstören

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

 

Häufig verwendete Kombinationsfragmente

Zu den Fragmenttypen gehören ref, assert, loop, break, alt, opt und neg, ref, sd.

Operator Bedeutung
alt Alternative Mehrfachfragmente: Nur dasjenige, dessen Bedingung wahr ist, wird ausgeführt.
opt Optional : Das Fragment wird nur ausgeführt, wenn die angegebene Bedingung wahr ist. Entspricht einem alt nur mit einer Spur.
Par Parallel : Jedes Fragment wird parallel ausgeführt.
Schleife Schleife : Das Fragment kann mehrmals ausgeführt werden, und der Wächter gibt die Basis der Iteration an.
kritisch Kritischer Bereich : Das Fragment kann nur von einem Thread gleichzeitig ausgeführt werden.
neg Negativ : Das Fragment zeigt eine ungültige Interaktion.
Ref Referenz : bezieht sich auf eine Interaktion, die in einem anderen Diagramm definiert ist. Der Rahmen wird so gezogen, dass er die an der Interaktion beteiligten Lebenslinien abdeckt. Sie können Parameter und einen Rückgabewert definieren.
SD Sequenzdiagramm : wird verwendet, um ein ganzes Sequenzdiagramm zu umgeben.

Beachten Sie, dass:

  • Es ist möglich, Frames zu kombinieren, um zB Schleifen oder Verzweigungen zu erfassen.
  • Kombinierte Fragmentschlüsselwörter  : Alt, Opt, Break, Par, Seq, Strict, Neg, Critical, Ignore, Consider, Assert und Loop.
  • Einschränkungen werden normalerweise verwendet, um zeitliche Einschränkungen für Nachrichten anzuzeigen. Sie können sich auf das Timing einer Nachricht oder auf Intervalle zwischen Nachrichten beziehen.

Beispiele für kombinierte Fragmente

(1) Auswahl (Alt) – Ein alternatives Fragment bietet mehrere geschützte alternative Fragmente (getrennt durch Interaktionsoperanden), dh verwendet, um sich gegenseitig ausschließende Auswahlmöglichkeiten zwischen zwei oder mehr Nachrichtensequenzen anzugeben, äquivalent zum klassischen if..else…:

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

(2) Option (Opt) – Enthält eine Folge möglicher Vorkommen oder Nichtvorkommen, was bedeutet, dass ein optionales Fragment nur ausgeführt wird, wenn eine Schutzbedingung wahr ist:

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

(3) Schleife (Loop) – Eine Schleife ermöglicht die Wiederholung eines Fragments, bis eine Schutzbedingung falsch wird:

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Unterbrechung

Eine Unterbrechung ermöglicht das Verlassen einer umschließenden Schleife, wenn eine Wache wahr wird:

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Unterbrechungen werden am häufigsten verwendet, um die Ausnahmebehandlung zu modellieren. Dieses Beispiel für ein Sequenzdiagramm verwendet ein Unterbrechungskombinationsfragment, da es die Bedingung Saldo < Betrag als Ausnahme und nicht als alternativen Fluss behandelt. Um dieses Beispiel zu lesen, beginnen wir in der oberen linken Ecke der Sequenz und lesen nach unten. Wenn die Sequenz den Rückgabewert „balance“ erreicht, prüft sie, ob der Saldo kleiner als der Betrag ist. Wenn der Saldo nicht geringer ist als der Betrag, ist die nächste gesendete Nachricht die addDebitTransaction-Nachricht, und die Sequenz wird normal fortgesetzt.

Parallel

Ein paralleles Fragment ermöglicht die parallele Ausführung mehrerer Interaktionen:

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Rahmen

Ein Frame bietet eine Möglichkeit, ein Sequenzdiagramm zu kapseln.

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Referenz (Referenz)

Ein Frame kann in einem anderen Sequenzdiagramm referenziert werden:

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Protokolle

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Kooperationen

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Szenarien

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Signale und Empfänge

Ein Auktionator sendet einen vorgeschlagenen Preis für einen Artikel in einen überfüllten Raum mit ängstlichen Bietern. Wenn ein Bieter den Vorschlag hört, entscheidet er, den Preis anzunehmen oder nicht.

Wie wird der Auktionator bei einer automatisierten Auktion den Vorschlag übermitteln? Ein Objekt kann bestimmte Operationen haben, die automatisch aufgerufen werden sollten, wenn bestimmte Typen von Rundfunksignalen empfangen werden. Diese Methoden werden Empfänge genannt. Signale sind eine besondere Klasse. Der Name des Empfangs stimmt normalerweise mit dem Namen des Signals überein. Empfänge werden in einem separaten Fach angezeigt:

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

In einem Sequenzdiagramm können wir ein Signal als asynchrones Signal und den Empfang als Empfangsaufruf darstellen:

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Kritisch

BEARBEITEN SIE DIESES SEQUENZDIAGRAMM

Andere Fragmenttypen

  • Strikt
  • Behaupten
  • In Betracht ziehen
  • Ignorieren
  • Region
  • Neg

Zusammenfassung der Sequenzdiagrammnotation

Notationsbeschreibung Visuelle Darstellung
Schauspieler
  • eine Art von Rolle, die von einer Entität gespielt wird, die mit dem Subjekt interagiert (z. B. durch den Austausch von Signalen und Daten)
  • außerhalb des Subjekts (dh in dem Sinne, dass eine Instanz eines Akteurs kein Teil der Instanz seines entsprechenden Subjekts ist).
  • stellen Rollen dar, die von menschlichen Benutzern, externer Hardware oder anderen Subjekten gespielt werden.

Beachten Sie, dass:

  • Ein Akteur repräsentiert nicht unbedingt eine bestimmte physische Einheit, sondern lediglich eine bestimmte Rolle einer Einheit
  • Eine Person kann die Rolle mehrerer verschiedener Schauspieler spielen und umgekehrt kann ein bestimmter Schauspieler von mehreren verschiedenen Personen gespielt werden.
UML-Sequenzdiagramm: Beispiel für einen Akteur
Lebenslinie
  • Eine Lebenslinie repräsentiert einen einzelnen Teilnehmer an der Interaktion.
UML-Sequenzdiagramm: Aktivierungsbeispiel
Aktivierungen
  • Ein dünnes Rechteck auf einer Lebenslinie stellt den Zeitraum dar, in dem ein Element eine Operation ausführt.
  • Der obere und der untere Rand des Rechtecks ​​sind jeweils mit der Initiierungs- und der Abschlusszeit ausgerichtet
UML-Sequenzdiagramm: Aktivierungsbeispiel
Nachricht anrufen
  • Eine Nachricht definiert eine bestimmte Kommunikation zwischen Lebenslinien einer Interaktion.
  • Anrufnachricht ist eine Art von Nachricht, die einen Aufruf der Operation der Ziellebenslinie darstellt.
UML-Sequenzdiagramm: Beispiel für eine Anrufnachricht
Rücknachricht
  • Eine Nachricht definiert eine bestimmte Kommunikation zwischen Lebenslinien einer Interaktion.
  • Rücknachricht ist eine Art von Nachricht, die die Weitergabe von Informationen an den Aufrufer einer entsprechenden früheren Nachricht darstellt.
UML-Sequenzdiagramm: Beispiel für eine Antwortnachricht
Selbstnachricht
  • Eine Nachricht definiert eine bestimmte Kommunikation zwischen Lebenslinien einer Interaktion.
  • Selbstbotschaft ist eine Art von Botschaft, die die Anrufung der Botschaft derselben Lebensader darstellt.
UML-Sequenzdiagramm: Beispiel für eine Selbstnachricht
Rekursive Nachricht
  • Eine Nachricht definiert eine bestimmte Kommunikation zwischen Lebenslinien einer Interaktion.
  • Eine rekursive Nachricht ist eine Art von Nachricht, die den Aufruf einer Nachricht derselben Lebenslinie darstellt. Sein Ziel zeigt auf eine Aktivierung über der Aktivierung, von der aus die Nachricht aufgerufen wurde.
UML-Sequenzdiagramm: Beispiel für eine rekursive Nachricht
Nachricht erstellen
  • Eine Nachricht definiert eine bestimmte Kommunikation zwischen Lebenslinien einer Interaktion.
  • Nachricht erstellen ist eine Art von Nachricht, die die Instanziierung der (Ziel-)Lebenslinie darstellt.
UML-Sequenzdiagramm: Beispiel für eine Nachricht erstellen
Nachricht vernichten
  • Eine Nachricht definiert eine bestimmte Kommunikation zwischen Lebenslinien einer Interaktion.
  • Die Zerstörungsnachricht ist eine Art von Nachricht, die die Aufforderung darstellt, den Lebenszyklus der Ziellebenslinie zu zerstören.
UML-Sequenzdiagramm: Beispiel für eine zerstörte Nachricht
Meldung zur Dauer
  • Eine Nachricht definiert eine bestimmte Kommunikation zwischen Lebenslinien einer Interaktion.
  • Die Nachrichtendauer zeigt den Abstand zwischen zwei Zeitpunkten für einen Nachrichtenaufruf.
UML-Sequenzdiagramm: Beispiel für eine Dauernachricht
NotizEine Notiz (Kommentar) bietet die Möglichkeit, Elemente mit verschiedenen Anmerkungen zu versehen. Ein Kommentar hat keine semantische Kraft, kann aber Informationen enthalten, die für einen Modellierer nützlich sind. UML-Sequenzdiagramm: Beispiel beachten