如何让客户写出高质量的需求文档
  • 更新时间:2024-09-27 21:30:47
  • 网站建设
  • 发布时间:1年前
  • 397

北京网站建设公司推来客:写需求文档在嵌入式开发领域很常见。需求文档用于定义开发任务和协调大型研发计划。对于最终的产品,需求文档扮演着开发者行为与消费者行为之间沟通纽带的角色。当需求文档编写正确时,它们可以发挥巨大的作用。但是,如果你在嵌入式开发领域工作的时间足够长,你很快就会发现这个领域不合标准的需求文档太多了。当您尝试修复这些不合标准的文档时,您很快就会发现编写正确的需求文档绝非易事。在这里,我们提出一些建议,希望能够让编写正确的需求文档这件事变得更加清晰。

在高层次上,编写需求文档的目的是提供对所需行为的有效描述。所需的行为可以描述为黑盒系统,注意以下细节:

• 工程师可以实现系统所说的。

• 测试人员无需与开发人员沟通,就可以使用满足硬件要求的设备来验证要求。

• 结果输出满足最终用户的要求。

最终产生的成果满足终端用户的要求

黑盒测试写出高质量的需求文档:

黑盒测试书写优质的需求文档

最基本的原则是:需求文档尽可能简洁,用最容易理解的描述来约束系统的预期行为。如果您遵循这个原则,其余的重要因素(可测试性、避免过度设计等)就会水到渠成。

列举更详细的规则通常更有帮助。以下是编写质量要求文档的步骤:

1.定义系统的边界。这对于黑盒系统也是必要的。

2. 定义输入和输出。这也应该是您查看内部系统的唯一方式。

3. 尽可能以最容易理解的方式描述系统的预期行为。

4、除了输入输出,你的需求是否涉及到系统的其他部分?如果是,那么您的要求是过度设计的。重构需求,使其更加精简。

5、你的需求是否过于模糊?添加更多限定符。注意:一些模棱两可的描述并不是坏事,假设描述涵盖的所有情况都是可以接受的,并且不需要额外的信息来解释测试,那么就可以了。您不需要(也不应该)过多地限制系统的行为。

6. 你的需求是可测试的吗? (这里指的是黑盒测试)如果不是,你最好回到步骤4。如果这种返工经常发生,那么要么你的黑盒没有正确描述系统,要么你的测试工具不够好.在这两种情况下,不可测试的需求文档几乎毫无价值。

7. 你的需求文档容易理解吗?如果你的需求文档非常难读,说明你写得不好,只会给负责实现你的需求的人带来无尽的痛苦。如果是,返回步骤3。

8. 你真的做到了第4 步吗?你确定吗?再检查一遍。

例子:在下面的例子中,让我们描述一个自制的嵌入式设备的要求,该设备可以从弯曲传感器读取弯曲频率并根据不同的频率值使LED闪烁。

显然,我们已经完成了第2步和第3步!

• 输入:从弯曲传感器读取数据。

• 输出:LED。

但是我们跳过了第1 步:

• 在此示例中,我们将把黑框绘制到设备的微处理器上。

让我们继续前进,

第4 步:除了输入和输出之外,我们是否触及了任何其他系统边界?

• 微处理器不关心从弯曲传感器读取的数据是什么,从处理器的角度来看,所有需要做的就是测量ADC 引脚上的电压。

• LED 仅由数字输出引脚控制。

现在,让我们解决这个问题:

版本0 的要求:

1. 设备应根据ADC引脚不同频率的电压来切换数字输出端的状态。

第5 步:要求是否写得模棱两可?

好吧,我们的描述太模棱两可了。输出开关必须多快?它与电压有什么关系?输入电压范围是多少?让我们添加一些更详细的描述:

版本0.1

1.输出应由自由运行的定时器控制

2、自由运行定时器的最大频率不得高于每秒10次,也不得低于每秒1次。

3、自由运行定时器的触发频率应在最高值和最低值之间线性变化,并与ADC端的输入电压成比例。

正比。

4. ADC端的输入电压应当每100毫秒读取一次

5. 当ADC端的输入电压端被读入时,控制自由运行定时器周期时间的注册值也应当被更新。

6. ADC输入端的电压有效范围应当被控制在0到1伏之间。

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

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

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

第七步:你的需求是可测试的么?

• 首先,自由运行的定时器在这里不需要提及。 因为对它基本上无法进行黑盒测试,它既不是输入也不是输出,而且跟这两者也没有什么联系。

让我们用“数字输出端变化的频率应控制在每秒10次和每秒1次之间”来代替自由运 行定时器的测试标准。

• 对于上述的第四条需求,可能需要一些小修改才能作为测试标准。让我们用“ADC端的输入电压应当保证在每100毫秒内至少被读取一次”来加以描述,这样的描述能让我们预期的测试行为显得更加通俗易懂。

• 需求的第五条也需要一些小修改。我们如何才能检测电压的输出范围是在0到1伏之间呢? 总不能给个2伏的电压,然后看看元器件有没有被烧毁吧?

那么,说“检验系统在ADC端输入电压为1到2伏之间的时候,工作是否正常”,这样就检验就容易多了。需求描述应当是“正面”的,应当描述设备“应该”的行为,而不是设备“不应该”的行为。否则的话,测试将会无法进行。

版本0.2

1. 数字输出端的切换频率应当控制在每秒10次到每秒1次之间

2. 数字输出端的切换频率应当在最大值和最小值之间呈线性变化,并与ADC端的输入电压成正比

3. ADC端的输入电压应当保证在每100毫秒内至少被读取一次

4. 检验当ADC端的输入电压范围在0到1伏之间的时候,系统工作是否正常

版本1

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

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

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

定义:

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

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

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

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

本文发布于北京网站制作公司推来客http://www.tlkjt.com/

我们专注高端建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发经验,每一个项目承诺做到满意为止,多一次对比,一定让您多一份收获!

本文章出于推来客官网,转载请表明原文地址:https://www.tlkjt.com/web/13354.html
推荐文章

在线客服

扫码联系客服

3985758

回到顶部