Heute geht die UML-Artikelserie in die vierte Runde. Und das Thema werden die Aktivitätsdiagramme sein. Auch diesmal beschreibe ich diesen Diagrammtyp kurz, nenne die wichtigsten Anwendungsgebiete und stelle die wichtigsten Elemente eines Aktivitätsdiagramms anhand eines einfach gehaltenen Beispiels vor.

Der letzte Beitrag der UML-Artikelserie, in dem es über das Klassendiagramm ging, ist etwas länger geworden, als ich das für diese Kurzserie vorgesehen hatte. Über die Aktivitätsdiagramme habe ich heute nicht so viel wie über die Klassendiagramme zu schreiben, daher sollte es diesmal wieder kürzer werden.

Was ist ein Aktivitätsdiagramm und nützt es mir?

Im Gegensatz zu den bisher vorgestellten Diagrammtypen Anwendungsfalldiagramm und Klassendiagramm, welche unter Strukturdiagramme einzuordnen sind, ist das Aktivitätsdiagramm eine Art der Verhaltensdiagramme. Andere Bezeichnungen, die genau das selbe meinen, sind “Ablaufdiagramm” und für englisch affine Leser auch “flow chart”.

Wie der Name schon andeutet, beschreibt ein Aktivitätsdiagramm einen Ablauf, wobei ein Ablauf zum Beispiel ein Anwendungsfall sein kann, welcher im Detail angeschaut werden soll. Aufgrund der Struktur des Aktivitätsdiagramms lassen sich damit zum Teil sehr komplizierte Abläufe grafisch ansprechend aufbereiten und erklären.

Als “Aktivität” wird seit UML 2.0 das ganze Diagramm mit allen Einzelelementen bezeichnet. Beispiele für eine Aktivität aus dem bereits vorgestellten Anwendungsfalldiagramm wären zum Beispiel “Artikel kommentieren” oder “Artikel schreiben”. Die Darlegung, wie nun ein Artikel im Detail kommentiert wird, welche Aktion welcher folgt, ist die Aufgabe eines Aktivitätsdiagramms. Darin werden die Aktionen als Knoten bezeichnet. Vereinfacht betrachtet besteht eine Aktivität aus Knoten und Flüssen, welche die Knoten miteinander verbinden.

Damit kommen wir auch schon zu einigen Besonderheiten und Details eines Aktivitätsdiagramms: Wenn ein ganzes Aktivitätsdiagramm nun Aktivität heißt, wie wird dann der einzelne Ablaufschritt genannt? Ich habe diesen Begriff bereits im vorherigen Abschnitt verwendet: “Aktion”. Die Aktion stellt im
Allgemeinen die kleinste und simpelste Einheit eines Aktivitätsdiagramms dar. Jedoch kann eine Aktion auch eine weitere Aktivität aufrufen, worin der Informationsfluss genauer gezeigt ist. Jede Aktion hat mindestens einen eingehenden und einen ausgehenden Kontrollfluss. Im Falle mehrerer eingehender Kontrollflüsse müssen alle Flüsse zur gleichen Zeit verfügbar sein, damit die Aktion beginnen kann. Bei mehreren Ausgängen gilt das gleiche in Grün: erst wenn alle Ausgänge “bereit” sind, dann werden auch alle zum selben Zeitpunkt ausgegeben.

Neben der Aktion als Knoten existieren weitere wichtige Knoten: Kontroll -und Objektknoten. Doch dazu später mehr.

Wie bereits erwähnt, werden die Knoten durch Flüsse verbunden. Es werden zwei grundlegende Flussarten unterschieden: die Kontrollflüsse und die Objektflüsse. Aber bevor es zu viel trockene Theorie wird, hier erstmal das Beispiel:

Aktivitätsdiagramm: Blogartikel schreiben

Beispiel: Aktivitätsdiagramm

Das Aktivitätsdiagramm habe ich mit einer tollen Browseranwendung aus der WEB2.0 Ecke erstellt: cacoo.com. Ein Tipp für alle, die schnell ein einfaches UML-Diagramm zusammenklicken wollen und es nicht für zum Beispiel einen Kunden bestimmt ist.

Natürlich lasse ich es mir nicht nehmen, auch diesmal ein Diagramm zu einem Weblog-Thema zu erstellen. Diesmal habe ich den Anwendungsfall “Blogartikel schreiben” ausgewählt und mit einigen Elementen des Aktivitätsdiagramms veranschaulicht.

Elemente eines Aktivitätsdiagramms

Im ersten Abschnitt bin ich bereits etwas auf die wichtigsten Elemente eingegangen, nun möchte ich auch etwas zur Notation und Darstellung in UML loswerden. Fangen wir mit der Aktivität an sich an:

Die Aktivität, bzw. der Aktivitätsname “Blogartikel schreiben” wird, wie im Beispiel gezeigt, in die linke obere Ecke geschrieben. Meist wird die ganze Aktivität von einem Rahmen umgeben, welcher die Aktivität von seiner Umgebung abgrenzen soll. Häufig liegen keine Diagrammelemente auf dem Rahmen, im Beispiel ist es auch kein Fehler. Wird ein rechteckiger Knoten auf den Rahmen gelegt, dann stellt es einen Eingangsparameter dar. Also ist die “Idee” der Eingangsparameter für die Aktivität “Blogartikel schreiben”.

Neben der Funktion als Eingangsparameter, deutet der Knoten “Idee” mit seinem rechteckigen Rahmen an, dass er ein Objektknoten ist. Er gibt an, dass in dem Ablauf Objekte verwickelt sind. Von einem Objekt geht kein Kontrollfluss, sondern ein Objektfluss aus, es werden also Objekte transportiert. Meines Wissens nach wird graphisch zwischen Objektfluss und Kontrollfluss nicht direkt unterschieden.

Verfolgen wir das Diagramm weiter, so stoßen wir auf einen Knoten mit abgerundeten Ecken. Ein solcher Knoten ist eine Aktion. Wie bereits angedeutet, ist die Aktion die einfachste Einheit eines Aktivitätsdiagramms. Jedoch kann sie auch durch ein weiteres Aktivitätsdiagramm beschrieben werden und darauf verweisen, was durch eine kleine “Mistgabel” im Aktionsknoten gekennzeichnet wird. Ein derartige Mistgabel habe ich bei einer der sicherlich schwersten Aktionen hinzugefügt: “Wissen beschaffen”. Dieser Aktion müsste ich nur noch ein Aktivitätsdiagramm hinzufügen und schon könnte jeder Unmengen an Wissen beschaffen :-) .

Eine Raute, wie sie zwischen den zwei Aktionsknoten “Thema prüfen” und “Übersicht erstellen” aufgeführt ist, impliziert eine Entscheidung. Sie ist ein Kontrollknoten und gehört meiner Ansicht nach zu den Elementen, welche ein Aktivitätsdiagramm erst richtig interessant machen.

UML: Startknoten, Endknoten, Ablaufende

Elemente: Startknoten, Endknoten, Ablaufende

Weitere ganz wichtige Elemente sind der Startknoten, ein ausgefüllter Kreis, der Endknoten, symbolisiert durch einen ausgefüllten Kreis in einem Ring und ein Ablaufende, einem durchgestrichenem leeren Kreis. Die ersten Beiden erklären sich von selbst. Im Beispiel “Blogartikel schreiben” habe ich kein Startknoten, weil die Idee als Parameter übergeben wird und der Fluss an dieser Stelle beginnt. Ein Endknoten beendet im Gegensatz zum Ablaufende den gesamten Fluss und alle Aktionen, das Ablaufende jedoch nur einen einzelnen Fluss.

UML-Element: Konnektoren

Element: Konnektoren im Aktivitätsdiagramm

Möchte man einen komplizierten Ablauf mit Hilfe eines Aktivitätsdiagramms veranschaulichen, so wird es schnell ganz unübersichtlich. Um den Chaos in Grenzen zu halten und ewig lange Kontrollfluss-Linien zu vermeiden, gibt es die Konnektoren. Dabei endet ein Fluss an einem Marker, zum Beispiel einem “A”, und geht an einer anderen Stelle von einem “A” aus weiter. Die Marker werden dafür in einfache Kreise geschrieben. Zudem sind die Konnektoren auch dafür gut, wenn ein Diagramm nicht ganz auf ein Blatt passt und auf einem anderen weitergehen soll, dann können ebenfalls Konnektoren eingesetzt werden.

Es gibt noch viele weitere Elemente von Aktivitätsdiagrammen, die durch ihre Zeichen mehr oder weniger selbsterklärend sind. Für den ersten Einstieg sollten die hier aufgeführten aber zunächst reichen. Ergänzungen und Kommentare können gerne hinterlassen werden.

Ende gut alles gut?

Mit diesem Artikel geht meine Mini-Serie zu UML-Diagrammen zu Ende. Während ich die Artikel geschrieben habe, sind mir etliche weitere Artikelideen eingefallen, die ich eventuell noch verwirklichen möchte.

Nun hoffe ich, dass es euch gefallen hat und würde mich über Kommentare und Anregungen freuen.

Scribtee - Designer T-Shirts

Elemente eines Aktivitätsdiagramms

Im ersten Abschnitt bin ich bereits etwas auf die wichtigsten Elemente eingegangen, nun möchte ich auch etwas zur Notation und Darstellung in UML loswerden. Fangen wir mit der Aktivität an sich an:

Die Aktivität, bzw. der Aktivitätsname “Blogartikel schreiben” wird, wie im Beispiel gezeigt, in die linke obere Ecke geschrieben. Meist wird die ganze Aktivität von einem Rahmen umgeben, welcher die Aktivität von seiner Umgebung abgrenzen soll. Häufig liegen keine Diagrammelemente auf dem Rahmen, im Beispiel ist es auch kein Fehler. Wird ein rechteckiger Knoten auf den Rahmen gelegt, dann stellt es einen Eingangsparameter dar. Also ist die “Idee” der Eingangsparameter für die Aktivität “Blogartikel schreiben”.

Neben der Funktion als Eingangsparameter, deutet der Knoten “Idee” mit seinem rechteckigen Rahmen an, dass er ein Objektknoten ist. Er gibt an, dass in dem Ablauf Objekte verwickelt sind. Von einem Objekt geht kein Kontrollfluss, sondern ein Objektfluss aus, es werden also Objekte transportiert. Meines Wissens nach wird graphisch zwischen Objektfluss und Kontrollfluss nicht direkt unterschieden.

Verfolgen wir das Diagramm weiter, so stoßen wir auf einen Knoten mit abgerundeten Ecken. Ein solcher Knoten ist eine Aktion. Wie bereits angedeutet, ist die Aktion die einfachste Einheit eines Aktivitätsdiagramms. Jedoch kann sie auch durch ein weiteres Aktivitätsdiagramm beschrieben werden und darauf verweisen, was durch eine kleine “Mistgabel” im Aktionsknoten gekennzeichnet wird. Ein derartige Mistgabel habe ich bei einer der sicherlich schwersten Aktionen hinzugefügt: “Wissen beschaffen”. Dieser Aktion müsste ich nur noch ein Aktivitätsdiagramm hinzufügen und schon könnte jeder Unmengen an Wissen beschaffen :-) .

Eine Raute, wie sie zwischen den zwei Aktionsknoten “Thema prüfen” und “Übersicht erstellen” aufgeführt ist, impliziert eine Entscheidung. Sie ist ein Kontrollknoten und gehört meiner Ansicht nach zu den Elementen, welche ein Aktivitätsdiagramm erst richtig interessant machen.

UML: Startknoten, Endknoten, Ablaufende

Elemente: Startknoten, Endknoten, Ablaufende

Weitere ganz wichtige Elemente sind der Startknoten, ein ausgefüllter Kreis, der Endknoten, symbolisiert durch einen ausgefüllten Kreis in einem Ring und ein Ablaufende, einem durchgestrichenem leeren Kreis. Die ersten Beiden erklären sich von selbst. Im Beispiel “Blogartikel schreiben” habe ich kein Startknoten, weil die Idee als Parameter übergeben wird und der Fluss an dieser Stelle beginnt. Ein Endknoten beendet im Gegensatz zum Ablaufende den gesamten Fluss und alle Aktionen, das Ablaufende jedoch nur einen einzelnen Fluss.

UML-Element: Konnektoren

Element: Konnektoren im Aktivitätsdiagramm

Möchte man einen komplizierten Ablauf mit Hilfe eines Aktivitätsdiagramms veranschaulichen, so wird es schnell ganz unübersichtlich. Um den Chaos in Grenzen zu halten und ewig lange Kontrollfluss-Linien zu vermeiden, gibt es die Konnektoren. Dabei endet ein Fluss an einem Marker, zum Beispiel einem “A”, und geht an einer anderen Stelle von einem “A” aus weiter. Die Marker werden dafür in einfache Kreise geschrieben. Zudem sind die Konnektoren auch dafür gut, wenn ein Diagramm nicht ganz auf ein Blatt passt und auf einem anderen weitergehen soll, dann können ebenfalls Konnektoren eingesetzt werden.

Es gibt noch viele weitere Elemente von Aktivitätsdiagrammen, die durch ihre Zeichen mehr oder weniger selbsterklärend sind. Für den ersten Einstieg sollten die hier aufgeführten aber zunächst reichen. Ergänzungen und Kommentare können gerne hinterlassen werden.

Ende gut alles gut?

Mit diesem Artikel geht meine Mini-Serie zu UML-Diagrammen zu Ende. Während ich die Artikel geschrieben habe, sind mir etliche weitere Artikelideen eingefallen, die ich eventuell noch verwirklichen möchte.

Nun hoffe ich, dass es euch gefallen hat und würde mich über Kommentare und Anregungen freuen.

-->

Artikel aus der selben Kategorie:

Bisher nur ein Kommentar zu “UML: Aktivitätsdiagramm (Teil 4)”

  1. 1. M. Schwab

    Kommentar vom 3 März 2010 um 01:05

    Klasse Sache – dank dir für deine Arbeit!


Meinungsfreiheit für alle!