第七步:你的需求是否通俗易懂?

  相比于我们原来的描述:“根据弯曲传感器的输出不同频率来控制LED闪烁”,我们上面的那些需求描述显得难以阅读和理解。

  我发现,让需求文档变得通俗易懂,简单办法莫过于,把过于细节的东西抽取出来,然后以条目的形式单独定义。

 

  版本1

  1. 弯曲传感器应当保证至少在100毫秒内读取一次数据(放到注释单独列出)

  2. 切换LED的状态,使其与弯曲传感器的读数保持一致

  3. 当弯曲传感器的读数为1伏特时,LED状态切换的次数应当保持在平均一秒十次;当传感器的读数为0伏特时,LED的切换次数应保持在一秒1次。


  定义:

  • 弯曲传感器:输入电压位于ADC的X端。安全电压范围为0到1伏特(放到注释单独列出)

  • LED状态:数字状态由Y端输出


  这样好多了(尽管还不完美)。这些需求通俗易懂,不涉及到系统内部实现,且易于测试。对于系统行为的限定也仅于需要做什么,点到为止。(例如,对弯曲传感器的采样频率,在实现上也可以更高,只要不产生非预期行为,一切都可以)。

  编写需求仿佛是在大脑中构建软件的过程。因此要重于执行操作。