 ##  [Unterspezifikation](/de/node/61068) 

 Definition

Zustand, in dem eine Spezifikation (formal oder informell) essentielle Aspekte des beabsichtigten Verhaltens unbeschränkt lässt, sodass mehrere ungewollte Interpretationen oder Implementierungen möglich sind.

 

 

 

 

 

 





## Prinzip

Prinzip

Spezifikationen müssen Verhalten hinreichend einschränken, um unerwünschte Freiheitsgrade auszuschließen; Unterspezifikation entsteht, wenn notwendige Invarianten, Vor-/Nachbedingungen oder Umweltannahmen weggelassen oder implizit gelassen werden.

 

 

 

 

 





## Demonstration

Demonstration

Eine Protokolldefinition, die Nachrichtenformate festlegt, aber Endianness oder Fehlerbehandlungssemantik nicht spezifiziert, erlaubt es interoperierenden Implementierungen, divergente Entscheidungen zu treffen und dadurch inkompatible Verhaltensweisen zu erzeugen, obwohl sie die wörtliche Spezifikation einhalten.

 

 

 

 

## Fehlanwendung

Fehlanwendung

Jede flexible oder erweiterbare Schnittstelle als Unterspezifikation zu bezeichnen, ignoriert bewusstes Design zugunsten von Variabilität; umgekehrt bedeutet das Nennen einer absichtlichen Designentscheidung 'Unterspezifikation', dass tolerierte Offenheit fälschlich als Fehler interpretiert wird.

 

 

 

 

 





## Konsequenz

Konsequenz

Die Identifikation von Unterspezifikation führt dazu, Einschränkungen, normative Entscheidungen, Test-Suites oder Entscheidungsverfahren hinzuzufügen; wird sie nicht adressiert, ergeben sich Interoperabilitätsprobleme, latente Fehler und divergente Implementierungen, die Benutzererwartungen verletzen.

 

 

 

 

## Umkehrung

Umkehrung

Überspezifikation: ein komplementärer Fehlerfall, bei dem eine Spezifikation unnötige Beschränkungen auferlegt, die Freiheit der Implementierenden reduziert und legitime Optimierungen oder Variationen verhindern können.

 

 

 

 

 





## Abgrenzung

Abgrenzung

Gilt für die Teile einer Spezifikation, in denen beabsichtigtes Verhalten zur Korrektheit determiniert sein muss; verurteilt nicht jede Auslassung (einige Auslassungen sind intentional, um Erweiterungen zu ermöglichen), markiert jedoch Auslassungen, die beabsichtigte Garantien untergraben.

 

 

 

 

 





## Semantische Spannung

Semantische Spannung

Spannung zu Designflexibilität und Abstraktion: Unterspezifikation kritisiert fehlende Beschränkungen, während Flexibilität das Offenlassen von Entscheidungen verteidigt; die Lösung dieser Spannung erfordert eine explizite Politik darüber, welche Entscheidungen kanonisch sein müssen und welche variieren dürfen.

 

 

 

 

 





## Synthese

Synthese

Unterspezifikation ist das Fehlen notwendiger Beschränkungen in einer Spezifikation, das unerwünschte Variabilität erlaubt; Abhilfe schafft das Klarifizieren von Invarianten, Annahmen und normativen Verhaltensweisen durch zusätzliche Axiome, Tests oder normative Dokumentation.