软件质量保证与测试PPT课件第8章高质量编程.ppt
《软件质量保证与测试PPT课件第8章高质量编程.ppt》由会员分享,可在线阅读,更多相关《软件质量保证与测试PPT课件第8章高质量编程.ppt(49页珍藏版)》请在三一办公上搜索。
1、1,第8章高质量编程,2,内容提要,8.1代码风格8.1.1程序的书写格式8.1.2Windows程序命名规则8.1.3共性规则8.1.4表达式和基本语句8.2函数设计规则8.2.1函数外部特性的注释规则8.2.2参数规则8.2.3返回值的规则8.2.4函数内部的实现规则8.3提高程序质量的技术8.3.1内存管理规则8.3.2面向对象的设计规则8.4代码审查8.4.1代码审查的主要工作8.4.2代码审查的流程8.4.3Java代码审查的常见错误8.5小结,3,8.1代码风格,统一编程风格的意义很大,是一个优秀而且职业化的开发团队所必需的素质。增加开发过程代码的强壮性、可读性、易维护性。减少有经
2、验和无经验开发人员编程所需的脑力工作,为软件的良好维护性打下好的基础。通过人为以及自动的方式对最终软件应用质量标准,使新的开发人员快速适应项目氛围。支持项目资源的复用:允许开发人员从一个项目区域移动到另一个,而不需要重新适应新的子项目团队的氛围。,4,8.1.1程序的书写格式,版本的声明格式,5,头文件的书写格式,头文件必须包含下列内容:头文件开头处的版权和版本声明。预处理块。函数和类结构声明等。,6,定义文件的书写格式,定义文件的书写格式:必须包含三部分内容:定义文件开头处的版权和版本声明;对一些头文件的引用;程序的实现体(包括数据和代码)。,7,空行的使用,8,代码行内的空格,9,8.1.
3、2Windows程序命名规则,匈牙利命名法是一种编程时的命名规范。基本原则是:变量名属性类型对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为frmSwitchboard。这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成lblSwitchboard。可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了
4、代码的可读性,方便各程序员之间相互交流代码。据说这种命名法是一位叫Charles Simonyi的匈牙利程序员发明的,后来他在微软呆了几年,于是 这种命名法就通过微软的各种产品和文档资料向世界传播开了。现在,大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。,10,常用的数据类型前缀,11,常用的控件名前缀,12,8.1.3共性规则,提示1较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。示例:如下单词的缩写能够被大家基本认可。temp 可缩写为 tmp;flag 可缩写为 flg;statistic 可缩写为 stat
5、;increment 可缩写为 inc;message 可缩写为 msg;提示2 应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。标识符最好采用英文单词或其组合,便于记忆和阅读,可望文知意,不必进行“解码”。不能使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。例如不要把CurrentValue写成NowValue。,13,8.1.4表达式和基本语句,1.表达式与复合表达式示例如下表达式,考虑不周就可能出问题,也较难理解。*stat_poi+=1;*+stat_poi+=1;应分别改为如下。*stat_poi+=1;stat_poi+;
6、/此二语句功能相当于“*stat_poi+=1;”和+stat_poi;*stat_poi+=1;/此二语句功能相当于“*+stat_poi+=1;”,14,if语句,假设布尔变量名字为flag,它与零值比较的标准if语句如下:if(flag)/表示flag为真if(!flag)/表示flag为假其它的用法都属于不良风格,例如:if(flag=TRUE)if(flag=1)if(flag=FALSE)if(flag=0)/我觉得应该采用if(flag=TRUE)来表示,赋值用flag=TRUE;/因为不同操作系统的TRUE和FALSE不一样,如WINDOWS里TRUE是1而有些系统/TRUE是
7、0 cyj应当将整型变量用“=”或“!=”直接与0比较。假设整型变量的名字为value,它与零值比较的标准if语句如下:if(value=0)if(value!=0)不可模仿布尔变量的风格而写成if(value)/会让人误解value是布尔变量if(!value)不可将浮点变量用“=”或“!=”与任何数字比较。,15,循环语句的效率,16,建议,【建议】如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。例如,下面代码:,17,建议,【建议】for语句的循环控制变量的取值采用“半开半闭区间”写法。例如,18,C+类中的常量,不能在类声明中初始化const数据成员。以下用法
8、是错误的,因为类的对象未被创建时,编译器不知道SIZE的值是什么。class A const int SIZE=100;/错误,企图在类声明中初始化const数据成员int arraySIZE;/错误,未知的SIZE;const数据成员的初始化只能在类构造函数的初始化表中进行,例如class A A(int size);/构造函数 const int SIZE;A:A(int size):SIZE(size)/构造函数的初始化表 A a(100);/对象a的SIZE值为100A b(200);/对象b的SIZE值为200,19,8.2函数设计规则,函数是C+/C程序的基本功能单元,其重要性不言
9、而喻。函数设计的细微缺点很容易导致该函数被错用,所以光使函数的功能正确是不够的。函数接口的两个要素是参数和返回值。C+语言中,函数的参数和返回值的传递方式有三种:值传递(pass by value)、指针传递(pass by pointer)、引用传递(pass by reference)。,20,8.2.1函数外部特性的注释规则,函数外部特性注释必须在函数体上部采用中文说明,标准格式如下:/输入参数:/参数1:(指出参数的物理意义、量纲、取值范围等信息)/参数N:/函数返回:/(指出返回值的物理意义、量纲、取值范围等信息)/功能描述:/注意事项:/,21,8.2.2参数规则,建议对仅作为输入
10、的参数,尽量使用const修饰符。如果输入参数以值传递的方式传递对象,则宜改用“const&”方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率。参数缺省值只能出现在函数的声明中,而不能出现在定义体中。例如:void Foo(int x=0,int y=0);/正确,缺省值出现在函数的声明中void Foo(int x=0,int y=0)/错误,缺省值出现在函数的定义体中如果函数有多个参数,参数只能从后向前挨个儿缺省,否则将导致函数调用语句怪模怪样。例如:void Foo(int x,int y=0,int z=0);/正确void Foo(int x=0,int y,int z
11、=0);/错误【建议】避免函数有太多的参数,参数个数尽量控制在5个以内。如果参数太多,在使用时容易将参数类型或顺序搞错。【建议】尽量不要使用类型和数目不确定的参数。C标准库函数printf是采用不确定参数的典型代表,其原型为:int printf(const chat*format,argument);这种风格的函数在编译时丧失了严格的类型安全检查。【建议】非调度函数应减少或防止控制参数,尽量只使用数据参数。该规则可降低代码的控制耦合。,22,8.2.3返回值的规则,【建议】有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。【建议】如果函数的返回值是一个对象,有些场合
12、用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。【建议】函数要尽量只有一个返回点。不能返回引用和指针到局部对象。说明 离开函数作用域时会销毁局部对象;使用销毁了的对象会造成灾难。不可返回由 new 初始化,之后又已解除引用的指针。说明 由于支持链式表达式,造成返回对象不能删除,导致内存泄漏。,23,8.2.4函数内部的实现规则,提示在同一项目组应明确规定对接口函数参数的合法性检查应由函数的调用者负责还是由接口函数本身负责,缺省是由函数调用者负责。说明:对于模块间接口函数的参数的合法性检查这一问题,往往有两个极端现象,即:要么是调用者和被调用
13、者对参数均不作合法性检查,结果就遗漏了合法性检查这一必要的处理过程,造成问题隐患;要么就是调用者和被调用者均对参数进行合法性检查,这种情况虽不会造成问题,但产生了冗余代码,降低了效率。(C+代码)使 operator=检查自赋值。说明 执行检查有两点重要的理由:首先,派生类对象的赋值涉及到调用每一个基类(在继承层次结构中位于此类的上方)的赋值操作符,跳过这些操作符就可以节省很多运行时间。其次,在复制“rvalue”对象前,赋值涉及到解构“lvalue”对象。在自赋值时,rvalue 对象在赋值前就已销毁了,因此赋值的结果是不确定的。,24,8.3提高程序质量的技术,8.3.1内存管理规则Bil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 质量保证 测试 PPT 课件 质量 编程

链接地址:https://www.31ppt.com/p-6063684.html