Verhalten (UML)
# Verhalten (UML)

Verhalten (engl. Behavior) ist in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme, sowohl ein Sammelbegriff für die dynamischen Aspekte eines modellierten Systems als auch eine Metaklasse, mit der solche Aspekte modelliert werden können.
Um diese beiden Bedeutungen unterscheiden zu können, sprechen wir von Verhaltensbeschreibung, wenn wir die Metaklasse meinen, und von Verhalten, wenn wir die dynamischen Aspekte meinen, die eine Verhaltensbeschreibung spezifiziert.
Der UML liegen zwei Annahmen für die Spezifikation eines Verhaltens zugrunde. Erstens geht das Verhalten in einem modellierten System immer von Instanzen aktiver Klassen, das heißt von aktiven Objekten aus. Zweitens ist das Verhalten eines Systems, das mit der UML modelliert wird, immer ereignisgesteuert oder diskret.
Die fundamentalen Bausteine für die Beschreibung des Verhaltens sind die Aktionen. Sie werden entweder mit Aktivitäten, Interaktionen oder Zustandsautomaten zu komplexeren Verhalten kombiniert. Diese drei Verhaltensspezifikationen höherer Ordnung haben gewisse Gemeinsamkeiten, die in der Metaklasse Verhaltensbeschreibung (engl. Behavior) zusammengefasst sind – die Aktivität, die Interaktionen und der Zustandsautomat sind Spezialisierungen davon.
Die erste Gemeinsamkeit aller Verhaltensbeschreibungen ist, dass sie eine Liste von Parametern besitzen. Parameter sind die Platzhalter, über die der Verhaltensbeschreibung vor der Verhaltensausführung (engl. behaviour execution) Werte übergeben und an die nach der Verhaltensausführung Werte zurückgeliefert werden. Weiter ist allen Verhaltensbeschreibungen gemeinsam, dass sie das Verhalten hinter einem Verhaltensmerkmal beschreiben können. Die Verhaltensbeschreibung wird in diesem Fall auch Methode eines Verhaltensmerkmals genannt. Alle Verhaltensbeschreibungen sind ferner im Kontext eines Classifier definiert. Der Kontext steckt den Bereich ab, innerhalb dessen die Verhaltensbeschreibung auf andere Modellelemente oder Strukturmerkmale zugreifen kann.

## Unterschiede zur UML 1.4

Die Metaklasse Behavior wurde neu im Metamodell der UML2 eingeführt.