针对功能的需求:
1.是否定义了系统的全部输入,包括来源,精度,取值范围,出现频率等?
2.是否定义了系统全部的输出,包括目的地,精度,取值范围,出现频率,格式等?
3.是否详细定义了所有输出格式(web页面,报表,等等)?
4.是否详细定义了所有硬件以及软件的外部接口?
5.是否详细定义了全部外部通信接口,包括握手协议,纠错协议,通信协议等?
6.是否列出了用户想要做的全部事情?
7.是否详细定义了每个任务所用的数据,以及每个任务得到的数据?
针对非功能的需求:
1.是否为全部必要操作,从用户的角度详细描述了期望响应时间?
2.是否描述了与其他与计时有关的考虑,例如处理时间,数据传输率,系统吞吐量?
3.是否详细定义了安全级别?
4.是否详细定义了可靠性,包括软件失灵的后果,发生故障时需要保护的至关重要的信息,错误检测与恢复策略等?
5.是否详细定义了机器内存和剩余磁盘空间的最小值?
6.是否详细定义了系统的可维护性,包括特定功能的变更,操作环境的变更,与其他软件接口的变更能力?
7.是否包含对成功的定义?对失败的定义呢?
需求的质量:
1.需求是用户语言书写的吗?用户也这么认为?
2.每条需求都不与其它需求冲突吗?
3.是否定义了相互竞争的特性之间的权衡(例如:健壮性与正确性之间的权衡)?
4.是否避免在需求中规定设计(方案)?
5.需求是否在详细程度上保持相当一致的水平?有些需求应该更详细的描述吗?有些需求应该更粗略的描述吗?
6.需求是否足够清晰,即使转交给一个独立的小组去构建,他们也能理解吗?开发者也这么想吗?
7.每个条款都与待解决的问题及其解决方案相关吗?能从每个条款上溯到他在问题域中对应的根源吗?
8.是否每条需求都是可测试的?是否可进行独立测试,以检验满不满足各项需求?
9.是都详细描述了所有可能的对需求的改动,包括各项目改的的可能性?
需求的完备性:
对于开始开发前无法获得的信息,是否详细描述了信息不完玩的区域?
需求的完备程度是否能达到这种程度,如果产品满足所有需求,那么它就是可接受的?
你对所有的需求都感到很舒服吗?你是否去掉了那些不可能实现的需求--那些只是为了安抚客户和老板的东西?
网友评论