244华为软件编程规范培训案例和练习(68.docx
上传人:13****88 上传时间:2024-09-14 格式:DOCX 页数:89 大小:93KB 金币:6 举报 版权申诉
预览加载中,请您耐心等待几秒...

244华为软件编程规范培训案例和练习(68.docx

244华为软件编程规范培训案例和练习(68.docx

预览

免费试读已结束,剩余 79 页请下载文档后查看

6 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第页共NUMPAGES89页第PAGE\*MERGEFORMAT89页共NUMPAGES\*MERGEFORMAT89页软件编程规范培训实例与练习第一版深圳市华为技术无量公司阐明本文分为两部分,第一部分为中研《关于规范开发人员设计编码行为、进步软件质量的告诉》文件,其中包含来自测试人员总结的大量的包括逻辑类、接口类、保护类和可测试类四个方面的生动实例,是典型的软件编程规范培训实例,亦可供我司员工自学;第二部分是一个练习,作为软件编程规范教学运用。案例与练习第一部分深圳市华为技术无量公司研发管理办公室文件关于规范开发人员设计编码行为、进步软件质量的告诉为更有效地贯彻履行《软件编码规范总则》,强化开发人员规范认识,进一步规范开发人员的设计、编码习气(最少“犯过的错误,不能再犯”),为流程下游部门(如测试部)提供高质量的输出,使下游部门避免低效、反复劳动,特此告诉,请各开发部门遵照履行。以下成绩由测试部的成绩单、案例分类汇总而成,将常见设计、编码成绩分为四类:逻辑类、接口类、保护类和可测试性,成绩级别为:逻辑类>接口类>保护类>可测试性。本告诉中罗列成绩如再次出现,将进行通报批评并记入干部部关键事情库。成绩分类逻辑类成绩(A类)-指设计、编码中出现的计算正确性和分歧性、程序逻辑控制等方面出现的成绩,在零碎中起关键作用,将导致软件死机、功能正常完成等严重成绩;接口类成绩(B类)-指设计、编码中出现的函数和环境、其他函数、全局/局部变量或数据变量之间的数据/控制传输不匹配的成绩,在零碎中起重要作用,将导致模块间配合失效等严重成绩;保护类成绩(C类)-指设计、编码中出现的对软件零碎的保护方便程度构成影响的成绩,在零碎中不起关键作用,但对零碎后期保护构成不便或导致保护费用上升;可测试性成绩(D类)-指设计、编码中因考虑不周而导致后期零碎可测试性差的成绩。处罚办法成绩发生率: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%,将进行罚款处理,并予以公告。目录一、逻辑类代码成绩1、变量/指针在运用前就必须初始化【案例1.1.1】2、防止指针/数组操作越界【案例1.2.1】【案例1.2.2】【案例1.2.3】【案例1.2.4】3、避免指针的非法征引【案例1.3.1】4、变量类型定义错误【案例1.4.1】5、正确运用逻辑与&&、屏蔽&操作符【案例1.5.1】6、留意数据类型的匹配【案例1.6.1】【案例1.6.2】7、用于控制条件转移的表达式及取值范围能否书写正确【案例1.7.1】【案例1.7.2】【案例1.7.3】8、条件分支处理能否有脱漏【案例1.8.1】9、征引已释放的资源【案例1.9.1】10、分配资源能否已正确释放【案例1.10.1】【案例1.10.2】【案例1.10.3】【案例1.10.4】【案例1.10.5】【案例1.10.6】【案例1.10.7】11、防止资源的反复释放【案例1.11.1】12、公共资源的互斥性和竞用性【案例1.12.1】【案例1.12.2】二、接口类代码成绩1、对函数参数进行有效性检查【案例2.1.1】【案例2.1.2】【案例2.1.3】【案例2.1.4】【案例2.1.5】【案例2.1.6】2、留意多出口函数的处理【案例2.2.1】三、保护类代码成绩1、分歧枚举类型的运用【案例3.1.1】2、注释量最少占代码总量的20%【案例3.2.1】对XXX产品BAM某版本部分代码注释量的统计四、产品兼容性成绩1、零碎配置、命令方式【案例4.1.1】【案例4.1.2】2、设备对接【案例4.2.1】3、其他【案例4.3.1】五、版本控制成绩1、新老代码中同一全局变量不分歧【案例5.1.1】六、可测试性代码成绩1、调试信息/打印信息的正确性【案例6.1.1】一、逻辑类代码成绩1、变量/指针在运用前就必须初始化【案例1.1.1】C言语中最大的特点就是指针。指针的使器具有很强的技巧性和灵活性,但同时也带来了很大的风险性。在XXX的代码中有如下一端对指针的灵活运用:......_UC*puc_card_config_tab;......Get_Config_Table(AMP_CPM_CARD_CONFIG_TAB