# Kompositionsstrukturdiagramm

* Strukturdiagramme der UML
* Klassendiagramm
* Komponentendiagramm
* Kompositionsstrukturdiagramm
* Objektdiagramm
* Paketdiagramm
* Profildiagramm
* Verteilungsdiagramm
* Verhaltensdiagramme der UML
* Aktivitätsdiagramm
* Anwendungsfalldiagramm
* Interaktionsübersichtsdiagramm
* Kommunikationsdiagramm
* Sequenzdiagramm
* Zeitverlaufsdiagramm
* Zustandsdiagramm
Ein Kompositionsstrukturdiagramm (engl. composite structure diagram) ist eine der 14 Diagrammarten in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme.
Das Kompositionsstrukturdiagramm zeigt einheitlich das Innere eines Klassifizierers und dessen Wechselwirkung mit seiner Umgebung.

## Part

Parts sind Bestandteile des Ganzen, die durch eine Kompositionsbeziehung zum Ganzen gehören bzw. vom Ganzen komponiert werden. Ein Part wird mithilfe eines Rechtecks dargestellt, der eine eigene Multiplizität besitzen kann. Sie werden vom Ganzen mit einem großen Rahmen umschlossen. Im Inneren des Rahmens zeigen die Parts ihre Beziehungen mithilfe von Konnektoren untereinander auf, nach außen hin werden über Schnittstellen (interfaces) die angebotenen und bereitgestellten Merkmale (features) dargestellt.
Zu Beginn wurde angedeutet, dass ein Part nicht unbedingt ein Bestandteil des Ganzen sein muss, obwohl er zur Komplettierung des Ganzen gebraucht wird. „Außenstehende“ Parts können mit in die Darstellung des Ganzen aufgenommen werden, jedoch ist das Rechteck des außenstehenden Parts zur Unterscheidung gestrichelt.

## Konnektor

Ein Konnektor (connector) dient der Beschreibung eines Kommunikationspfades zwischen Instanzen. Instanzen, die über einen Konnektor miteinander verbunden sind, haben so die Möglichkeit miteinander zu interagieren, d. h. sie „kennen“ sich zur Laufzeit. Primär werden Konnektoren eingesetzt, um die Interaktionen von Parts darzustellen.
Die Darstellung eines Konnektors erfolgt mit einer durchgezogenen einfachen Linie, identisch mit einer Assoziation. Wie auch Assoziationsenden besitzen Konnektoren ebenfalls Multiplizitäten. Diese können sich von der Multiplizität der Parts unterscheiden. Somit kann ein ganzes zusammenhängendes Netz der Parts über die Konnektoren aufgezeigt werden.
Zwei Spezialisierungen des Konnektors sind der Kompositions- (assembly connector) und der Delegationskonnektor (delegation connector).

### Kompositionskonnektor

Ein Kompositionskonnektor ist die Verbindung zwischen angebotenen und benutzten Schnittstellen bzw. Ports. Somit wird darauf hingewiesen, dass eine Komponente Services bereitstellt, die von anderen gebraucht werden.

### Delegationskonnektor

Ein Delegationskonnektor hingegen zeigt die Verbindung zwischen dem „äußeren“ Verhalten der Komponente mit der internen Struktur (Parts), die das Verhalten realisiert. Diese Verbindungen werden stets über die Ports realisiert, wobei ein Delegationskonnektor immer zwischen dem Port der Komponente und dem Port des Parts realisiert wird.
(Übersetzt aus: Documenting Component and Connector views with UML 2.0)

## Port

Ports (UML) sind Interaktionspunkte, an denen eine Vielzahl von angebotenen und benötigen Schnittstellen bereitstehen. Ports können auch untereinander Beziehungen eingehen und somit miteinander verbunden werden, um ein komplexes Ganzes zu bilden (z. B. Komponenten zu einem Ganzen zusammenstecken).

## Beispiel

Die Abbildung links zeigt ein Kompositionsstrukturdiagramm mit einem gekapselten Classifier, vier Parts und zwei Konnektoren.

## Unterschied zu Objektdiagrammen

Der Unterschied zwischen einem Objektdiagramm und einem Kompositionsstrukturdiagramm liegt darin, dass Ausprägungsspezifikationen (Objekte in UML 1.4 genannt) in einem Objektdiagramm eigenständig existieren können und Parts in einem Kompositionsstrukturdiagramm dagegen nicht. Parts sind immer Teil von etwas.