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.