First page Back Continue Last page Overview Graphics

Aktivitätsdiagramm


Notes:

So kann ein einfachen Aktivitätsdiagramm aussehen.
Ausgehend von einem (Pseudo-)Initialknoten läuft der Prozess entlang der Pfeile. Das Diagramm erzwingt also nur eine recht grundsätzliche Einhaltung irgendwelcher Reihenfolgen, aber insbesondere bei Nebenläufigkeiten, ausgelöst durch eine Aufspaltung (fork), kann sich der Ausführende selbst aussuchen, in welcher Reihenfolge er die Schritte bearbeiten möchte. Die Nebenläufigkeit im Diagramm bedeutet also nebenläufige Abarbeitbarkeit, keineswegs gezwungenermaßen Nebenläufigkeit als solche.
An dieser Stelle ist eine Anmerkung angebracht: Es ist hier zu unterscheiden, ob das Aktivitätsdiagramm Geschäftsprozesse bzw. Workflows darstellt, oder ob hier prozedurale Logik abgebildet wird. Im letzteren Fall kann man davon ausgehen, dass die Nebenläufigkeit auch tatsächlich implementiert wird. Sei es, weil mehrere Threads auf mehreren Prozessoren (oder Computern) abgearbeitet werden oder auch nur, weil auf ein und demselben Prozessor mehrere Threads gestartet werden, man kann in jedem Fall davon ausgehen, dass Nebenläufiges auch tatsächlich parallel bearbeitet wird.

technische Anmerkung: Ganz im Sinne des oben Gesagten kann man die Symbole des Diagramms auch technisch interpretieren: Der Join, an dem die Prozesse wieder zusammengeführt werden, erlaubt die weitere Abarbeitung des Diagramms erst dann, wenn alle zu vereinenenden Teilprozesse „bei ihm angelangt sind“. Konkret gesagt: Der Join gibt das Bearbeitungstoken erst aus, wenn von allen zu vereinenden Prozessen ein Token einlangt.

In diesem Zusammenhang ist auch der Unterschied zwischen Join und Zusammenführung zu erwähnen: Während der Join eine Zusammenführung von nebenläufigen Prozessen symbolisiert, versteht man unter einer Zusammenführung das Gegenstück zu einer Entscheidung: Die Codeäste, die durch die Bedingung entstanden sind, sind an dieser Stelle fertig abgearbeitet und es geht wieder mit nur einem Strang weiter. Natürlich sind „leere“ Äste, also solche ohne eigene Aktivitäten erlaubt. In diesem Fall symbolisiert die Entscheidung eine Option: Code wird ausgeführt oder nicht.