读《代码大全》笔记:需求核对表

来源:互联网 发布:单片机应用技术 推荐 编辑:程序博客网 时间:2024/05/16 04:08

读《代码大全》笔记,需求核对表:


针对功能需求:

1.是否详细定义了系统的全部输入,包括其来源、精度、取值范围、出现频率等?

2.是否详细定义了系统的全部输出,包括其目的地、精度、取值范围、出现频率格式等?

3.是否详细定义了所有的输出格式(如:web页面、报表等)?

4.是否详细定义了所有硬件及软件的外部接口?

5.是否详细定义了全部外部通信接口,包括握手协议、纠错协议、通信协议等?

6.是否列出了用户所要做的全部事情?

7.是否详细定义了每个任务所用数据,以及每个任务得到的数据?

 
针对非功能需求(质量需求)


1.是否为全部必要的操作,从用户的角度,详细描述的期望的响应时间 ?

2.是否详细描述了其他与计时有关的考虑,如处理时间、数据传输率、系统吞吐量等?

3.是否详细定义了安全级别?

4.是否详细定义了可靠性,包括软件失灵的后果、发生故障时需要保护的至关重要的信息、错误检查与回复的策略等?

5.是否详细定义了机器内存和剩余硬盘空间最小值?

6.是否详细定义了系统的可维护性,包括适应特定功能的变更、操作环境的变更、与其他软件接口变更的能力?

7.是否包含对“成功”的定义,“失败”的定义?

 

需求的质量

1.       需求是用户书写的吗?

2.       每条需求都不与其他需求冲突吗?

3.       是否详细定义了相互竞争的特性之间的权衡?

4.       是否避免在需求中规定设计(方案)?

5.       需求是否在详细程度上保持相当一致的水平?有些需求应当更详细的描述吗?有些需求应该更粗略的描述吗?

6.       需求是否足够清晰,即使转交给一个独立的小组去构建,他们也能理解吗?开发者也这么想吗?

7.       每个条款都与待解决的问题及解决方案相关吗?能从每个条款上溯到它的问题中的对应跟源吗?

8.       是否每条需求都是可测试的?是否可应进行独立的测试,以检验满不满足各项需求?

9.       是否描述了所有可能对需求的改动,包括各项改动的可能性?

 

需求的完备性

1.对于在开始开发之前无法获得信息,是否详细描述了信息不完全的区域?

2.需求的完备度是否达到这种程度:如果产品满足所有需求,那么它就是可接受的?

3.你对全部需求都感觉舒服吗?你是否已经去掉了那些不可能完成的需求—那些只是为了安抚客户和老板的东西?