# Aktion (UML)

Eine Aktion (engl. Action) ist ein Modellelement in der Unified Modeling Language (UML), einer Sprache für die Modellierung der Strukturen und des Verhaltens von Software- und anderen Systemen.

## Beschreibung

Eine Aktion ist ein abstraktes Modellelement im Metamodell der UML2. Sie repräsentiert einen elementaren Baustein für die Spezifikation des Verhaltens eines Systems.
Eine Aktion erhält Eingabewerte über Eingabepins und produziert Ausgabewerte an Ausgabepins. Die Ein- und Ausgabepins sind die Scharniere, an denen eine Aktion mit anderen Aktionen kombiniert werden kann, so dass die Werte an den Ausgabepins der einen Aktion zu den Werten an den Eingabepins der anderen Aktion werden. Verhaltensbeschreibungen wie die Aktivität oder die Interaktion orchestrieren elementare Aktionen zu Verhaltensspezifikationen.
Die UML2 definiert einen Satz von elementaren Aktionen und teilt diese in mehrere Gruppen ein.

### Aufruf-Aktionen

Zu den Aufruf-Aktionen gehört die Aktion zum Aufrufen einer Operation auf einer Klasse (CallOperationAction), die Aktion zum Aufrufen des Verhaltens einer Klasse (CallBehaviorAction), die Aktionen zum Senden eines Signals (SendSignalAction und BroadcastSignalAction) sowie die Aktion zum Senden eines Objekts (SendObjectAction).

### Aktionen zur Manipulation von Objekten

Zu den Aktionen für die Manipulation von Objekten gehören Aktionen zum Erstellen und Zerstören eines Objekts (CreateObjectAction bzw. DestroyObjectAction) und zum Testen der Identität eines Objekts (TestIdentityAction).

### Aktionen für die Manipulation von Strukturmerkmalen

Ein Satz von Aktionen ist vordefiniert für die Manipulation von Strukturmerkmalen. Dazu gehört eine Aktion zum Lesen eines Strukturmerkmals (ReadStructuralFeatureAction), zum Löschen der Inhalte eines Strukturmerkmals (ClearStructuralFeatureAction) und zum Manipulieren der Inhalte eines Strukturmerkmals (AddStructuralFeatureValueAction und RemoveStructuralFeatureValueAction).

### Aktionen für die Manipulation von Objektbeziehungen

Zu den Aktionen für die Manipulation von Objektbeziehungen (links) gehört eine Aktion für das Anlegen und das Löschen einer Objektbeziehung (CreateLinkAction bzw. DestroyLinkAction), eine Aktion für das Lesen einer Objektbeziehung (ReadLinkAction) sowie eine Aktion, mit der alle Objektbeziehungen zu einer bestimmten Assoziation gelöscht werden (ClearAssociationAction).

### Aktionen auf Objekten

Einige Aktionen sind in der UML2 vorgesehen, um Informationen über Objekte zu holen bzw. das Verhalten von Objekten anzustoßen. ReadExtentAction stellt am Ausgabepin alle Instanzen eines bestimmten Classifiers zur Verfügung. ReadIsClassifiedObjectAction bestimmt, ob ein Objekt eine direkte oder indirekte Instanz eines bestimmten Classifiers ist. Um ein Objekt zur Laufzeit zur Instanz eines anderen Classifiers zu machen, steht die Aktion ReclassifyObjectAction zur Verfügung. StartClassifierBehaviorAction startet das Classifierverhalten einer Instanz.

### Aktionen zum Empfangen von Ereignissen

Die Aktion AcceptEventAction empfängt ein Ereignis, AcceptCallAction ein Ereignis, das den Aufruf einer Operation anzeigt.

### Aktionen für das Generieren eines Werts

Die Aktion ValueSpecificationAction generiert an einem Ausgabepin einen bestimmten Wert gemäß einer Wertspezifikation.