核心思想 (爱因斯坦名言变体): "如果给我一小时拯救世界,我会花55分钟定义问题,然后花5分钟解决它。" 这凸显了“正确地定义问题”的重要性,而需求正是定义问题的关键手段。
什么是合格的需求?
- 需求是用于量化待解决问题的一种方式,它记录和描述了系统需要设计成什么样,并为项目成功与否提供了评判标准。
- 一个完整的需求包含三要素:
- 描述 (Description):需要完成什么。
- 理由 (Rationale):为什么这个需求是必要的。
- 验证方法 (Verification):如何证明系统满足了该需求。
优秀需求的特点 (SMART原则的体现)
- 清晰、简洁、无歧义:只传达一个思想,只有一种解释。避免将多个需求合并为一条。
- 可验证 (Verifiable):需求必须是客观的、可测量的。避免使用“最小化”、“最大化”、“用户友好”等主观词汇。
- 不涉及具体实现 (Implementation-Free):通常描述系统“做什么”(What),而不是“怎么做”(How)。这为领域专家提供了设计的灵活性。(除非实现方式本身就是一项约束或规定)
- 有效且一致 (Valid & Consistent):需求必须能追溯到更高层的目标,并且需求集内部不能相互矛盾。
需求层次与追溯
- 需求并非孤立存在,而是以层次化结构组织。高层需求(如项目目标)被逐级分解为更具体的低层需求(如组件性能指标)。
- 需求追溯 (Requirements Tracing) 将需求与实现它的设计元素链接起来,其价值在于:
- 审计设计,确保没有遗漏任何需求。
- 审计实现,确保每个设计特性都有其存在的理由。
- 为验证测试的设计提供清晰的依据。
- 观点: 需求的细化和设计的演进是一个迭代过程。我们基于高层需求选择一个设计概念,然后为这个概念编写更具体的低层需求,从而进一步推动设计的细化。