怎样形成一个实例化的需求说明?

一个实例化的需求说明,首先一定是各个利益相关方协作开发出来的。因为协作开发出来的需求说明才是让各方对需求达成一致理解,能够确保需求的准确性和可靠性。

需求说明中的实例并不是用户提供的业务报表等原始的例子,开发人员必须对这些原始的例子进行提炼才更具有价值。

这就像原石必须经过加工成钻石才能绽放出夺目的光彩。

要形成一个实例化的需求说明,就需要对需求以及原始的例子进行提炼——去掉不相干的细节,提取重要的特性,使得需求定义更加清晰、明确、完整。

一个经过提炼的、好的需求说明一般具有以下特点:

  1. 需求的实例必须精确可测

需求的实例必须包含可验证的信息,即要明确输入和预期的输出,以便进行验证。

  1. 需求的实例不是脚本

需求的实例能够解释业务功能是什么,而脚本只能说明某件事情是如何完成的。

  1. 需求的实例关注业务功能,而非软件设计

需求说明只应解释业务功能,不应对软件如何实现作出规定。这样的需求说明就像一个常量,它不会因为设计的改变而改变。

  1. 需求说明应该是不言自明的

需求的实例应当能够使得该项需求是不言自明的,这样即使编写需求说明的离开了,也不会造成需求理解的偏差。

  1. 不要过度定义实例

需求的实例不是越多越好,正相反,需求说明应该只列出具有代表性的实例,这有助于保持需求说明简单易懂的特性。

  1. 使用“Given-When-Then”描述需求

Given-When-Then是定义系统行为的常见格式,它用3个部分来编写系统行为的场景:

  • 假定(Given):一个前提;

  • 当(When):某个行为发生时;

  • 那么(Then):后置条件会得到满足。

使用这种格式描述需求,就是要明确需求的前置条件和后置条件。

  1. 需求说明要使用统一的领域语言描述

统一的语言有利于协作开发需求说明,也有利于实现需求的集体所有制。

一个好的实例化需求说明的例子。

某电商的免费送货服务需求描述如下:

当VIP客户购买5本或以上的书籍时,可享受免费送货服务。普通客户不享受免费送货服务,没有购买书籍的VIP客户也不享受免费送货服务。

实例如下:

客户类型 购物车中的物品 送货服务
VIP客户 5本书 免费、标准
VIP客户 4本书 标准
普通客户 10本书 标准
VIP客户 1台洗衣机 标准
VIP客户 5本书,1台洗衣机 标准

这正是:

需求实例需提炼,原始例子不能搬

提炼要求有几点,不言自明最关键

参考书目:实例化需求:团队如何交付正确的软件,作者:(塞尔维亚)Gojko Adzic,出版社:人民邮电出版社

(0)

相关推荐