UML-Aktivitätsdiagramme (im Englischen activity diagrams) gehören zur Gruppe der Verhaltensdiagramme in der UML. Während ein Strukturdiagramm den Zustand eines Systems erfasst, also die vorhandenen Objekte und deren Hierarchien sowie Verbindungen untereinander zu einem bestimmten Zeitpunkt, beschreiben Verhaltensdiagramme den chronologischen Flussder Datenströme. Neben dem Aktivitätsdiagramm gehören das Anwendungsfalldiagramm (use case diagram) und das Zustandsautomatendiagramm (state machine diagram) zu dieser Gruppe. Aktivitätsdiagramme ähneln in ihrer Verwendung und Notation den Flussdiagrammen (besonders Programmablaufpläne), sind aber auf die objektorientierte Programmierung zugeschnitten.
Grundsätzlich kann man sagen: Das Aktivitätsdiagramm modelliert den Ablauf von Aktivitäten. Das können Prozesse innerhalb eines Computersystems, Use-Case-Abläufe oder Geschäftsabläufe sein. Die Aktivität, z. B. „ein Käse-Omelette zubereiten“, zerfällt dabei in viele kleine Teil-Aktivitäten: die Aktionen. Diese können etwa chronologisch stattfinden. Eine Aktion wäre beispielsweise „Eier aufschlagen“, gefolgt von der Aktion „Eier mit Gewürzen verquirlen“. Die erste Aktion bedingt die zweite. Sie sind sozusagen im Fluss.
Auch parallele Abläufe sind damit darstellbar. Kümmern sich zwei Leute um die Zubereitung eines Omeletts, ermöglicht das die gleichzeitigen Aktionen „Eier aufschlagen“ und „Kräuter hacken“. Somit hat die Aktivität zwei Startpunkte. Von diesen Punkten aus starten die Personen mit ihrer Aktivität. Dabei gehen sie von einer Aktion zur nächsten über. In einem Anwendungsfall wären diese Personen Akteure. Im Aktivitätsdiagramm spielen sie zwar eine wichtige Rolle, erhalten aber keine eigene Notation. Sie bewegen sich von einem Startpunkt zu einem Endpunkt und durchqueren dabei Kontroll- oder Objektflüsse, um von einer Aktion zur nächsten zu gelangen. Dazwischen gibt es gelegentliche Schranken, sogenannte Pins, die sie nur unter bestimmten Bedingungen durchlassen, z. B. wenn beide Personen anwesend sind.
Im Aktivitätsdiagramm bezeichnet man diese „Personen“ als Token. Es gibt zwei Arten von Token im UML-Aktivitätsdiagramm: Die erste ist das Objekttoken, das eine Information an den Aktionsknoten übermittelt, dort eine Aktion startet und (soweit vorgegeben) das Ergebnis als Wert speichert. Entsprechen Ergebnis und Token den Vorgaben, die in einem Pin festgelegt wurden, schickt dieser Ausgabepin das Objekttoken über einen Objektfluss zur nächsten Aktion. Bevor das Token diese Aktion starten kann, muss es den Vorgaben des Eingabepins entsprechen. Kontrolltoken hingegen wandern nur über Kontrollflüsse und dienen als Marker. Sie starten eine Aktion, übermitteln aber keine Daten.
Im beschriebenen Beispiel „Käse-Omelette zubereiten“ verwenden wir das Aktivitätsdiagramm, um den zeitlichen Ablauf eines Anwendungsfalls darzustellen. Anwendungsfalldiagramme hingegen stellen die Systemvoraussetzungen dar, die im Anwendungsfall gegeben sein sollten.
UML-2-Aktivitätsdiagramme können Sie natürlich nicht nur für Anwendungsfälle des täglichen Lebens nutzen. Sie helfen Ihnen in erster Linie dabei, die Abläufe in Software-Systemen strukturiert darzustellen. Damit machen beispielsweise Wirtschaftsanalysten Vorgaben für Software-Entwickler. Über die grafische Sprache tauschen sich die Experten auf einer allgemein verständlichen und übersichtlichen Ebene aus. Sind alle Abläufe geklärt und Fehler ausgebügelt, dient das Aktivitätsdiagramm als saubere Vorlage für die Programmierung.
Binden Sie ein passendes UML-Tool in Ihre integrierte Entwicklungsumgebung ein, kann das Diagramm mittels XML-Konvertierung in eine Programmiersprache als Code-Framework agieren.
Die Object Management Group (OMG), die die UML spezifiziert, fasst die möglichen Aufgaben von UML-2-Aktivitätsdiagrammen wie folgt zusammen:
- Prozedurale Computerprogrammierung, die Aktivitäten Hierarchien zuweist
- In objektorientierten Modellen agieren Aktivitäten als Methoden, die Abläufe näher beschreiben
- Zur Darstellung von Workflows und Geschäftsprozessen
- Bei computergestützten Anwendungssystemen spezifizieren Aktivitäten Prozesse auf Systemlevel