设计文档CheckList

梳理了一份设计文档的check list,提供设计时的一些参考。针对项目的大小,分为4个维度,系统级别,单项目级别,模块级别和服务级别。


[img]http://dl2.iteye.com/upload/attachment/0117/8273/73c39182-589e-324b-a36d-f1d8f734ea4b.bmp[/img]
序号 检查点描述 补充说明 1 变量初始化检查 结构变量初始化时,是否初始化完全 局部、全局常量应在定义位置初始化 局部变量使用前必须初始化 2 循环边界检查 循环体若存在数组,确认数组下标不越界 循环是否存在死循环的可能 循环计数器是否存在多循环(+/-)1次可能 3 数组下标检查 循环体内、体外时的数组下标计算是否正确 宏定义包含数组操作时下标是否正确 拷贝时数组下标是否越界 4 显式表达运算符优先级 5 条件预处理 预处理开始和结束点是否匹配 多个预处理同时存在时,匹配逻辑是否正确 6 变量强制转换 是否存在高精度数据向低精度数据转换 是否存在指针类型转换,内存长度是否匹配 7 布尔逻辑判断方式 非真判断是否存在纰漏如 !true 逻辑判断是否准确 8 循环体内break、continue、goto导致的数据流向问题 9 宏的正确使用 宏命名是否能望名知义 宏的入参有效性检查是否充分 10 函数返回值、返回类型 返回逻辑正确性,如FAILURE/FALSE的区别 异常分支的返回值、错误码是否正确 返回类型是否匹配 11 局部变量作用域 是否存在返回局部变量指针 局部变量指针是否赋值给全局指针 12 函数参数调用 入参和定义是否一致。特别关注多重指针和单重指针的相互转换 参数类型是否一致,防止入参数据被截短 13 入参安全检查 是否确认入参的有效性范围 全局指针使用前是否进行了判断 14 内存泄漏 正常分支下,是否释放了动态内存 异常分支下,是否释放了动态内存 内存释放是否完整,譬如多重指针的释放 15 内存越界读写 循环体内的指针读写是否存在越界 内存拷贝操作是否存在指针越界 16 内存释放安全 内存释放后,内存指针是否已赋空 是否存在重复释放的可能 是否释放内存的指针已经发生偏移 17 缓冲区溢出安全问题检查 是否存在诸如 strcpy/strcat/scanf 此类高危险性缓冲区溢出函数,使用是否存在问题。 字符串操作函数的长度计算必须确保正确 注意空字符结束的函数,如strncat,有时会自动在内存后面添加’\0’,此时是否可能造成内存越界。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值