# Aktivitätsdiagramm

* Strukturdiagramme der UML
* Klassendiagramm
* Komponentendiagramm
* Kompositionsstrukturdiagramm
* Objektdiagramm
* Paketdiagramm
* Profildiagramm
* Verteilungsdiagramm
* Verhaltensdiagramme der UML
* Aktivitätsdiagramm
* Anwendungsfalldiagramm
* Interaktionsübersichtsdiagramm
* Kommunikationsdiagramm
* Sequenzdiagramm
* Zeitverlaufsdiagramm
* Zustandsdiagramm
Ein Aktivitätsdiagramm (englisch activity diagram) ist ein Verhaltensdiagramm der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme, und stellt die Vernetzung von elementaren Aktionen und deren Verbindungen mit Kontroll- und Datenflüssen grafisch dar.

## Allgemein

Mit einem Aktivitätsdiagramm wird meist der Ablauf eines Anwendungsfalls beschrieben, es eignet sich aber zur Modellierung aller Aktivitäten innerhalb eines Systems.
In der UML2 ist die Semantik der Aktivitätsdiagramme weiterhin der von Petri-Netzen nahe und ermöglicht die Darstellung von nebenläufigen Systemen durch die Einbindung zusätzlicher asynchroner Kommunikationsmechanismen (Signal senden und empfangen, Ausnahmebehandlung). Ein Aktivitätsdiagramm spezifiziert eine Aktivität. Die detaillierten Regeln dafür, wie Token in einer Aktivität fließen, bilden die Grundlage für die Interpretation eines Aktivitätsdiagramms.
Das Aktivitätsdiagramm ist eine objektorientierte Adaption des Programmablaufplans.
Ein Aktivitätsdiagramm ist ein Verhaltensdiagramm, d. h. es zeigt das Verhalten eines Systems. Es zeigt den Kontrollfluss von einem Startknoten zu einem Endknoten, der die verschiedenen Entscheidungspfade zeigt, die während der Ausführung der Aktivität existieren. Aktivitätsdiagramme können sowohl die sequentielle Verarbeitung als auch die gleichzeitige Verarbeitung von Aktivitäten darstellen. Sie werden in der Prozessmodellierung verwendet. Sie stellen die dynamischen Aspekte eines Systems dar. Ein Aktivitätsdiagramm ist einem Programmablaufplan sehr ähnlich.

## Symbole

Ein Aktivitätsdiagramm besteht aus folgenden Symbolen:

### Startknoten

Der Startknoten wird verwendet, um den Startpunkt oder den Anfangszustand einer Aktivität darzustellen. Dieses Symbol kann allein stehen oder durch ein Notizsymbol mit erklärendem Kommentar erweitert werden.

### Aktivität

Dieses Symbol wird zur Darstellung der Aktivitäten des Prozesses verwendet. Zeigt die Aktivitäten an, aus denen ein modellierter Prozess besteht. Diese Symbole enthalten kurze Beschreibungen und bilden die Hauptbausteine eines Aktivitätsdiagramms.

### Aktion

Dieses Symbol wird verwendet, um die ausführbaren Teilbereiche einer Aktivität darzustellen.

### Kontrollfluss

Dieses Symbol wird verwendet, um den Kontrollfluss von einer Aktion zur anderen darzustellen.

### Objektfluss

Dieses Symbol wird verwendet, um den Weg von Objekten darzustellen, die sich durch die Aktivität bewegen.

### Endknoten

Der Endknoten wird verwendet, um das Ende aller Kontrollflüsse innerhalb der Aktivität zu markieren. Er markiert den Endzustand einer Aktivität und repräsentiert den Abschluss sämtlicher Prozessabläufe.

### Fluss-Endknoten

Ein Fluss-Endknoten wird verwendet, um das Ende eines einzelnen Kontrollflusses zu markieren. Dieses Symbol repräsentiert nicht das Ende aller Abläufe einer Aktivität. Es sollte am Ende eines Prozesses in einem einzigen Aktivitätsablauf platziert werden.

### Entscheidungsknoten

Dieses Symbol wird verwendet, um einen bedingten Verzweigungspunkt mit einem Eingang und mehreren Ausgängen darzustellen. Eine an eine Bedingung geknüpfte Verzweigung im Kontrollfluss, die in Form einer Raute dargestellt wird.

### Knoten verschmelzen

Dieses Symbol wird verwendet, um das Zusammenfließen der Ströme darzustellen. Es hat mehrere Eingänge, aber nur einen Ausgang.

### Gabel

Dieses Symbol wird zur Darstellung eines Aktivitätsflusses verwendet, der sich in zwei oder mehr parallele Ströme verzweigen kann. Es spaltet einen Aktivitätsfluss in zwei gleichzeitig ablaufende Aktivitäten auf. Es wird dargestellt durch mehrere Pfeile, die von einer Verbindung ausgehen.

### Zusammenführen

Dieses Symbol stellt eine Verbindung zwischen zwei gleichzeitig laufenden Aktivitäten her und fügt sie wieder in einen Aktivitätsstrom ein, in dem jeweils nur eine Aktivität auf einmal stattfindet. Es wird dargestellt durch eine dicke vertikale oder horizontale Linie.

### Senden von Signalen

Dieses Symbol wird verwendet, um die Aktion des Sendens eines Signals an eine annehmende Aktivität darzustellen.

### Empfang von Signalen

Dieses Symbol wird verwendet, um darzustellen, dass das Signal empfangen wird. Nach dem Empfang des Ereignisses ist der von dieser Aktion ausgehende Kontrollfluss abgeschlossen.

### Kommentar

Dieses Symbol wird verwendet, um relevante Kommentare zu Elementen hinzuzufügen.

## UML 2 Aktivitätsdiagramm

Die Abbildung rechts zeigt ein Beispiel eines einfachen Aktivitätsdiagramms mit einem Kopf- und einem Inhaltsbereich. Das Schlüsselwort im Kopfbereich ist bei einem Aktivitätsdiagramm act oder activity. Auf dem Rand liegen als Rechtecke zwei Aktivitätsparameterknoten. An zwei der Aktionen (hier Rechtecke mit abgerundeten Ecken) sind der Ein- und der Ausgabe-Pin (kleine am Rand gelegene Quadrate) zu sehen, die über einen Objektfluss verbunden sind. Die übrigen Pfeile stellen Kontrollflüsse dar. Der schwarze Punkt ist der Startknoten (gehört zu den Kontrollknoten).

## UML 1 Aktivitätsdiagramm

Aktivitätsdiagramme in der UML 1.x sehen ähnlich aus wie Aktivitätsdiagramme in der UML 2, die Bedeutung einzelner graphischer Symbole hat sich aber in der neuen Sprachversion wesentlich geändert. Insbesondere wird noch nicht zwischen Aktivitäten und Aktionen unterschieden, und es gibt (demzufolge) auch noch keine Pins.
Die horizontalen, dicken Linien sind sog. Parallelisierungs- und Synchronisationsknoten (oder -balken) und können Kontrollflüsse aufspalten oder zusammenführen. Durch die Raute (hier als auf der Spitze stehendes Quadrat wiedergegeben) wird eine Aufspaltung des Kontrollflusses in alternative Zweige modelliert. Die Bedingungen stehen in eckigen Klammern an der jeweiligen Verzweigung.
Der Unterschied zwischen den Rauten- und den Balkensymbolen im unteren Aktivitätsdiagramm lässt sich mit Hilfe der Token-Semantik erklären: Bei Kontrollknoten in Rautenform wird die Anzahl der Token beibehalten, während sie für die Knoten in Balkenform modifiziert wird.