编码规范之自动分析工具FindBugs课件.ppt

编码规范之自动分析工具FindBugs课件.ppt

ID:57173416

大小:1.31 MB

页数:58页

时间:2020-08-02

编码规范之自动分析工具FindBugs课件.ppt_第1页
编码规范之自动分析工具FindBugs课件.ppt_第2页
编码规范之自动分析工具FindBugs课件.ppt_第3页
编码规范之自动分析工具FindBugs课件.ppt_第4页
编码规范之自动分析工具FindBugs课件.ppt_第5页
资源描述:

《编码规范之自动分析工具FindBugs课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、质量控制室编码规范之自动分析工具FindBugs2011-09-13编码规范编码规范重要性软件缺陷模式软件缺陷解决方案编码规范重要性(1)能使你的代码更加易于维护。程序并不是一次性的产品,它需要扩展和修改还有维护。但是进行这些操作的人并一定就是原来的编写者,即使是自己写的程序在多年之后(也可能是几个月后),你也不记得你原先编写的细节。所以为了让接班人也能看懂原先编写者的意图。就必须将规范编码进行到底!可以提高代码质量。谁编程都不是一次性完成的,是需要不断的测试与调试,以各种状态来修改自己的代码,而将代码规范化,就能更好的表达代码实现的逻辑意图。从而减少调试而成为快捷

2、高效的代码。能使你的代码规范标准化。就是将你本身个性化溶于团队化的过程,当你熟练运用编码规范了,就会在以后的职场道路上更加宽广。编码规范重要性(2)编码规范是一种习惯,如果程序员没有一个共同的标准可以遵守,编码风格各异,程序可维护性差、可读性也很差。通过建立代码编写规范,形成开发小组编码约定,能提高程序的可靠性、可读性、可修改性、可维护性、可继承性和一致性,可以保证程序代码的质量,做到“简单清晰、无懈可击”。同时继承软件开发成果,充分利用资源,使开发人员之间的工作成果可以共享。编码规范重要性(3)软件规范的目的:提高软件产品的质量(健壮性、稳定性、运行效率)提高代码

3、的可维护性(便于调试、测试)提高代码的可读性(便于维护、阅读理解)提高团队的开发效率(规范的一致性)保证产品开发成功降低开发成本软件缺陷模式缺陷模式概述故障模式安全漏洞模式疑问代码模式规则模式缺陷模式概述缺陷模式是和语言本身相关的,不同的语言有着不同的缺陷模式。我们以Java语言为背景来描述其缺陷模式,将软件的缺陷模式分为四个层次,即故障模式、漏洞模式、疑问代码模式和规则模式。软件缺陷模式故障模式此类缺陷是故障,一经产生,会导致系统出错。数组越界模式空指针使用模式非法计算模式死循环模式资源泄漏模式并发模式安全漏洞模式安全漏洞模式:此类缺陷会给系统留下安全隐患,为攻击

4、该系统开了绿灯。未验证的输入模式滥用API模式安全特性模式不合理的异常处理低质量代码模式封装不当模式竞争条件模式疑问代码模式此类缺陷是不应该发生的,它未必会造成系统的错误,但可能会隐含某些故障,或者是由初级软件工程师不理解造成的。性能缺陷模式:此类缺陷会降低系统的性能疑问代码模式:让人费解的代码规则模式规则模式:软件开发总要遵循一定的规则,某个团队也有一些开发规则,违反这些规则也是不允许的。代码规则复杂性规则控制流规则命名规则可移植性规则资源规则缺陷模式缺陷模式概述故障模式安全漏洞模式疑问代码模式规则模式故障模式(1)1、数组越界故障的故障模式(OutofBound

5、sArrayAccessFaultOBAF)定义:设某数组定义为Array[minmax],若引用Array[i]且imax都是数组越界故障。(1)对程序中任何出现Array[i]的地方,都要判断i的范围,可能有三种情况:若i是在数组定义的范围内,则是正确的;若i是在数组定义的范围外,则是OBAF;若i是不确定的,则Array[i]是否是OBAF则不确定例:数组越界intdata[10];for(i=0;i<=10;i++){data[i]=...};(2)字符串拷贝过程中存在的数组越界故障。(3)在结构类型中,由于结构体中的成员变量是连续存放的,在

6、数组的拷贝过程中,多余的数据会自动的存放在后面所定义的成员变量中,这种情况数组并不产生越界错误。2.空指针使用故障(NULLPointerDereferenceFaultNPDF)定义:引用空指针或给空指针赋值的都是空指针使用故障。例:引用空指针Controlc=getControl();if(c==null&& c.isDisposed())return;故障模式(2)故障模式(3)3.非法计算类故障(IllegalComputingFaultILCF)定义:非法计算类故障:是指计算机不允许的计算。一旦非法计算类故障产生,系统将强行退出。例如:除数为0故障。对数自

7、变量为0或负数故障。根号内为负数的故障。4.死循环结构模式(DeadLoopFaultDLF)定义:在控制流图中,对任何一个循环结构,包括:FOR语句中的死循环结构;WHILE语句中的死循环结构;DO-WHILE语句中的死循环结构;GOTO语句中的死循环结构;函数循环调用造成的死循环结构。故障模式(4)例:死循环(无增量)for(i=1;i<=100;j++)例:死循环(无结束条件)for(i=1;i++)例:死循环(增量变化不能使程序结束)for(i=1;i==100;i=i+2)5.资源泄漏故障(RLF)定义:资源泄漏故障:在Java程序中,当一个资源被打开

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。