Aktivitätsdiagramm
Zweck
Aktivitätsdiagramme sind Diagramme zur Flussmodellierung. Sie stellen die Aktivitäten eines Systems dar, die Aktionen, aus den die Aktivitäten sich zusammensetzen und den Fluss durch die Aktivitäten. Es kann Kontrollfluss und Datenfluss modelliert werden.
Mit Aktivitätsdiagrammen können komplexe Abläufe in einem System modelliert werden (Geschäftsprozesse, Workflows).
Da Aktivitäten aus Aktionen und deren zeitlicher Verknüpfung bestehen, können sie auch zur Modellierung der internen Logik komplexer Operationen verwendet werden und somit Algorithmen visualisieren.
Aktivitätsdiagramme können in Verantwortungsbereiche gegliedert werden. Damit können die Aktionen bestimmten Modellelementen, wie Klassen oder Komponenten zugeordnet werden.
Notation
Aktivität (Activity)
Eine Aktivität besteht aus Knoten (Aktivitäten, Aktionen, Kontroll- und Objektknoten) und Kanten (Pfeilen), die den Kontrollfluss durch die Aktivität darstellen. Die Aktivität wird als abgerundetes Rechteck dargestellt. In der linken, oberen Ecke steht der Name der Aktivität, gefolgt vom Eingangsparameter und Typ. Die Rechtecke an beiden Seiten geben die Eingangs- bzw. Ausgangsparameter an. Die Symbole in der Aktivität stellen die Aktionen dar und die Pfeile den Kontrollfluss.
Aktion (Action)
Eine Aktion ist in der UML eine nicht weiter zerlegbare Funktion. Aktionen sind in Aktivitäten (=Aktivitätsdiagrammen) enthalten. Die UML 2.0 unterscheidet verschiedene Typen von Aktionen.
Signal (Send signal action, Accept event action)
Mit diesen Symbolen kann das Senden und Empfangen von Signalen bzw. Ereignissen dargestellt werden.
Zeitereignis (Accept time event action)
Über diese Symbol wird ausgedrückt, dass eine Aktion zeitgesteuert angestoßen wird.
Kontrollknoten
Kontrollknoten werden als Kontrollstrukturen in einem Flussgraph angewendet.
Entscheidung und Zusammenführung
Bei der Entscheidung wird nach Eintreffen des Tokens a entweder nach b oder nach c verzweigt. Die Bedingung, die erfüllt sein muss, kann als Ausdruck in eckigen Klammern an den Pfeilen angegeben werden. Bei der Zusammenführung wird nach Eintreffen der Token a oder b nach c verzweigt.
Splitting, Synchronisation
Bei einem Splitting-Knoten wird in mehrere parallele Threads verzweigt (wenn a da ist, feuern b und c). Ein Synchronisationsknoten synchronisiert mehrere Threads (wenn a und b da sind, feuert c).
Startknoten, Endknoten, Ablaufende
Ein Startknoten (Initial Node) stellt den Beginn eines Ablaufes dar. Ein Endknoten (Activity Final Node) beendet eine Aktivität vollständig. Ein Ablaufende (Flow Final Node) terminiert einen Zweig einer Aktivität, die Aktivität selbst läuft weiter.
Pfeil, Kante
Ein Pfeil beschreibt den Fluss zwischen den verbundenen Elementen. In einer eckigen Klammer kann eine Bedingung angegeben werden, die erfüllt sein muss, damit die Kante überquert wird.
Objektknoten
Objektknoten können in Aktivitätsdiagrammen Objekte oder Daten repräsentieren. Sie können als unabhängige Knoten in einem Diagramm benutzt werden, bzw. als Parameter für Aktionen (Input, Output Pin). Beide Darstellungen sind äquivalent. Im Bild oben ist a als Objekt eingezeichnet; im unteren Bild ist a Ausgangsparameter der linken Aktion und Eingangsparameter der rechten.
Kanten
Kanten verbinden die Aktionen in einem Diagramm und stellen den Fluss dar. Kanten, die Kontrollfluss modellieren, verbinden Aktionen direkt; Objektflusskanten verbinden die Pins der beteiligten Aktionen.
Verantwortungsbereiche (Partitions)
Aktivitäten können komplexe Abläufe darstellen, die durch unterschiedliche Modellelemente ausgeführt werden, bzw. für die unterschiedliche Elemente verantwortlich sind. Zur Zuordnung der Aktionen einer Aktivität zu den verantwortlichen Elementen können Aktivitätsdiagramme in Partitionen (Activity Partition) unterteilt werden. Da ein entsprechend aufgeteiltes Diagramm wie ein in Bahnen eingeteiltes Schwimmbecken aussieht, werden die Activity Partitions auch swimlanes genannt.
Dieses Bild zeigt ein Aktivitätsdiagramm, das in die Bereiche Partition 1 und Partition 2 unterteilt ist. Die Aktionen a1 und a3 gehören zu der Partition 1; die Aktion 2 gehört zu der Partition 2. Partitionen können senkrecht und waagrecht angelegt werden.
Prinzip der Aktivitätsdiagramme
Aktivitätsdiagramme zeigen den Ablauf von Aktivitäten. Sie definieren die Aktionen, aus den sich Aktivitäten zusammensetzen und die zeitliche Reihenfolge ihrer Ausführung. Verzweigungen des Kontrollflusses und gleichzeitig ablaufende, parallele Zweige sind möglich. Um die ausgeführten Aktionen verfolgen zu können, werden die Zweige eines Aktivitätsdiagramms mit Tokens belegt. Ein Token ist eine Marke, die den Kontrollfluss markiert. In jedem Thread existiert ein Token. Tokens besitzen kein Symbol in der UML. Sie sind virtuelle Elemente, die den Kontrollfluss markieren.
Dieses Diagramm stellt das Prinzip des Token-Modells dar. Nachdem der Ablauf gestartet wurde, wird das erste Token, links im Bild, erzeugt. Danach wird die Aktion a1 ausgeführt und das Token auf den Ausgang von a1 gelegt. Durch die Verzweigung in die beiden Threads p1 und p2 wird am Anfang beider Threads je ein Token gesetzt. Die Aktionen p1 und p2 werden ausgeführt; die Tokens werden auf die Ausgänge von p1 und p2 gelegt. Wenn beide Tokens da sind, wird das Eingangstoken für a2 gestartet. A2 wird ausgeführt, das Token auf den Ausgang von a2 gelegt, die Aktivität wird beendet und das Token vernichtet.
Anwendungsbereich
Aktivitätsdiagramme werden zur Modellierung von Abläufen benutzt. Es werden die einzelnen Verfahrensschritte von Aktivitäten und die Reihenfolge in der sie ausgeführt werden dargestellt. Sie können von der Modellierung von Geschäftsprozessen bis zur Visualisierung von Kontrollflüssen benutzt werden.
Aktivitätsdiagramme können in einem Projekt überall verwendet werden, wo Verhalten beschrieben werden muss, bzw. wo Datenflüsse oder Kontrollflüsse modelliert werden sollen.
Zusammenhang
Da Aktivitätsdiagramme sehr vielfältig einsetzbar sind, können vielfältige Beziehungen zwischen Aktivitätsdiagrammen und anderen Diagrammen der UML bestehen.
Aktivitätsdiagramme können die Abläufe von Anwendungsfällen aus Use Case Modellen beschreiben. Sie können verwendet werden, um z. B. den Ablauf eines Geschäftsprozesses zu modellieren.
Da die Darstellung der Kontrollstrukturen höherer Programmiersprachen in der Notation der Aktivitätsdiagramme enthalten ist, können sie auch zur Spezifikation von Algorithmen verwendet werden.
Neu in UML 2.0
Die Aktivitätsdiagramme erfuhren in der UML 2.0 große Veränderungen gegenüber der UML 1.x.
In der UML 1.x waren die Aktivitätsdiagramme eine spezielle Form der Zustandsdiagramme. In der UML 2.0 sind sie eigenständige Diagramme.
Einige Begriffe der UML 1.x wurden weiterverwendet, bekamen aber eine neue Bedeutung. Ein Aktivitätsdiagramm in UML 2.0 beschreibt eine Aktivität, die Teilschritte werden Aktionen genannt.
Beispiel
Bei der Modellierung des Beispiels wurden folgende Annahmen getroffen:
Zur Darstellung der externen Ereignisse, die auf die Aktivitäten einwirken, sind die Akteure, die diese auslösen, in den Diagrammen enthalten.
Die Diagramme zeigen den Kontrollfluss, keinen Daten- oder Objektfluss.
Aktivitätsdiagramm EssenZahlen
Hier wurden Verantwortungsbereiche angegeben. Das Diagramm hat zwei Startpunkte, da die Aktionen "Essen eintippen" und "Karte einschieben" parallel erfolgen können. Die beiden Zweige werden auf dem folgenden Synchronisationsknoten miteinander synchronisiert.
Aktivitätsdiagramm KarteLaden
Das folgende Diagramm wurde ohne Verantwortungbereiche modelliert.