欢迎来到天天文库
浏览记录
ID:57731731
大小:409.11 KB
页数:70页
时间:2020-03-25
《华为软件编程规范培训实例与练习.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、华为软件编程规范培训实例与练习问题分类1逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性、程序逻辑控制等方面出现的问题,在系统中起关键作用,将导致软件死机、功能正常实现等严重问题;接口类问题(B类)-指设计、编码中出现的函数和环境、其他函数、全局/局部变量或数据变量之间的数据/控制传输不匹配的问题,在系统中起重要作用,将导致模块间配合失效等严重问题;维护类问题(C类)-指设计、编码中出现的对软件系统的维护方便程度造成影响的问题,在系统中不起关键作用,但对系统后期维护造成不便或导致维护费用上升;可测试性问题(D类)-指设计、编码中因考虑不周而导致后期系统可测试性差的问题。处罚办法
2、问题发生率:P=D/SD=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页一、逻辑类代码问题第5页1、变量/指针在使用前就必须初始化第5页【案例1.1.1】第5页2、防止指针/数组操作越界第5页【案例1.2.1】第6页【案例1.2.2】第7页【案例1.2.3】第8页【案例1.2.4】第9页3、避免指针的非法引用第9页【案例1.3.
3、1】第10页4、变量类型定义错误第10页【案例1.4.1】第17页5、正确使用逻辑与&&、屏蔽&操作符第17页【案例1.5.1】第18页6、注意数据类型的匹配第18页【案例1.6.1】第18页【案例1.6.2】第20页7、用于控制条件转移的表达式及取值范围是否书写正确第20页【案例1.7.1】第21页【案例1.7.2】第22页【案例1.7.3】第24页8、条件分支处理是否有遗漏第24页【案例1.8.1】第26页9、引用已释放的资源第26页【案例1.9.1】第28页10、分配资源是否已正确释放第28页【案例1.10.1】第29页【案例1.10.2】第30页【案例1.10.3】第32页【案例1.
4、10.4】第33页【案例1.10.5】第35页【案例1.10.6】第38页【案例1.10.7】第39页11、防止资源的重复释放第39页【案例1.11.1】第40页12、公共资源的互斥性和竞用性第40页【案例1.12.1】第40页【案例1.12.2】第43页二、接口类代码问题第43页1、对函数参数进行有效性检查第43页【案例2.1.1】第43页【案例2.1.2】第44页【案例2.1.3】第46页【案例2.1.4】第47页【案例2.1.5】第48页【案例2.1.6】第49页2、注意多出口函数的处理第49页【案例2.2.1】第51页三、维护类代码问题第51页1、统一枚举类型的使用第51页【案例3.
5、1.1】第51页2、注释量至少占代码总量的20%第51页【案例3.2.1】对XXX产品BAM某版本部分代码注释量的统计第52页四、产品兼容性问题第52页1、系统配置、命令方式第52页【案例4.1.1】第53页【案例4.1.2】第54页2、设备对接第54页【案例4.2.1】第55页3、其他第55页【案例4.3.1】第58页五、版本控制问题第58页1、新老代码中同一全局变量不一致第58页【案例5.1.1】第59页六、可测试性代码问题第59页1、调试信息/打印信息的正确性第59页【案例6.1.1】一、逻辑类代码问题1、变量/指针在使用前就必须初始化【案例1.1.1】C语言中最大的特色就是指针。指针
6、的使用具有很强的技巧性和灵活性,但同时也带来了很大的危险性。在XXX的代码中有如下一端对指针的灵活使用:......_UC*puc_card_config_tab;......Get_Config_Table(AMP_CPM_CARD_CONFIG_TABLE,&ul_card_config_num,&puc_card_config_tab,use_which_data_area);......b_middle_data_ok=generate_trans_middle_data_from_original_data(puc_card_config_tab,Ul_card_config_nu
7、m).......其中红色部分巧妙的利用指向指针的指针为指针puc_card_config_tab赋值,而在兰色部分使用该指针。但在Get_Config_Table函数中有可能失败返回而不给该指针赋值。因此,以后使用的可能是一个非法指针。指针的使用是非常灵活的,同时也存在危险性,必须小心使用。指针使用的危险性举世共知。在新的编程思想中,指针基本上被禁止使用(JAVA中就是这样),至少也是被限制使用。而在我们交
此文档下载收益归作者所有