04. Aktivitätsdiagramm
Aktivitätsdiagramme bieten die Möglichkeit, Prozesse abzubilden, die sich aus mehreren Aktionen zusammensetzen.
Eine Aktion ist ein elementarer Vorgang, der nicht weiter zerlegt werden kann oder soll. Eine Aktivität ist eine Folge von Aktionen, die ein bestimmtes Ergebnis liefern und unter einem gemeinsamen Namen zusammengefasst werden. In dieser Hinsicht ähneln Aktivitätsdiagramme den Programmablaufplänen, die in der EDV zur Darstellung von Programmabläufen dienen.
Die wesentlichen Elemente eines Aktivitätsdiagramms sind
- Aktionen
- Steuerungselemente
- Objektknoten
- Verbindungskanten
Als Symbol für eine Aktion verwendet die UML ein Rechteck mit abgerundeten Ecken:
Abläufe ergeben sich durch die Verknüpfung mehrerer Aktionen durch so genannte Kanten. Dabei handelt es sich um Verbindungspfeile (gerichtete Kanten), die eine Reihenfolge der durchzuführenden Aktionen festlegen.
Die Ablaufsteuerung erfolgt über Bedingungen, die beispielsweise zur Verzweigung oder Zusammenführung von Teilabläufen führen. Damit sind auch parallele Prozesse in Aktivitätsdiagrammen darstellbar.
Beispiel für Verzweigung:
Objektknoten repräsentieren Daten oder Akteure, die im Rahmen einer Aktivität von Bedeutung sind. Sie werden durch ein Rechteck repräsentiert, das mit dem Namen des Objektes beschriftet ist.
Beispiel:
Aktionen
Durch die Verknüpfung von Aktionen über gerichtete Kanten (Pfeile) entsteht eine zeitlich geordnete Folge von Aktionen:
Wenn man eine Folge von Aktionen mit einem Rahmen versieht (einschließlich Beschriftung), werden Aktionen zu einer Aktivität zusammengefasst:
Der Text innerhalb des Aktionssymbols ist beliebig; es ist somit auch möglich, hier eine Ablaufbeschreibung z.B. mit Pseudocode einzufügen. Wenn diese Ablaufbeschreibung allerdings zu umfangreich wird, sollte die Aktion besser als eigene Aktivität modelliert werden.
Steuerungselemente
Steuerungselemente regeln die zeitliche und logische Abfolge von Aktionen im Rahmen einer Aktivität. Neben Start und Ende bilden sie Verzweigungen und Verbindungen von Abläufen und lenken parallele Vorgänge.
Startknoten
Der Startknoten markiert den Beginn eines Ablaufs in einem Aktivitätsdiagramm. Von einem Startknoten dürfen beliebig viele Kanten ausgehen, jedoch keine zu ihm hinführen!
Wenn in einem Aktivitätsdiagramm mehrere Startknoten vorkommen, so kann der Beginn alternativ oder auch parallel erfolgen. Der Eintrittspunkt in ein Aktivitätsdiagramm kann auch ein Objektknoten sein.
Endknoten
Ein Endknoten markiert das Ende eines Ablaufs. Dabei wird zwischen dem Ende eines Teilablaufs und dem Ende der gesamten
Aktivität unterschieden. Der Endknoten für Aktivitäten: TODO: GRAFIK
, der für Teilabläufe: TODO: GRAFIK
Wenn nur ein Teilablauf beendet ist, können andere (parallele) Abläufe der Aktivität weiter laufen.
Splitting und Synchronisation
Die Abläufe in einem Aktivitätsdiagramm können geteilt und wieder zusammen geführt werden. Durch die Teilung (Splitting) entstehen parallele Abläufe, die zu zeitgleichen Aktivitäten führen. Umgekehrt werden parallele Abläufe durch Synchronisation wieder zu einer gemeinsamen Folge von Aktionen zusammen geführt.
Splitting | Synchronisation |
---|---|
Nach Ausführung von Aktion 1 leiten Aktion 2 und Aktion 3 zeitgleiche, voneinander unabhängige Abläufe ein. Der Balken bewirkt die Auftrennung. | Die zunächst parallel verlaufenden Aktionen A und B werden durch die Synchronisation am Balken zusammen geführt. Anschließend wird Aktion C ausgeführt. Bevor Aktion C ausgeführt werden kann, müssen beide Vorgänger (Aktion A und Aktion B) beendet sein! |
Das Beispiel “Frühstück vorbereiten” soll Splitting und Synchronisation veranschaulichen:
Verzweigung
Verzweigungen dienen in Aktivitätsdiagrammen dazu, alternative Abläufe darzustellen.
Verbindung
Ein Verbindungsknoten führt mehrere Kanten zu einem einzigen Knoten zusammen:
Im Gegensatz zur Synchronisation kann Aktion C starten, wenn zumindest eine der beiden Aktionen A oder B beendet sind. Bei der Synchronisation müssen Aktion A und Aktion B zwingend beide beendet sein, bevor Aktion C startet.
Objektknoten
Mithilfe von Objektknoten werden Daten und Werte in eine Aktivität eingebracht. Die Darstellung erfolgt über ein Rechteck, das mit einer Beschriftung zur Kennzeichnung des Knotentyps versehen wird:
Objektknoten können als Eingangs einer Aktion auftreten. Sie liefern dann Daten oder Werte, die erforderlich sind, um die betreffende Aktion auszuführen:
Für die Durchführung der Aktion “Kaffee zubereiten” wird ein Kaffeefilter-Objekt benötigt.
Ebenso können Aktionen Ergebnisse in Form von Daten oder Werten haben. Dann ergibt sich aus einer Aktion ein Objektknoten:
Für einen Objektknoten kann auch ein bestimmter Zustand angegeben werden, der in eckigen Klammern hinter dem Knotentyp angegeben wird:
Kontrollfluss/Objektfluss
Kontrollfluss
Als Kontrollfluss bezeichnet man eine Kante (Pfeillinie), die entweder 2 Aktionen oder eine Aktion mit einem Steuerungselement verbindet:
Objektfluss
Ein Objektfluss ist eine Kante, die mindestens an einem Ende mit einem Objektknoten verbunden ist:
Hier sind alle Kanten Objektflüsse (trotz des Steuerelementes zwischen Aktion 1 und Aktion 2 bzw. Aktion 3 erfolgt die Verbindung der Aktionen über einen Objektknoten).
Bedingungen
Kanten können an Bedingungen geknüpft werden. Ein Übergang von einer Aktion zur nächsten ist nur dann möglich, wenn die Bedingung erfüllt ist. Die Bedingung wird in eckigen Klammern notiert:
Übersichtlicher ist es, Bedingungen über Verzweigungen zu realisieren. Dadurch kann es auch nicht zu dem Fall kommen, dass eine Aktivität aufgrund einer niemals wahr werden - den Bedingung irgendwo “hängen bleibt” und nicht ordnungsgemäß beendet wird.
Verantwortlichkeitsbereiche
Aktivitätsdiagramme können in Verantwortlichkeitsbereiche (swimlanes) aufgeteilt werden. Die einzelnen Verantwortlichkeitsbereiche werden durch senkrechte Linien optisch voneinander getrennt. Jeder Verantwortlichkeitsbereich stellt dabei eine Aktivität dar, die wiederum aus einzelnen Aktionen bestehen können. Bei der Aufteilung des Aktivitätsdiagramms in Verantwortlichkeitsbereiche lassen sich auch die Aktivitäten unterschiedlicher Objekte in einem einzigen Diagramm darstellen:
Das Aktivitätsdiagramm zeigt das Verhalten der beiden beteiligten Objekte konto1
und konto2
.