Zusicherung (Softwaretechnik)
# Zusicherung (Softwaretechnik)

Eine softwaretechnische Zusicherung ist ein Ausdruck, mit dem in OOAD-Diagrammen (Object Oriented Analysis and Design) Einschränkungen definiert werden, welche die möglichen Zustände oder das Verhalten von Objekten betreffen. Auch die Semantik einer Assoziation kann mit einer Zusicherung eingeschränkt werden.

Eine Zusicherung ist eine Möglichkeit, in einem Design-Diagramm Regeln festzulegen, die sonst mit den herkömmlichen Mitteln der OOAD, wie beispielsweise Multiplizitäten, nicht darstellbar sind. Zusicherungen dienen grundsätzlich als Vereinbarungen mit dem Programmierer.

## Darstellung mit der UML

Zusicherungen werden mit der UML innerhalb geschweifter Klammern formuliert. Zur Notierung einer Zusicherung kann auch ein Ausdruck der Object Constraint Language (OCL) verwendet werden. Soll eine Abhängigkeitsbeziehung zwischen Modellelementen zugesichert werden, so wird zur Darstellung eine gestrichelte Linie mit einem Pfeil verwendet. Der Pfeil zeigt vom abhängigen zum unabhängigen Element. Falls eine Zusicherung nicht eindeutig einem Modellelement zugeordnet werden kann oder eine Beziehung von mehr als zwei beteiligten Modellelementen betrifft, kann sie innerhalb einer Notiz formuliert werden.

## Anwendungsbeispiele

### Untermengenzusicherung

Eine Untermengenzusicherung betrifft die Abhängigkeitsbeziehung zwischen zwei Assoziationen. Sie wird angewendet, wenn von einer Klasse zwei Assoziationen ausgehen und zugesichert werden soll, dass die Menge der assoziierten Objekte innerhalb der einen Beziehung eine Teilmenge zu der Menge der assoziierten Objekte innerhalb der anderen Beziehung sein soll.

### Konsistenzzusicherung

In einem UML-Diagrammen ist es möglich, redundante Assoziationen zu modellieren. Dies bedeutet, dass es zwischen zwei Objekten mehrere Möglichkeiten der Navigation gibt. In diesem Fall muss über alle Navigationswege das richtige assoziierte Objekt gefunden werden. Andernfalls wäre eine Inkonsistenz vorhanden. Mit Hilfe einer Zusicherung kann solch eine Inkonsistenz verhindert werden.

### Ordnungszusicherung

Im Falle einer Assoziation, bei der auf der einen Seite eine Max-Multiplizität von größer eins vorhanden ist, kann mit Hilfe einer Zusicherung festgelegt werden, dass zu einem Objekt assoziierte Objekte in einer bestimmten Art und Weise geordnet sein müssen. Beispielsweise kann mit Hilfe einer Zusicherung festgelegt werden, dass bei einer Beziehung zwischen einer Klasse „Unternehmen“ und einer Klasse „Mitarbeiter“ die Referenzen innerhalb des mengenwertigen Referenzattributes eines Unternehmen-Objektes in der Reihenfolge abgelegt werden, dass sich daraus die Reihenfolge, Mitarbeiter sortiert nach dem Nachnamen, ergibt.

### Zusicherungen für Attribute und Operationen

Mit Hilfe von Zusicherungen kann die Struktur (Attribute) und das Verhalten (Operationen) von Objekten eingeschränkt werden. Ein Zusicherung ist auch nötig, um die Berechnungsvorschrift für abgeleitete Attribute festzulegen. Wie in Programmiersprachen und in Datenbanken kann auch in der OOAD eine Zusicherung dazu verwendet werden, um den Wertebereich von Attributen einzuschränken.

