Interaktion (UML)
# Interaktion (UML)

Eine Interaktion (Interaction) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme.

Das Verhalten eines modellierten Systems kann in der UML2 auf unterschiedliche Art und Weise spezifiziert werden, zum Beispiel indem es als Interaktion modelliert wird. Eine Interaktion ist die Spezifikation eines Verhaltens, das als Austausch von Nachrichten zwischen Objekten beschrieben wird. Die Interaktion definiert, welche Objekte beteiligt sind, welche Nachrichten zwischen den Objekten in welcher Reihenfolge ausgetauscht werden und welche weiteren Verhaltenselemente, zum Beispiel Aktionen, aufgrund dieser Nachrichten starten oder enden.

## Lebenslinien

Eine Interaktion besitzt eine Menge von Lebenslinien (lifelines). Lebenslinien repräsentieren die Objekte, zwischen denen in einer Interaktion Nachrichten ausgetauscht werden. In der Abbildung rechts sind beispielsweise zwei Lebenslinien für je eine Ausprägung vom Typ Koch und vom Typ Herd dargestellt.

## Nachrichten

Eine Nachricht (Message) ist die Kommunikationseinheit, die bei der Kommunikation zwischen zwei Objekten ausgetauscht wird. Eine Nachricht kann für eine von drei Kommunikationsarten stehen, nämlich

* für den synchronen Aufruf einer Operation
* für den asynchronen Aufruf einer Operation
* für die asynchrone Übermittlung eines Signals

Bei synchronen Nachrichten erfolgt ein normaler Nachrichtenaufruf und die Kontrolle wird an das gerufene Objekt übergeben. Asynchrone Aufrufe geben sofort die Kontrolle an das rufende Objekt zurück.

Im Normalfall sind einer Nachricht zwei Konstrukte Nachricht-Ende (engl. MessageEnd) zugeordnet. Ein Nachricht-Ende ist entweder ein Verknüpfungspunkt oder aber die Spezifikation eines Ereignisauftritts. Stellt eine Nachricht zum Beispiel den synchronen Aufruf einer Operation dar, wird das Sender-Nachricht-Ende der Nachricht ein SendOperationEvent darstellen, das Empfänger-Nachricht-Ende entsprechend ein CallEvent.

UML2 erlaubt zwei Ausnahmen von dieser Regel, indem entweder das Sender-Nachricht-Ende oder das Empfänger-Nachricht-Ende fehlen darf. Im ersten Fall spricht die UML2 von einer gefundenen (engl. found), im zweiten von einer verlorenen (engl. lost) Nachricht. Falls wie im Normalfall vorgesehen beide Nachricht-Ende spezifiziert sind, spricht man von einer vollständigen (engl. complete) Nachricht.

## Semantisches Modell

Wer Interaktionen modelliert, geht davon aus, dass das modellierte System aus einem Netzwerk von Objekten besteht, die untereinander Nachrichten austauschen. Schickt ein Objekt einem anderen Objekt eine Nachricht, kann man zwei Ereignisauftritte identifizieren: erstens das Auftreten eines Nachricht-Ereignis, wenn die Nachricht vom ersten Objekt abgeschickt wird sowie zweitens eines Nachricht-Ereignis, wenn die Nachricht beim zweiten Objekt ankommt. Weitere Ereignisse treten auf, wenn eine Aktion oder ein anderes Verhalten im Kontext eines Objekts beginnt oder endet. Eine Spur (trace) bezeichnet eine Folge von solchen Ereignissen. Interaktionen spezifizieren nun ein Verhalten als zwei Mengen von Spuren, einer Menge gültiger und einer Menge ungültiger Spuren.

In der Abbildung rechts sind zum Beispiel zwei Nachrichten mit insgesamt vier Spezifikationen von Ereignisvorkommen S1, S2, R1, R2 dargestellt. Weil die Nachrichten einschalten und ausschalten synchron sind, muss R1 auf S1 bzw. R2 auf S2 folgen. S2 kann erst auftreten, wenn S1 und R1 vorgekommen sind. Diese Interaktion steht also für ein Verhalten, das durch folgende zulässige Spur mit vier Ereignissen charakterisiert ist: <S1, R1, S2, R2>

## Parameter und Verknüpfungspunkte

Eine Interaktion kann wie jede Verhaltensspezifikation eine Menge von formalen Parametern haben. Beim Aufruf des Verhaltens, das durch die Interaktion spezifiziert ist, kann der Aufrufer für jeden Parameter aktuelle Werte mitgeben.

Interaktionen können zusätzlich über eine Menge von Verknüpfungspunkten verfügen. Verknüpfungspunkte sind eine Art Tor für Nachrichten, die von außen, zum Beispiel von einer umschließenden Interaktion in eine Interaktion hineinfließen bzw. eine Interaktion für eine umschließende Interaktion verlassen.

## Notation

Interaktionen werden graphisch in Sequenzdiagrammen, Kommunikationsdiagrammen und Zeitverlaufsdiagramm dargestellt. Die zahlreichen Notationsdetails für die graphische Darstellung der verschiedenen Arten von Nachrichten, Lebenslinien und Ereignisauftritten sind dort erklärt.

