软件代码审查.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

*数据数据和变量变量在使用前是否已初始化?变量类型是否匹配?变量的声明是否按组划分为外部和内部的?每个命名是否仅用于一个用途?常量常量名是否都大写?常量是否都是通过“#define”定义?用于多个文件中的常量是否在一个INCLUDE头文件中定义?指针定义为指针的变量是否作为指针使用(而不是作为整数)?指针是否初始化?释放内存后是否将指针立即设置为NULL(或0)(大多数编译器释放内存时不将指针清空)?传递指针到另一个函数的代码是否首先检查了指针的有效性(非零)?通过指针写入动态分配内存的代码是否首先检查了指针的有效性(非零)?其它宏的命名是否都大写?数组是否越界(上下界)?变量在使用前是否已初始化?intm3_ps;if(m3_ps=1250)m3_ps=0;变量类型是否匹配?CharsFlag;IntiTemp;……sFlag=iTemp

数组是否越界(上下界)?if(stime42=1800){ HistoryRecord[9]=1; stime42=0}而数组的定义为:unsignedintHistoryRecord[9];故造成了数组HistoryRecord越界的错误。*接口在所有的函数及过程调用中,参数的个数都正确吗?形参与实参类型匹配吗?参数顺序正确否?如果访问共享内存,是否具有相同的共享内存结构模式?*注释注释是否与代码一致?用于理解代码的注释是否提供了必要的信息?除最明显的声明外,是否所有声明都有注释?*文档软件文档是否与软件代码一致?是否对数组和变量的作用进行了描述?*例外情况处理是否所有可能的错误情况都已加以考虑?在继续函数调用后代码之前是否检查了其返回值(指示请求成功或失败)?*内存在向动态分配内存写入之前是否检查了内存申请是否成功?若采用动态分配内存,内存空间分配是否正确?当内存空间不再需要时,是否被明确地释放?int*p;p=newint;if(!p){…*其它剩余所有不能归于上述所讲类型的*审查记录序号文件名位置缺陷描述类型性质类型:可追溯性、逻辑、数据、接口、注释、文档、例外情况处理、内存、其它性质:错误、缺点、轻微、建议三、结合代码文件的举例说明*结合代码文件的举例说明文件结构有三部分组成:第一部分: 头文件引用第二部分: 函数声明 常量声明 变量声明第三部分:函数定义{ 变量的声明 代码体,有三种结构:顺序、条件和循环 }*第一部分:头文件引用是否引用了多余的头文件是否遗漏引用该有的头文件(一般的编译器能识别)引用头文件时是否用的时相对路径#include“c:\include\global.h“#include“global.h“*第二部分:函数、常量和变量声明是否声明了多余的函数、常量和变量是否遗漏声明该有的函数、常量和变量(一般的编译器能识别)*第三部分:函数体中变量声明是否声明了多余的变量声明的变量名是否有与全局变量同名当变量声明为静态变量时,应查看是否合适或必要StaticintiSum;*第三部分:函数体中顺序结构的代码体变量在引用前是否赋初值变量在引用时是否重复赋值遇到赋值运算时,应查看赋值两边数据类型是否匹配//之前没有对ccBomp赋值SwitchflagCase“1”:ccBomp=1break;Case“2”ccBomp=2break;Default:break;……If(ccBomp==1)……ccBomp=0SwitchflagCase“1”:ccBomp=1break;Case“2”ccBomp=2break;Default:ccBomp=0;break;If(ccBomp==1)……Unsignedcharam;Intamoun;……am=amoun;….*第三部分:函数体中if条件结构的代码体If分支中条件是否正确条件恒成立条件中某些变量名写错条件中某些符合写错,如写成、=写成、写成、||写成|等遗漏了某些判断条件等当只有if分支没有else分支时,应检查是否真的不需要else分支当出现if…elseif…elseif格式时,应检查:是否有else分支是否elseif中条件不合适或者多余等If条件语句放置的位置是否合适条件恒成立If(xx100){ha=Quent(

文档评论(0)

199****5547 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档