Aktivitätsdiagramm
Ein Aktivitätsdiagramm ist ein Verhaltensdiagramm der Unified Modeling Language (UML) und beschreibt genau eine Aktivität. Diese Aktivität enthält Aktionen, Kontroll- und Objektflüsse, die in ihrer Gesamtheit die formale, grafische Beschreibung des Ablaufs der Aktivität darstellen.
Aktivitätsdiagramme erstellen Sie komfortabel mit dem bewährten Modellierungstool von MID.
Innovator Enterprise Modeling Suite kostenlos testen.
Definition
Das Aktivitätsdiagramm (engl. activity diagram) ist ein Verhaltensdiagramm, das eine bestimmte Sicht auf die dynamischen Aspekte des modellierten Systems zeigt. Ein Aktivitätsdiagramm stellt die Vernetzung von elementaren Aktionen und deren Verbindungen mit Kontroll- und Datenflüssen grafisch dar.
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.
Mit einem Aktivitätsdiagramm wird meist der Ablauf eines Anwendungsfalls beschrieben, es eignet sich aber zur Modellierung aller Aktivitäten innerhalb eines Systems.
Die Semantik der Aktivitätsdiagramme hat sich in der UML 2 stark den Petri-Netzen angenähert und ermöglicht eine bessere Darstellung von nebenläufigen Systemen durch die Einbindung von asynchronen Kommunikationsmechanismen (Signal senden und empfangen, Ausnahmebehandlung).
Das Symbol zeigt ein Diagramm mit einer enthaltenen Aktivität.
Besitzerhierarchie/Vorbedingungen
- Ein Aktivitätsdiagramm zeigt den Inhalt genau einer Aktivität
- Das Aktivitätsdiagramm zeigt die Aktivität immer vollständig an
- Jede Aktivität braucht einen verhaltensspezifischen Classifier, dessen Verhalten sie beschreiben soll
Verwendung
Das Aktivitätsdiagramm kann in der Modellstruktur unterhalb eines verhaltensspezifischen Classifiers neu angelegt werden.
Im Whiteboard-Diagramm werden die Zusammenhänge zwischen Aktionen und Elementen aus anderen Diagrammen angezeigt.
Elemente des Aktivitätsdiagramms
Die folgenden Modellelemente können als Knoten und Kanten in Aktivitätsdiagrammen dargestellt werden:
Eine Aktion ist die grundlegende Einheit der Verhaltensspezifikation. Aktionen in einer Aktivität sind andauernde, nicht atomare Tätigkeiten. Sie sind das kleinste ausführbare Element innerhalb einer Aktivität. Eine Aktion kann durch andere Aktivitäten verfeinert werden.
Auslaufende Flüsse sollten nur aufgrund des Abschlusses der internen Aktion ausgelöst werden, nicht aufgrund expliziter Ereignisse. Wenn es mehrere auslaufende Flüsse gibt, müssen diese von Bedingungen abhängig gemacht werden.
Eine Aktion nimmt eine Reihe von Eingaben und wandelt sie in eine Reihe von Ergebnissen um, wobei die Eingabemenge, die Ausgabemenge oder auch beide Mengen leer sein können. Die Interpretation der Ein- und Ausgabemenge definiert die Semantik für eine Reihe von spezialisierten Aktionen.
Symbol | Element | Kurzbeschreibung |
---|---|---|
Anweisung ausführen | Eine Aktion, deren Semantik von der jeweiligen Implementierung abhängt. | |
Operation aufrufen | Eine Aktion, die eine Anfrage für einen Operationsaufruf an das Zielobjekt überträgt, wo es den Aufruf des damit verbundenen Verhaltens verursachen kann. | |
Verhalten aufrufen | Eine Aufrufaktion, die ein Verhalten direkt aufruft, an Stelle des Aufrufs eines Verhaltensmerkmals, der erst mittelbar zum Auslösen dieses Verhalten führen würde. | |
Ereignis erwarten | Eine Aktion, die auf das Auftreten eines Ereignisses wartet, auf das die angegebene Bedingung zutrifft. | |
Signal senden | Eine Aktion, die eine Signal-Instanz aus den Eingangsdaten erstellt und sie an das Zielobjekt überträgt, wo es eine Reaktion wie z.B. das Feuern von Transitionen in Zustandsautomaten oder die Ausführung einer Aktivität auslösen kann. | |
Objekt senden | Eine Aktion, die ein Objekt an das Zielobjekt überträgt, wo es eine Reaktion wie z.B. das Feuern von Transitionen in Zustandsautomaten oder die Ausführung einer Aktivität auslösen kann. | |
BroadcastSignal-Aktion | Eine Aktion, die ein Signal an alle möglichen Zielobjekte im System sendet. | |
AcceptCall-Aktion | Eine Aktion, die den Erhalt einer synchronen Aufrufanfrage repräsentiert. | |
Reply-Aktion | Eine Aktion, die einen Satz von Rückgabewerten enthält, sowie einen Wert, der das Resultat eines vorausgegangenen AcceptCall-Aktion enthält. | |
RaiseException-Aktion | Eine Aktion, die eine Exception (Ausnahme) auslöst. | |
ClearAssociation-Aktion | Eine Aktion, die alle Instanzen einer Beziehung zerstört, an der ein bestimmtes Objekt beteiligt ist. | |
TestIdentity-Aktion | Eine Aktion, die genau dann den Wert "wahr" zurückliefert, wenn die beiden Eingabewerte identisch sind, sonst den Wert "falsch" | |
ReadSelf-Aktion | Eine Aktion, die das Kontextobjekt einer Aktivität abruft. | |
ReadStructuralFeature-Aktion | Eine Aktion, die Werte eines strukturellen Merkmals ermittelt. | |
CreateObject-Aktion | Eine Aktion, die eine neue Instanz eines Klassifikators erzeugt. | |
DestroyObject-Aktion | Eine Aktion, die zur Laufzeit das Objekt an ihrem Eingabepin zerstört. | |
CreateLink-Aktion | Eine Aktion, die Instanzen von Assoziationen oder Assoziationsklassen erzeugt. | |
ReadLink-Aktion | Eine Aktion, die über Assoziationsenden navigiert, um andere Objekte zu ermitteln. | |
DestroyLink-Aktion | Eine Aktion, die Instanzen von Assoziationen oder Assoziationsklassen löscht. | |
ClearStructuralFeature-Aktion | Eine Aktion, die alle vorhandenen Werte eines Strukturmerkmals löscht. | |
Unmarshall-Aktion | Eine Aktion, die ein Objekt eines bestimmten Typs so in einzelne Teile zerlegt, dass deren Werte jeweils einem Strukturmerkmal dieses Objekts entsprechen. | |
RemoveStructuralFeatureValue-Aktion | Eine schreibende Aktion, die Werte aus einem Strukturmerkmal entfernt. | |
AddStructuralFeatureValue-Aktion | Eine schreibende Aktion, die einem Strukturmerkmal Werte hinzufügt oder vorhandene Werte ersetzt. | |
ValueSpecification-Aktion | Eine Aktion, die einen Ausdruck für eine Wertspezifikation auswertet. |
Ein Objektknoten ist ein Knoten im Aktivitätsdiagramm, der ausdrückt, dass eine Instanz eines bestimmten Classifiers an einem bestimmten Punkt im Aktivitätsablauf zur Verfügung steht, möglicherweise in einem bestimmten Zustand. Objektknoten können auf vielfältige Weise benutzt werden, abhängig davon, ob Objektflüsse in diesen Knoten ein- oder ausfließen.
Symbol | Element | Kurzbeschreibung |
---|---|---|
Aktivitätsparameter |
Aktivitätsparameterknoten sind spezielle Objektknoten, die direkt mit einer Aktivität verbunden sind und die Schnittstellen der Aktivität beschreiben. | |
Eingabepin |
Die Pin-Notation für Objektknoten verdeutlicht den Zusammenhang zwischen einer Aktion und einem Objektknoten als Eingabe- oder Ausgabeparameter der Aktion. Die Richtung der Kanten am Objektknoten legt fest, ob es sich um einen Eingabe- oder einen Ausgabepin handelt. | |
Ausgabepin | ||
Wertpin | Ein Wertpin ist ein Eingabepin, der einen Wert aufgrund einer Wertspezifikation bereitstellt. | |
Aktionspin | Ein Aktionspin ist ein Eingabepin, der eine Aktion ausführt, um die Eingabewerte für eine andere Aktion zu bestimmen. | |
Zentraler Puffer | Puffer sind Objektknoten, die Daten-Tokens zwischenspeichern und weitergeben. Ausschließlich Objektknoten dürfen mit einem Pufferknoten in Verbindung stehen. | |
Datenspeicher | Datenspeicher sind spezielle Pufferknoten, die Objekttoken persistent aufbewahren und an den ausgehenden Kanten nur eine Kopie der Daten-Tokens weitergeben, so dass alle Daten jederzeit und beliebig oft ausgelesen werden können. |
Während Kontrollknoten dazu verwendet werden, um die Objekt- und Kontrollflüsse zwischen anderen Knoten zu koordinieren, dienen strukturierte Knoten zur Gruppierung von Aktionen innerhalb einer Aktivität.
Symbol | Element | Kurzbeschreibung |
---|---|---|
Startknoten | Der Startknoten startet eine Aktivität. Er besitzt nur ausgehende und keine eingehenden Flüsse. Beim Starten einer Aktivität werden Token für alle ausgehenden Flüsse des Startknotens, zur Verfügung gestellt. Im Gegensatz zu Zuständen können Aktivitäten einen, keinen oder mehrere Startknoten besitzen. | |
Verzweigungsknoten | Mithilfe eines Verzweigungsknotens, der einen eingehenden und mehrere ausgehende Flüsse besitzt, wird der Kontrollfluss in mehrere Alternativen geteilt, die durch Bedingungen kontrollierbar sind. Das Token des Verzweigungsknotens wird von dem Ausgangsknoten konsumiert, der die gegebenen Randbedingungen erfüllt. | |
Verbindungsknoten | Der Verbindungsknoten führt unterschiedliche Abläufe wieder zu einem Kontrollfluss zusammen. Ein auf dem Verbindungsknoten folgender Aktionsknoten kann dann ein Token konsumieren, wenn auf einem Eingangsknoten des Verbindungsknotens ein Token zur Verfügung steht. | |
Parallelisierungsknoten | Ein Parallelisierungsknoten teilt den Kontrollfluss in mehrere parallele Kontrollflüsse. Damit jeder ausgehende Fluss einen unabhängigen Teilablauf starten kann, werden für alle ausgehenden Flüsse Token bereitgestellt. | |
Synchronisationsknoten | Der Synchronisationsknoten führt parallele Flüsse wieder zu einem Kontrollfluss zusammen. Dem nachfolgenden Knoten wird ein Token erst bereitgestellt, wenn auf allen eingehenden Flüssen Token zur Verfügung stehen. | |
Ablaufende | Ein Ablaufende beendet einen einzelnen parallelen Kontrollfluss innerhalb einer Aktivität. | |
Endknoten | Ein Endknoten beendet eine Aktivität. Er besitzt nur eingehende und keine ausgehenden Flüsse. Sobald ein Endknoten von einem Token erreicht wird, werden alle restlichen Token ebenfalls zerstört und die Aktivität für beendet erklärt. | |
Vertikaler oder horizontaler Aktivitätsbereich |
Ein Aktivitätsbereich (Aktivitätspartition) unterteilt eine Aktivität in Bereiche mit gemeinsamen Eigenschaften, wie z.B. Verantwortlichkeit, Rolle, Teilsystem. Dabei findet keinerlei semantische Veränderung der Aktivität statt. |
|
Strukturierter Aktivitätsknoten |
Ein strukturierter Aktivitätsknoten kann zum einen die Elemente einer Aktivität gruppieren und damit strukturieren, zum anderen kann er als spezieller, ausführbarer Knoten innerhalb von Kontrollflüssen eingesetzt werden. Strukturierte Aktivitätsknoten haben die Eigenschaft "Art der Expansion". Wenn "Keine" eingestellt ist, dann wird das Schlüsselwort «structured» angezeigt und Pins werden als Quadrat angezeigt. Für alle anderen Werte werden die Pins als Rechteck mit Trennlinien angezeigt und deuten so eine Liste von Elementen an. |
|
Unterbrechbarer Bereich | Ein Unterbrechungsbereich umschließt eine oder mehrere Aktionen und ist durch eine Unterbrechungskante gekennzeichnet, die innerhalb des Unterbrechungsbereiches beginnt und deren Ziel außerhalb des Bereiches liegt. Wird der Bereich über die Unterbrechungskante verlassen, so werden sämtliche in dem Bereich ausgeführten Aktionen bzw. Abläufe abgebrochen, indem alle vorhandenen Token verworfen werden. Der Ablauf setzt sich am Zielknoten der Unterbrechungskante fort. |
Kanten im Aktivitätsdiagramm bilden den Kontroll- und Datenfluss zwischen den Knoten des Diagramms ab.
Symbol | Element | Kurzbeschreibung |
---|---|---|
Kontrollflusskante |
Der Kontrollfluss innerhalb einer Aktivität wird durch Flüsse zwischen den Aktionen erreicht. Diese Flüsse können entweder direkt zur nächsten Aktion oder in einen Wartezustand führen, aber auch durch diverse Konnektoren verzweigt und wieder zusammengefasst werden. Ein Kontrollfluss ist eine gerichtete Kante, der den Aktivitätsknoten am Ziel der Kante startet, sobald der Aktivitätsknoten an seiner Quelle beendet ist. | |
Objektflusskante |
Ein Objektfluss ist eine gerichtete Kante, die Daten zwischen Objektknoten transportiert. | |
Ausnahmebehandlung | Eine spezielle Kante, mit der die Exception an denjenigen Aktivitätsknoten übergeben wird, in dem die Exception behandelt wird. |
Weitere Informationen