二、详细设计的评审
# | 检查项 | Y/TBD/N/NA |
清晰性 | ||
所有单元或过程的目的是否都已文档化? | ||
包括了数据流、控制流和接口的单元设计是否已清晰的说明? | ||
完整性 | ||
是否已定义和初始化所有的变量、指针和常量? | ||
是否已描述单元的全部功能? | ||
是否已详细说明用来实现该单元的关键算法(例如:用自然语言或PDL)? | ||
是否已列出该单元的调用? | ||
依从性 | ||
该文档是否遵循了该项目已文档化的标准? | ||
是否采用了所要求的方法和工具来进行单元设计? | ||
一致性 | ||
数据元素的命名和使用在整个单元和单元接口之间是否一致? | ||
所有接口的设计是否互相一致并且和更高级别文档一致? | ||
正确性 | ||
是否处理所有条件 (大于、等于、小于零、switch/case)?是否存在处理“case not found”的条件? | ||
是否正确地规定了分支(逻辑没有颠倒)? | ||
数据使用 | ||
是否所有声明的数据都被实际使用到? | ||
是否所有该单元的数据结构都被详细说明? | ||
是否所有修改共享数据(或文件)的程序都考虑到了其它程序对该共享数据(或文件)的存取权限? | ||
是否所有逻辑单元、时间标志和同步标志都被定义和初始化? | ||
接口 | ||
接口参数在数量、类型和顺序上是否匹配? | ||
是否所有的输入和输出都被正确定义和检查? | ||
是否传递参数序列都被清晰的描述? | ||
是否所有参数和控制标志由已描述的单元传递或返回? | ||
是否详细说明了参数的度量单位、取值范围、正确度和精度? | ||
共享数据区域及其存取规定的映射是否一致? | ||
可维护性 | ||
单元是否具有高内聚度和低耦合度(例如:对该单元的更改不会在该单元有任何无法预料的影响并对其它单元的影响很小)? | ||
性能 | ||
是否该单元的所有约束例如过程时间和规模都被详细说明? | ||
可靠性 | ||
初始化是否使用到缺省值,缺省值是否正确? | ||
是否在内存访问的时候执行了边界检查(例如:数组、数据结构、指针等)来确保只是改变了目标存储位置? | ||
是否执行输入、输出、接口和结果的错误检查? | ||
是否对所有错误情况都发出有意义的信息? | ||
对特殊情况返回的代码是否和已规定的全局定义的返回代码相匹配? | ||
是否考虑到意外事件? | ||
易测性 | ||
是否能够对每个单元进行测试、演示、分析或检查来说明它们是满足需求的。 | ||
该设计是否包含检查点来帮助测试(例如:有条件的编译代码和数据声明测试)? | ||
是否所有的逻辑都能被测试? | ||
是否已描述测试程序、测试数据集和测试结果? | ||
可追溯性 | ||
是否设计的每一部分都能追溯到其它项目文档的需求,也能追溯到更高级别文档的需求? | ||
是否所有的设计决定都能追溯到权衡考虑? | ||
单元需求是否都能上溯到更高级别的文档? 更高级别文档的需求是否已经在单元中体现? |
责任编辑:刀刀