Definition
A development approach in which a written specification, constraints, and acceptance evidence guide implementation before or alongside code generation.
Distinguish it from nearby terms
A specification describes intended behavior; tests and formal checks cover selected executable properties.
Check your understanding
Specs can be incomplete or gameable and must preserve rationale, risk, non-goals, and change history.