原文地址:http://qa.taobao.com/?p=9865
如何更好,更快,更多的挖掘需求中存在的问题,一直以来都在困扰着我们的日常工作,希望通过下面五步法例子的简单介绍,能够让大家加深印象并学以致用。
需求内容如下:我们将搭建一个嵌入式软件设备系统,以便用户在户外运动使用时能非常的便利,系统具体要求如下:
1.最好能够提供一个气压显示的功能
2.紧急信号灯应该装入,除非设备太大且太重
3. 系统必须包括一个如滑雪时可能用到的救援信号灯
4. 系统应该能够发射天气预报警告信息
5.在户外可能很难找到电池,所以必须具备一个充电的功能
6.其他约束:应具备防震,防水,携带轻便,小且方便,便于使用
这个需求是否存在问题呢?我们如何运用理论来发现存在的问题呢?以下就是五步法的说明
1.语法检查
2.检查是否缺少度量方式
3.检查是否有相关术语的说明
4.检查是否有内容上的冲突
5.增删改查检查
下面我们就结合以上的例子和检查方式对该需求进行详细的review
1.语法检查
a.最好能够提供一个气压显示的功能
含糊:提供具体应该是怎么样的?
b.紧急信号灯应该装入,除非太大且太重
c.系统必须包括一个滑雪时可能用到的救援信号灯
d.系统应该能够发射天气预报警告信息
e.因为可能很难在户外找到电池,所以必须具备一个充电的功能
是不是表明不是必须的?
2.是否缺少度量方式
a.防震
精确度要求多少?
b. 防水
水的深度是多少?
c.携带轻便
轻重的限度是多少?
d.小且方便
是并且吗?小的尺寸限制是多少?
e.便于使用
如何来衡量?
3.检查是否有相关术语的说明
a.最好能够提供一个气压显示的功能
b.紧急信号灯应该装入,除非太大且太重(是否应该在目标范围内?)
c.系统必须包括一个滑雪时可能用到的救援信号灯(具体的应用场景是什么样的?)
d.系统应该能够发布天气警告信息(是否应该出现在术语中?)
e.因为可能很难找到电池,所以必须具备一个充电的功能(是否是同义词?)
4.冲突
a.内部冲突
紧急信号灯应该装入,除非太大且太重
b.可能的外部冲突(如重量,尺寸,开发花费等导致)
因为可能很难找到电池,所以必须具备一个充电的功能
5.增删改查检查:数据元素应该能够进行增、删、改、查
a.最好能够提供一个气压显示的功能
通过检索数据来进行显示(这个数据在哪里产生?什么时候会被删除掉?)
b.系统应该能够发布天气警告信息
通过检索数据来发布警告(那么这个警告信息是怎么产生的?是仅仅从大气数据产生吗?)
c.增删改查场景
c1.创建数据
需要提供以T秒的间隔来进行气压的测定,需要在数据缓存中进行数据的存取
需要提供系统级别的更加详细的说明
c2.检索数据
需要计算气压的改变率
当用户需要时,应提供UI界面来显示当前的气压
事件处理的需求到底是怎么样的?
当气压快速下降时,UI应该显示暴风雪的警告
快速下降的级别是多少?
c3.更新数据
测量的数据不能进行编辑,但是当缓存满的时候需要进行覆盖
c4.查询数据
需要丢弃3小时以前读取的气压数据