Desarrollo dirigido por especificaciones o Desarrollo basado en especificaciones (en inglés SDD) es una metodología de Ingeniería de software donde una especificación formal y legible por máquina sirve como fuente autorizada de la verdad y es el artefacto principal del cual se derivan la implementación, las pruebas y la documentación. El desarrollo dirigido por especificaciones exige que la intención del sistema se defina explícitamente en un formato de documento estructurado antes de que comience la implementación. En el contexto de la ingeniería asistida con IA, el desarrollo dirigido por especificaciones sirve como estructura o marco riguroso que transforma las especificaciones en planos ejecutables para agentes de codificación, evitando las inconsistencias encontradas en formatos no estructurados "vibe coding".
Historia
Los orígenes del desarrollo basado en especificaciones se remontan a los flujos de trabajo de la NASA de la década de 1960 y a los métodos formales que priorizaban la verificación lógica antes de la codificación. La metodología se formalizó académicamente en 2004 como una "sinergia" entre el desarrollo basado en pruebas (TDD) y el diseño por contrato (DbC), antes de experimentar un renacimiento en la década de 2020 impulsado por flujos de trabajo basados en agentes con tecnología LLM.
Conceptos
El desarrollo basado en especificaciones puede seguir un ciclo de vida de cuatro fases: Especificar (definiendo los requisitos funcionales), Planificar (traduciendo la intención en arquitectura técnica), Tarea (descomponer el plan en unidades atómicas), Implementar (generación de código automatizada y validación humana).
Este enfoque según sus defensores representa un vuelco hacia la arquitectura como un plano único de control ejecutable, donde el código implementado se trata como un subproducto transitorio de la especificación mantenida, concepto al que a veces se hace referencia como "especificación como fuente".
Comparación con otras metodologías
El desarrollo basado en especificaciones se distingue de prácticas similares por su enfoque en la intención de alto nivel: Desarrollo guiado por pruebas (TDD): Se centra en la corrección a nivel de implementación; SDD utiliza la especificación para generar pruebas iniciales. Desarrollo dirigido por el comportamiento (BDD): Se centra en escenarios orientados al usuario; SDD proporciona las invariantes estructurales y arquitectónicas que deben satisfacer los escenarios BDD.
Véase también
Ingeniería dirigida por modelos Desarrollo guiado por comportamiento Método formal
Referencias
Categoría:Desarrollo de software