1. SDD (Specification-Driven Development) 与 TDD/BDD/PDD 的工程差异中从需求文档到可执行契约的转换边界?
SDD(Specification-Driven Development)与 TDD/BDD/PDD 的工程差异是什么,从需求文档到可执行契约的转换边界在哪里?
- 理解 SDD 与 TDD/BDD/PDD 的区别
- 需求文档到可执行契约的转换
- 各范式的适用边界
SDD 是"先写 spec(预期行为契约),再据此生成实现与测试"的范式,spec 是中心产物。TDD 以"测试先行"驱动实现,测试即规范;BDD 以"行为描述"(Given-When-Then)驱动,强调用业务语言表达行为;PDD(Plan-Driven)以预定的计划/文档驱动,偏重过程管控。差异:SDD 把"可执行契约"(spec)作为独立的一等产物,可与测试、实现、文档分离生成;TDD 的规范藏在测试里,BDD 的规范藏在行为描述里。转换边界:需求文档(自然语言、模糊)→ 人工提炼为"可执行契约"(spec,结构化、可验证)→ 由 spec 生成测试与实现。SDD 不适合"需求完全模糊、无法固化为契约"的探索型场景,而适合"需求可明确、可验收"的生产场景。
SDD 的核心是"把需求固化为可执行契约",从而让 AI 生成有客观验收标准。它与 TDD/BDD/PDD 的差异在于"契约是一等公民、可由 spec 直接生成实现与测试",边界在于"需求能否固化为可执行契约"。