当前位置: 首页 > 专利查询>西门子公司专利>正文

一种静态代码质量分析方法和装置制造方法及图纸

技术编号:18763700 阅读:45 留言:0更新日期:2018-08-25 10:27
涉及软件工程技术领域,尤其涉及静态代码质量分析方法和装置,用以提高代码质量分析的效率和准确性。对待分析代码采用模式匹配的方法进行质量分析后确定待分析代码的缺陷趋势,根据缺陷趋势确定采用逻辑路径的方法对待分析代码进行质量分析所使用的至少一条第二代码质量检查规则,并采用至少一条第二代码质量检查规则进行质量分析得到最终的质量分析结果。由于采用模式匹配的方法可较快速地得到质量分析结果,利用该质量分析结果预测待分析代码的缺陷趋势,这样根据缺陷趋势进一步选择代码质量检查规则,一方面可以自动化确定规则,节省了人力和时间,另一方面,保证了所选择规则的客观性和准确性,进而保证质量分析结果的准确性。

【技术实现步骤摘要】
一种静态代码质量分析方法和装置
本专利技术涉及软件工程
,尤其涉及一种静态代码质量分析方法和装置。
技术介绍
现在,越来越多的产品(或系统)由运行在其上的软件来控制。因此,软件的质量对于该产品(或系统)的运行尤为重要。进而,如何有效地管理一个软件的质量也就成为一个亟需解决的问题。静态软件代码质量分析是软件质量管理的一个行之有效的方法。与传统主要依赖于人力的测试方法相比较,静态代码质量分析可利用计算机的计算能力对代码进行质量检查。图1示出了目前的一种静态代码质量分析过程。待分析的代码CODE输入静态代码质量分析装置10,静态代码质量分析装置10基于检查规则R对代码CODE进行质量分析,输出质量分析的结果F,其中包括缺陷D和/或警告W。静态代码质量分析的核心在于如何分析代码以识别潜在的质量问题。目前,静态代码质量分析有两种主要的技术:模式匹配和基于逻辑路径的分析。模式匹配是早期的静态代码质量分析的主要方法,其基本原理是定义一组编程规则,基于这些规则检查代码,若代码违背这些规则,则判定为可疑的编程模式,上报质量问题。模式匹配的优势是简单且能快速得到分析结果。但采用模式匹配方法只是检查可能引起质量问题的程序代码,容易出现大量错误的告警,需要耗费很多人工对结果进行进一步的筛查分析。基于逻辑路径的方法是当前主要采用的一种静态代码质量分析方法,代码质量分析装置需要逐一列举待分析代码的所有内在逻辑执行路径,然后针对每一条内在逻辑执行路径,应用代码质量检查规则来识别潜在的质量问题。与模式匹配相比,基于逻辑路径的方法方法可以获得更准确的分析结果。在分析之前需要人工定义规则,费时费力。并且分析结果的准确性也会依赖于每一条内在逻辑执行路径上的规则。如果规则定义得过少,质量分析的过程耗时较短,但可能会漏掉一些关键的缺陷。如果规则定义得过多,则分析过程过于复杂,耗时长,分析结果总量也会非常庞大,仍需要耗费一定的人工来筛选出真正的质量问题。
技术实现思路
有鉴于此,本专利技术提供一种静态代码质量分析方法和装置,用以提高静态代码质量分析的效率和分析结果的准确性。第一方面,提供一种静态代码质量分析方法。该方法中,首先可基于至少一条第一代码质量检查规则,对待分析代码采用模式匹配的方法进行质量分析,得到至少一条第一质量分析结果;然后根据所述至少一条第一质量分析结果,确定所述待分析代码的缺陷趋势;接下来根据所述缺陷趋势,确定至少一条第二代码质量检查规则;最后,基于所述至少一条第二代码质量检查规则,采用逻辑路径的方法对所述待分析代码进行质量分析,得到至少一条第二质量分析结果。由于采用模式匹配的方法可以能够较快速地得到质量分析结果,但并不将该结果作为最终的质量分析结果,而是利用该质量分析结果确定待分析代码的缺陷趋势,这样根据缺陷趋势进一步确定采用逻辑路径的方法进行质量分析所使用的规则,一方面易于实现自动化确定规则,节省了人力和时间,另一方面,保证了所选择规则的客观性和准确性,进而保证质量分析结果的准确性。可选地,所述缺陷趋势包括至少一条缺陷,以及所述待分析代码发生所述至少一条缺陷中的每一条缺陷的第一概率。这样,缺陷趋势就能够表示所述待分析代码中可能存在哪些缺陷,且存在每一种缺陷的概率。可选地,所述至少一条第一代码质量检查规则中的每一条对应于至少一种缺陷,符合该规则的代码中出现该规则所对应的每一条缺陷的第二概率均大于预设的第二缺陷概率阈值。该方法中,在根据所述至少一条第一质量分析结果,预测得到所述待分析代码的缺陷趋势之前,还包括:对于所述至少一条第一代码质量检查规则所对应的每一种缺陷,确定该缺陷所对应的所述至少一条代码质量检查规则中的每一条;对于确定的每一条,得到所述至少一条第一质量分析结果中,符合该条代码质量检查规则的结果出现的第一次数;根据得到的所有所述第一次数,得到该缺陷可能出现的第二次数;根据得到的所有所述第二次数,预测所述待分析代码出现该缺陷的所述第一概率。提供了一种根据模式匹配的方法得到的质量分析结果来预测待分析代码的缺陷趋势。可选地,该方法中,可仅根据所述缺陷趋势来确定采用逻辑路径的方法进行代码质量分析所使用的第二代码质量检查规则。或者,可选地,该方法中,不仅根据所述缺陷趋势,还根据及下列因素中的至少一个,确定所述至少一条第二代码质量检查规则:无缺陷的代码在使用一条规则进行代码质量分析时被误判为存在缺陷的第三概率;使用一条规则检查缺陷时所使用的检查算法对处理器的占用率。第二方面,本专利技术实施例提供一种静态代码质量分析装置,包括:一个第一检查模块,用于基于至少一条第一代码质量检查规则,对待分析代码采用模式匹配的方法进行质量分析,得到至少一条第一质量分析结果;一个趋势确定模块,用于根据所述至少一条第一质量分析结果,确定所述待分析代码的缺陷趋势;一个规则确定模块,用于根据所述缺陷趋势,确定至少一条第二代码质量检查规则;以及一个第二检查模块,用于基于所述至少一条第二代码质量检查规则,采用基于逻辑路径的方法对所述待分析代码进行质量分析,得到至少一条第二质量分析结果。由于采用模式匹配的方法可以能够较快速地得到质量分析结果,但并不将该结果作为最终的质量分析结果,而是利用该质量分析结果确定待分析代码的缺陷趋势,这样根据缺陷趋势进一步确定采用逻辑路径的方法进行质量分析所使用的规则,一方面易于实现自动化确定规则,节省了人力和时间,另一方面,保证了所选择规则的客观性和准确性,进而保证质量分析结果的准确性。可选地,所述趋势确定模块所确定的所述缺陷趋势包括至少一条缺陷,以及所述待分析代码发生所述至少一条缺陷中的每一条缺陷的第一概率。这样,缺陷趋势就能够表示所述待分析代码中可能存在哪些缺陷,且存在每一种缺陷的概率。可选地,所述第一检查模块所使用的所述至少一条第一代码质量检查规则中的每一条对应于至少一种缺陷,符合该规则的代码中出现该规则所对应的每一条缺陷的第二概率均大于预设的第二缺陷概率阈值;所述趋势确定模块,还用于在根据所述至少一条第一质量分析结果,预测得到所述待分析代码的缺陷趋势之前,对于所述至少一条第一代码质量检查规则所对应的每一种缺陷,确定该缺陷所对应的所述至少一条代码质量检查规则中的每一条;对于确定的每一条,得到所述至少一条第一质量分析结果中,符合该条代码质量检查规则的结果出现的第一次数;根据得到的所有所述第一次数,得到该缺陷可能出现的第二次数;根据得到的所有所述第二次数,预测所述待分析代码出现该缺陷的所述第一概率。提供了一种根据模式匹配的方法得到的质量分析结果来预测待分析代码的缺陷趋势。可选地,所述规则确定模块具体用于:仅根据所述缺陷趋势确定所述至少一条第二代码质量检查规则。或者,可选地,所述规则确定模块具体用于:根据所述缺陷趋势,以及下列因素中的至少一个,确定所述至少一条第二代码质量检查规则:无缺陷的代码在使用一条规则进行代码质量分析时被误判为存在缺陷的第三概率;使用一条规则检查缺陷时所使用的检查算法对处理器的占用率。这样在确定第二代码质量检查规则时,不仅依据所述待分析代码的缺陷趋势,还根据代码质量检查规则本身的误判的属性和/或对系统资源的占用来选择规则,可依据不同的分析需求来灵活选择规则,以得到期望的分析结果。第三方面,提供一种静态代码质量本文档来自技高网
...

【技术保护点】
1.静态代码质量分析方法,其特征在于,包括:基于至少一条第一代码质量检查规则,对待分析代码采用模式匹配的方法进行质量分析,得到至少一条第一质量分析结果;根据所述至少一条第一质量分析结果,确定所述待分析代码的缺陷趋势;根据所述缺陷趋势,确定至少一条第二代码质量检查规则;基于所述至少一条第二代码质量检查规则,采用逻辑路径的方法对所述待分析代码进行质量分析,得到至少一条第二质量分析结果。

【技术特征摘要】
1.静态代码质量分析方法,其特征在于,包括:基于至少一条第一代码质量检查规则,对待分析代码采用模式匹配的方法进行质量分析,得到至少一条第一质量分析结果;根据所述至少一条第一质量分析结果,确定所述待分析代码的缺陷趋势;根据所述缺陷趋势,确定至少一条第二代码质量检查规则;基于所述至少一条第二代码质量检查规则,采用逻辑路径的方法对所述待分析代码进行质量分析,得到至少一条第二质量分析结果。2.如权利要求1所述的方法,其特征在于,所述缺陷趋势包括至少一条缺陷,以及所述待分析代码发生所述至少一条缺陷中的每一条缺陷的第一概率。3.如权利要求2所述的方法,其特征在于,所述至少一条第一代码质量检查规则中的每一条对应于至少一种缺陷,符合该规则的代码中出现该规则所对应的每一条缺陷的第二概率均大于预设的第二缺陷概率阈值;在根据所述至少一条第一质量分析结果,预测得到所述待分析代码的缺陷趋势之前,还包括:对于所述至少一条第一代码质量检查规则所对应的每一种缺陷,确定该缺陷所对应的所述至少一条代码质量检查规则中的每一条;对于确定的每一条,得到所述至少一条第一质量分析结果中,符合该条代码质量检查规则的结果出现的第一次数;根据得到的所有所述第一次数,得到该缺陷可能出现的第二次数;根据得到的所有所述第二次数,预测所述待分析代码出现该缺陷的所述第一概率。4.如权利要求2或3所述的方法,其特征在于,根据所述缺陷趋势,确定至少一条第二代码质量检查规则,包括:根据所述缺陷趋势,以及下列因素中的至少一个,确定所述至少一条第二代码质量检查规则:无缺陷的代码在使用一条规则进行代码质量分析时被误判为存在缺陷的第三概率;使用一条规则检查缺陷时所使用的检查算法对处理器的占用率。5.静态代码质量分析装置(30),其特征在于,包括:一个第一检查模块(301),用于基于至少一条第一代码质量检查规则,对待分析代码采用模式匹配的方法进行质量分析,得到至少一条第一质量分析结果;一个趋势确定模块(302),用于根据所述至少一条第一质量分析结果,确定所述待分析代码的缺陷趋势;一个规则确定模块(303),用于根据所述缺陷趋势,确定至少一条第...

【专利技术属性】
技术研发人员:彭飞
申请(专利权)人:西门子公司
类型:发明
国别省市:德国,DE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1