Aktivitätsdiagramm-Beispiele
Drei Aktivitätsdiagramme von Prozessen, die Sie kennen - eine CI-Pipeline, eine Ticket-Triage und ein Fragment, das zwei Token unterschiedlich beendet - jeweils mit der Begründung für jeden Knoten.
8 Min. LesezeitUML 2.5.114 von 35
Die kurze Antwort
- Am klarsten ist eine CI-Pipeline: bauen, dann drei Prüfungen parallel hinter einer Verzweigung, eine Zusammenführung, die auf alle drei wartet, und ein Zweig je nach Ergebnis.
- Kanten aus einer Verzweigung tragen nie Wächter, denn alle werden genommen. Wächter gehören an die Kanten einer Entscheidung.
- Ein Flussende beendet ein Token, ein Aktivitätsende beendet alles. Die umringte Scheibe an einem Nebenzweig tötet stillschweigend den Hauptfluss.
- Geben Sie der letzten Kante einer Entscheidung den Wächter [else]. Sonst kann ein Token dort landen, wo kein Wächter gilt, und die Aktivität bleibt stehen.
01Beispiel 1: parallele Arbeit hinter einer Gabelung#
Eine Build-Pipeline ist das klarste erste Beispiel, weil die Nebenläufigkeit echt ist und nicht bloß gedacht. Unit-Tests, Linting und ein Abhängigkeitsscan laufen wirklich gleichzeitig, nichts stromabwärts kann starten, bevor alle drei fertig sind, und jeder hat das schon zugesehen.
Die Arbeit leisten die beiden durchgezogenen Balken. Der obere ist eine Gabelung: ein Token kommt an und drei gehen hinaus, also laufen alle drei Zweige. Der untere ist eine Vereinigung: sie wartet, bis auf jeder eingehenden Kante ein Token angekommen ist, bevor sie eines weiterlässt. Tauschen Sie eines gegen eine Raute, und das Diagramm behauptet etwas Falsches - eine Raute feuert beim ersten Token und wartet nie.
Beachten Sie die zwei getrennten Endknoten. Ein fehlgeschlagener und ein deployter Build sind verschiedene Enden, und sie als zwei umringte Scheiben zu zeichnen ist legal und klarer, als beide in einen zurückzuführen. UML setzt keine Grenze, wie viele Aktivitätsendknoten eine Aktivität hat.
02Beispiel 2: eine Dreifachverzweigung mit erschöpfenden Wächtern#
Die meisten Geschäftsprozesse sind nicht nebenläufig. Sie sind eine Entscheidung mit mehreren Ausgängen, die später wieder zusammenkommen, und das ist die Form unten.
Drei Dinge in diesem Diagramm sind Absicht. Die Wächter sind erschöpfend: [sev 1], [sev 2 or 3] und [else] decken zusammen jedes Ticket ab, also kann kein Token an der Raute ankommen und nirgends hinkönnen. Ein Token ohne freigeschaltete ausgehende Kante ist ein stehengebliebener Prozess, und das ist ein Mangel, den man auf Papier abfangen sollte.
Die untere Raute ist eine Zusammenführung, keine Vereinigung, und der Unterschied zählt: nur einer der drei Pfade trägt je ein Token, auf alle drei zu warten würde also sofort verklemmen. Die Regel ist leicht zu merken - eine Raute schließt, was eine Raute geöffnet hat, und ein Balken schließt, was ein Balken geöffnet hat.
Schließlich ist jede Aktion eine Verbphrase im Imperativ: „Bereitschaft alarmieren“, nicht „Bereitschaftsalarmierung“. Substantive schleichen sich ein, wenn jemand ein System statt eines Prozesses beschreibt, und ein Diagramm aus Substantiven ist ein Klassendiagramm, das die falsche Form angenommen hat.
03Beispiel 3: die zwei Arten, wie ein Fluss enden kann#
Das Paar Endknoten ist das Detail, das die meisten ersten Diagramme falsch machen, und der Fehler ist unsichtbar: das Diagramm sieht weiterhin richtig aus.
Nach der Gabelung sind zwei Token unterwegs. Der Audit-Zweig erreicht ein Flussende - den Kreis mit dem Kreuz -, das dieses Token verbraucht und sonst nichts. Der Kundenzweig erreicht ein Aktivitätsende, die umringte Scheibe, die die ganze Aktivität beendet und jedes andere Token darin verwirft.
Setzen Sie die umringte Scheibe stattdessen auf den Audit-Zweig, und das Diagramm sagt nun, dass die Bestellung abgebrochen wird, sobald die Logzeile geschrieben ist. Nichts daran sieht falsch aus, und genau deshalb lohnt es sich, den Unterschied einmal zu lernen: ein Flussende für einen Nebenzweig, der einfach fertig wird, und ein Aktivitätsende nur dort, wo Sie „wir sind fertig“ meinen.
04Daraus eigene machen#
Diese drei decken die Formen ab, aus denen fast jedes Aktivitätsdiagramm besteht. Was sich zwischen ihnen und Ihrem ändert, sind die Beschriftungen; was sich nicht ändern sollte, ist die Disziplin beim Umfang.
Dazu greifen, wenn
- Ein Prozess je Diagramm, mit einem Namen, den Sie in eine E-Mail-Betreffzeile setzen könnten.
- Aktionen als Verbphrasen, damit jeder Kasten etwas ist, das jemand oder etwas tut.
- Swimlanes, wenn die Übergaben zwischen Rollen der Punkt sind - an Lane-Übergängen scheitern Prozesse.
- Ein [else]-Wächter an der letzten Kante jeder Entscheidung, damit die Menge erschöpfend ist.
Zu etwas anderem greifen, wenn
- Mehr als etwa fünfzehn Aktionen. Ziehen Sie stattdessen einen Teilbaum als eigene Aktivität heraus.
- Ein Balken, wo Alternativen wieder zusammenkommen, oder eine Raute, wo nebenläufige Arbeit es tut.
- Fehlerbehandlung bei jedem Schritt. Zeichnen Sie den Gutfall, dann ein Diagramm für den Fehlschlag, der zählt.
- Den Lebenszyklus eines einzelnen Objekts modellieren - das ist ein Zustandsautomat, keine Aktivität.
Ist das Publikum fachlich statt technisch, wird derselbe Prozess meist besser in BPMN gezeichnet, das reichere Ereignissemantik hat und das ist, was eine Prozess-Engine ausführt. Die beiden Notationen beantworten dieselbe Frage für verschiedene Räume.
05Was zu behalten ist#
In je einer Zeile
- 01Ein Balken gabelt und vereinigt; eine Raute verzweigt und führt zusammen. Eine Raute wartet nie, ein Balken immer.
- 02Wächter gehören an Kanten aus einer Entscheidung und nie an Kanten aus einer Gabelung.
- 03Machen Sie die Wächtermenge erschöpfend - [else] an der letzten Kante - sonst kann der Prozess stehenbleiben.
- 04Ein Flussende beendet ein Token; ein Aktivitätsende beendet alles. Das falsche sieht identisch aus.
- 05Aktionen sind Verbphrasen. Sind die Kästen Substantive, zeichnen Sie das falsche Diagramm.
06Häufige Fragen#
Was ist ein gutes Beispiel für ein Aktivitätsdiagramm?
Am klarsten ist eine CI-Pipeline: Artefakt bauen, dann hinter einer Verzweigung Tests, Linter und Abhängigkeitsscan parallel laufen lassen, an der Zusammenführung auf alle drei warten und je nach Ergebnis verzweigen. Sie nutzt jede wichtige Knotenart in etwa zehn Kästen.
Wie zeichnet man parallele Schritte in einem Aktivitätsdiagramm?
Legen Sie einen breiten Balken - die Verzweigung - quer über den Fluss und führen Sie von ihm je eine Kante in jede nebenläufige Aktion. Schließen Sie die Gruppe mit einem zweiten Balken, der Zusammenführung, die auf jeder eingehenden Kante ein Token abwartet. An den Kanten einer Verzweigung stehen nie Wächter, denn alle werden genommen.
Was ist der Unterschied zwischen Flussende und Aktivitätsende?
Das Flussende, ein Kreis mit Kreuz, beendet nur das Token, das es erreicht, der Rest der Aktivität läuft weiter. Das Aktivitätsende, eine umringte Scheibe, beendet die gesamte Aktivität und verwirft alle anderen Token. Die umringte Scheibe an einem Nebenzweig tötet stillschweigend den Hauptfluss.
Müssen die Wächter an einer Entscheidung jeden Fall abdecken?
Ja. Gilt kein Wächter, hat das Token kein Ziel und die Aktivität bleibt stehen - ein echter Defekt, keine Formsache. Die sichere Gewohnheit ist, der letzten Kante den Wächter [else] zu geben, womit die Menge konstruktionsbedingt lückenlos ist.
Wie viele Aktionen gehören in ein Aktivitätsdiagramm?
Etwa fünfzehn, danach ist es nicht mehr lesbar. Darüber hinaus lagern Sie einen Teilbaum als eigene Aktivität aus und verweisen mit einer einzigen Aufrufaktion darauf. Ein Diagramm, das man heranzoomen muss, prüft niemand mehr gegen die Wirklichkeit.
In dieser Reihe
- 01Was ist UML?
- 02UML-Symbole
- 03Diagramm auswählen
- 04Klassendiagramme
- 05Klassendiagramm-Beispiele
- 06Klassendiagramm zeichnen
- 07Klassendiagramm-Symbole
- 08Sequenzdiagramme
- 09Sequenzdiagramm-Beispiele
- 10Sequenzdiagramm zeichnen
- 11Anwendungsfalldiagramme
- 12Anwendungsfall-Beispiele
- 13Aktivitätsdiagramme
- 14Aktivitätsbeispiele
- 15Zustandsdiagramme
- 16Zustandsdiagramm-Beispiele
- 17Komponentendiagramme
- 18Komponenten-Beispiele
- 19Komponentendiagramm zeichnen
- 20Komponenten-Symbole
- 21Verteilungsdiagramme
- 22Verteilungsbeispiele
- 23Objektdiagramme
- 24Paketdiagramme
- 25Kompositionsstrukturdiagramme
- 26Kommunikationsdiagramme
- 27Sequenz vs Kommunikation
- 28Zeitverlaufsdiagramme
- 29Interaktionsübersichtsdiagramme
- 30Profildiagramme
- 31UML mit KI
- 32E-Commerce-Beispiel
- 33Banken-Beispiel
- 34Microservices-Beispiel
- 35AWS-Beispiel
Passend dazu
Verhaltensdiagramme
Grundlagen
Verhaltensdiagramme
Modellierungspraxis
Verhaltensdiagramme
Modellierungspraxis