软件编程规范培训实例与练习
问题分类
1 逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性、程序逻辑控制等方面出现的问题,在系统中起关键作用,将导致软件死机、功能正常实现等严重问题;
接口类问题(B类)-指设计、编码中出现的函数和环境、其他函数、全局/局部变量或数据变量之间的数据/控制传输不匹配的问题,在系统中起重要作用,将导致模块间配合失效等严重问题;
维护类问题(C类)-指设计、编码中出现的对软件系统的维护方便程度造成影响的问题,在系统中不起关键作用,但对系统后期维护造成不便或导致维护费用上升;
可测试性问题(D类)-指设计、编码中因考虑不周而导致后期系统可测试性差的问题。
处罚办法
问题发生率:
P=D/S
D=DA+0.5DB+0.25DC
其中:
P -问题发生率
D -1个季度内错误总数
DA -1个季度内A类错误总数
DB -1个季度内B类错误总数
DC -1个季度内C类错误总数
S -1个季度内收到问题报告单总数
1)当D≥3时,如果P≥3%,将进行警告处理,并予以公告;
2)当D≥5时,如果P≥5%,将进行罚款处理,并予以公告。
目 录
一、逻辑类代码问题 |
第5页 |
|
1、变量/指针在使用前就必须初始化 |
第5页 |
|
【案例1.1.1】 |
第5页 |
|
2、防止指针/数组操作越界 |
第5页 |
|
【案例1.2.1】 |
第5页 |
|
【案例1.2.2】 |
第6页 |
|
【案例1.2.3】 |
第7页 |
|
【案例1.2.4】 |
第8页 |
|
3、避免指针的非法引用 |
第9页 |
|
【案例1.3.1】 |
第9页 |
|
4、变量类型定义错误 |
第10页 |
|
【案例1.4.1】 |
第10页 |
|
5、正确使用逻辑与&&、屏蔽&操作符 |
第17页 |
|
【案例1.5.1】 |
第17页 |
|
6、注意数据类型的匹配 |
第18页 |
|
【案例1.6.1】 |
第18页 |
|
【案例1.6.2】 |
第18页 |
|
7、用于控制条件转移的表达式及取值范围是否书写正确 |
第20页 |
|
【案例1.7.1】 |
第20页 |
|
【案例1.7.2】 |
第21页 |
|
【案例1.7.3】 |
第22页 |
|
8、条件分支处理是否有遗漏 |
第24页 |
|
【案例1.8.1】 |
第24页 |
|
9、引用已释放的资源 |
第26页 |
|
【案例1.9.1】 |
第26页 |
|
10、分配资源是否已正确释放 |
第28页 |
|
【案例1.10.1】 |
第28页 |
|
【案例1.10.2】 |
第29页 |
|
【案例1.10.3】 |
第30页 |
|
【案例1.10.4】 |
第32页 |
|
【案例1.10.5】 |
第33页 |
|
【案例1.10.6】 |
第35页 |
|
【案例1.10.7】 |
第38页 |
|
11、防止资源的重复释放 |
第39页 |
|
【案例1.11.1】 |
第39页 |
|
12、公共资源的互斥性和竞用性 |
第40页 |
|
【案例1.12.1】 |
第40页 |
|
【案例1.12.2】 |
第40页 |
|
二、接口类代码问题 |
第43页 |
|
1、对函数参数进行有效性检查 |
第43页 |
|
【案例2.1.1】 |
第43页 |
|
【案例2.1.2】 |
第43页 |
|
【案例2.1.3】 |
第44页 |
|
|