Archyno
UMLVerhaltensdiagramme

Sequenz- vs Kommunikationsdiagramm

Derselbe Bestellvorgang zweimal gezeichnet, damit der Kompromiss sichtbar statt beschrieben ist: das eine legt die Zeit auf die senkrechte Achse, das andere die Struktur auf die Seite und nummeriert die Nachrichten.

7 Min. LesezeitUML 2.5.127 von 35

Die kurze Antwort

  • Keines ist besser. Das Sequenzdiagramm macht die Reihenfolge offensichtlich und die Struktur schwer erkennbar; das Kommunikationsdiagramm umgekehrt.
  • Semantisch ist es dieselbe Interaktion über demselben UML-Modell, also kann ein Werkzeug das eine mechanisch aus dem anderen erzeugen.
  • Nachrichtennummern gibt es, weil eine Zeitachse fehlt. Ohne sie sagt das Diagramm nicht mehr, was wann geschieht.
  • Die meisten wollen genau die Reihenfolge mitteilen, weshalb das Sequenzdiagramm nahezu jedes reale Gespräch gewinnt.
Ein UML-Kommunikationsdiagramm desselben Checkouts. Ein Customer-Akteur ist mit einem OrderController-Objekt über Nachricht eins, Bestellung aufgeben, verlinkt. Der Controller ist mit einem Inventory-Objekt über Nachricht zwei, reserve, mit einem PaymentGateway-Objekt über Nachricht drei, charge, und mit einem OrderRepo-Objekt über Nachricht vier, save, verlinkt. Alle vier Links gehen vom Controller aus.
Der Checkout als Kommunikationsdiagramm: die Struktur ist sofort da, die Reihenfolge steckt in den Zahlen.

01Eine Interaktion, zwei Zeichnungen#

Beide Diagramme unten beschreiben denselben Checkout: eine Kundin gibt eine Bestellung auf, der Controller reserviert Bestand, belastet eine Karte, speichert die Bestellung und antwortet. Am System unterscheidet sich nichts. Nur die Achse, auf die die Notation ihren Platz verwendet.

Ein UML-Sequenzdiagramm eines Checkouts. Ein Customer-Akteur ruft placeOrder auf dem OrderController auf. Der Controller ruft reserve auf Inventory auf und erhält reserved, ruft dann charge auf dem PaymentGateway auf und erhält authorised, ruft dann save auf dem OrderRepo auf und antwortet der Kundin schließlich mit einer Bestätigung.
Derselbe Checkout als Sequenzdiagramm: die Reihenfolge ist die senkrechte Achse, und die Verschachtelung der Aufrufe ist in den Aktivierungsbalken sichtbar.

Lesen Sie danach die Titelabbildung noch einmal. Das Kommunikationsdiagramm macht offensichtlich, was das Sequenzdiagramm vergräbt: jede Nachricht läuft über OrderController. Vier Links gehen von einem Knoten aus und keiner verbindet die anderen untereinander - das ist die Form des Entwurfs, nicht die Form des Laufs. Auf dem Sequenzdiagramm ist diese Tatsache über sieben Zeilen verteilt und man muss sie suchen.

Und die Umkehrung gilt genauso. Auf dem Sequenzdiagramm sehen Sie auf einen Blick, dass die Karte nach der Bestandsreservierung belastet wird und dass die Reservierungsantwort zurückkommt, bevor die Belastung hinausgeht. Auf dem Kommunikationsdiagramm ist diese Reihenfolge der Unterschied zwischen den Ziffern 2 und 3.

02Wofür jedes seinen Platz ausgibt#

Beide Notationen sind in UML über derselben zugrunde liegenden Interaktion definiert, es ist also eine Darstellungs- und keine Modellierungsentscheidung. Was aus dieser Entscheidung folgt, ist konsistent genug, um es zu tabellieren.

ElementNotationWas es bedeutet
ReihenfolgeSequenzMan liest die Seite hinunter, ohne zu zählen. Auf einem Kommunikationsdiagramm folgt man den Zahlen, was jenseits von etwa sechs Nachrichten langsamer ist.
StrukturKommunikationDie Links sind das Layout, also sind Knotenpunkte, Ketten und isolierte Teilnehmer sofort sichtbar. Ein Sequenzdiagramm hat kein Layout zu lesen.
VerschachtelungSequenzAktivierungsbalken zeigen, welcher Aufruf noch auf dem Stack liegt. Kommunikationsdiagramme drücken es als Dezimalnummerierung aus - 2.1 innerhalb von 2 - was sich schlechter überfliegen lässt.
Bedingungen und SchleifenSequenzKombinierte Fragmente (alt, opt, loop) rahmen einen Bereich des Diagramms. Kommunikationsdiagramme haben nur Wächter an Nachrichtenbeschriftungen.
Zahl der TeilnehmerKommunikationEinem Sequenzdiagramm geht jenseits von sechs oder sieben Lebenslinien der waagerechte Platz aus. Ein Kommunikationsdiagramm legt sie zweidimensional aus.
VerstandenwerdenSequenzWeit mehr Menschen können eines ungeschult lesen. Das ist keine Eigenschaft der Notation, entscheidet aber die meisten realen Fälle.

Dieselbe Information, zwei sehr verschiedene Leseerfahrungen.

03Die Wahl zwischen beiden#

Die Entscheidung fällt leichter, wenn Sie den Satz aufschreiben, den das Diagramm jemanden sagen lassen soll. Steht eine Reihenfolge darin, wollen Sie Lebenslinien. Steht eine Form darin, wollen Sie Links.

Dazu greifen, wenn

  • Sequenz, wenn es darum geht, was vor was passiert - Protokolle, Handschläge, Wettläufe.
  • Sequenz, wenn Bedingungen und Schleifen Teil der Geschichte sind und Sie alt- oder loop-Rahmen brauchen.
  • Kommunikation, wenn es darum geht, wer mit wem spricht - Kopplung, ein Knotenpunkt, ein Schichtungsbruch.
  • Kommunikation, wenn mehr Teilnehmer da sind, als als Lebenslinien auf eine Seite passen.

Zu etwas anderem greifen, wenn

  • Kommunikation, wenn dem Publikum erst die Nummerierung beigebracht werden muss, bevor es lesen kann.
  • Sequenz, wenn Sie in Wahrheit Struktur beschreiben - das ist ein Klassen- oder Komponentendiagramm.
  • Beide, wenn weder Reihenfolge noch Zusammenspiel in Frage stehen. Prosa ist kürzer.
  • Dieselbe Interaktion zweimal als Dokumentation zeichnen. Behalten Sie eine; die andere kann ein Werkzeug erzeugen.

In der Praxis zeichnen die meisten Teams Sequenzdiagramme und lesen gelegentlich ein Kommunikationsdiagramm, was ein vernünftiges Gleichgewicht ist: Reihenfolge ist meist das, was Leute erklären wollen. Der eine Ort, an dem das Kommunikationsdiagramm sich klar bezahlt macht, ist ein Entwurfsreview über Kopplung, wo vier auf einen Knoten zulaufende Links das Argument schneller machen als jede Liste von Aufrufstellen.

04Was zu behalten ist#

In je einer Zeile

  1. 01Beide Notationen beschreiben dieselbe Interaktion. Die Wahl betrifft, was einem Leser zuerst auffällt.
  2. 02Sequenz legt die Reihenfolge auf die senkrechte Achse; Kommunikation legt die Struktur auf die Seite und nummeriert die Nachrichten.
  3. 03Verschachtelung ist beim einen ein Aktivierungsbalken und beim anderen eine Dezimalzahl.
  4. 04Nur Sequenzdiagramme haben alt-, opt- und loop-Rahmen - Bedingungen sind der Grund, warum die meisten Teams bei ihnen bleiben.
  5. 05Kommunikationsdiagramm und Kollaborationsdiagramm sind dasselbe Bild unter UML-2- und UML-1-Namen.

05Häufige Fragen#

Was ist besser, ein Sequenz- oder ein Kommunikationsdiagramm?

Keines ist besser, sie betonen verschiedene Achsen. Das Sequenzdiagramm macht die Reihenfolge offensichtlich und die Struktur schwer erkennbar. Das Kommunikationsdiagramm macht die Form der Zusammenarbeit offensichtlich und die Reihenfolge mühsam. Wählen Sie die Stärke, die zu Ihrer Frage passt.

Enthalten Sequenz- und Kommunikationsdiagramm dieselbe Information?

Semantisch ja - beide beschreiben eine Interaktion, und UML definiert sie über demselben Modell, sodass ein Werkzeug das eine aus dem anderen erzeugen kann. Unterschiedlich ist nur, was ein Mensch zuerst bemerkt, und das ist der einzige Grund für zwei Notationen.

Warum nummerieren Kommunikationsdiagramme ihre Nachrichten?

Weil es keine Zeitachse gibt, an der man die Reihenfolge ablesen könnte. Die Nummerierung trägt sie stattdessen, und verschachtelte Nummern wie 2.1 und 2.2 zeigen, welche Aufrufe innerhalb welcher stattfinden. Ohne Nummern sagt das Diagramm nicht mehr, was wann geschieht.

Kann man ein Sequenzdiagramm in ein Kommunikationsdiagramm umwandeln?

Ja, und rein mechanisch. Jede Lebenslinie wird ein Knoten, jede Nachricht eine nummerierte Beschriftung an der Verbindung zweier Knoten, und die Reihenfolge von oben nach unten wird die Nummerierung. Viele Werkzeuge wandeln aus einer gespeicherten Interaktion in beide Richtungen um.

Warum werden Kommunikationsdiagramme so selten verwendet?

Die meisten wollen genau die Reihenfolge mitteilen, und sie aus einer Zahlenmenge abzulesen ist langsamer, als sie von oben nach unten zu lesen. Das Kommunikationsdiagramm gewinnt, wenn es darum geht, wer mit wem spricht, nicht in welcher Reihenfolge - und das ist der kleinere Teil echter Gespräche.

In dieser Reihe

Passend dazu

Alle Artikel