Definición
Condición en la que una especificación (formal o informal) omite restricciones sobre aspectos esenciales del comportamiento previsto, dejando posibles múltiples interpretaciones o implementaciones no deseadas.
Principio
Principio
Las especificaciones deben restringir suficientemente el comportamiento para excluir grados de libertad indeseables; la subespecificación surge cuando invariantes necesarios, pre/postcondiciones o supuestos ambientales se omiten o quedan implícitos.
Demostración
Demostración
Una definición de protocolo que especifica formatos de mensajes pero no especifica endianidad ni la semántica del manejo de errores permite a las implementaciones interoperables tomar decisiones divergentes, produciendo comportamientos incompatibles a pesar de adherirse a la especificación literal.
Aplicación incorrecta
Aplicación incorrecta
Tratar toda interfaz flexible o extensible como subespecificada ignora un diseño deliberado para la variabilidad; inversamente, llamar 'subespecificación' a una elección de diseño deliberada confunde apertura tolerable con error.
Consecuencia
Consecuencia
Identificar subespecificación conduce a añadir restricciones, decisiones normativas, suites de prueba o procedimientos decisorios; no abordarla produce problemas de interoperabilidad, errores latentes e implementaciones divergentes que violan las expectativas de los usuarios.
Inversión
Inversión
Sobre-especificación: un modo de fallo complementario en el que una especificación impone restricciones innecesarias, reduciendo la libertad del implementador y posiblemente impidiendo optimizaciones o variaciones legítimas.
Límite
Límite
Se aplica a las partes de una especificación donde el comportamiento previsto debe ser determinante para la corrección; no condena toda omisión (algunas omisiones son intencionales para permitir extensiones), pero señala omisiones que socavan las garantías previstas.
Tensión semántica
Tensión semántica
Compite con nociones de flexibilidad de diseño y abstracción: la subespecificación critica la ausencia de restricciones, mientras que la flexibilidad defiende dejar opciones abiertas; resolver la tensión requiere una política explícita sobre qué decisiones deben ser canónicas y cuáles pueden variar.
Síntesis
Síntesis
La Subespecificación es la ausencia de restricciones necesarias en una especificación que permite variabilidad no deseada; abordarla requiere clarificar invariantes, supuestos y comportamientos normativos mediante axiomas añadidos, pruebas o documentación normativa.