- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
?
?
基于Sonar的代码质量检测技术研究
?
?
蔡建军任女尔魏金津
摘要:随着数据中心软件业务的快速发展,给质量控制带来极大的挑战。采用Sonar检测代码质量并开发扩展插件,按项目和人员两个维度统计代码质量情况,并集成Metrics,Druid以检测代码执行时的逻辑调用情况。通过建立好的评价体系,可以很好地提升内部软件代码质量管理的水平,加强对软件代码质量的在软件开发各个阶段的掌控。
关键词:Sonar;Metrics;Druid
:TP311????:A
:1009-3044(2019)14-0195-05
1概述
数据资源中心软件业务的快速发展,带来了软件框架异构多样、软件资产复用率低的问题,更有代码质量参差不齐等带来的一系列软件可读性和维护性问题,传统的依靠人力的代码质量检测工作已经难以为继。所以需要构建一套自动化,完整高效的代码质量评价体系,将开发人员的工作质量进行量化和评级,用以提高软件项目开发过程中的代码质量和软件部署之后的可维护性。
从软件工程方法学进行统筹思考,着眼于软件工程中对于软件代码质量评价的几个重要指标:代码漏洞、BUG、坏味道、SQL语句平均执行时间、函数平均调用时间等,结合Sonar的代码质量统计功能,对Sonar插件进行扩展开发,按项目、人员两个维度统计代码质量增量情况,集成Metrics与Druid以检测代码运行时的调用逻辑,作为评价代码质量的重要指标之一。
依托于成熟的Sonar软件质量监测系统,构建一套科学的可量化的评价体系,从而达到减少人工工作,提升内部软件代码质量管理的水平,加强对软件代码质量的在软件开发各个阶段的掌控,对于科学管理软件资产,进一步提升软件复用率具有非常重要的意义。
2基于Sonar衡量代码质量
1)Sonar介绍
软件行业内常将Sonar作为技术债务【1】管控的主流工具。Sonar是一个开源的代码质量分析平台,能够管理代码的质量,通过扫描代码,可以检测到代码的漏洞和潜在的编码层次的逻辑问题【2】。
Sonar的插件机制可以集成不同的工具,如代码分析、持续集成,我们还可以开发插件对检测结果进行再加工处理。
2)Jenkins集成Sonar
持续集成(CI)是个简单重复劳动,由人来操作费时费力,使用自动化集成技术能够节约大量的人力。将持续集成Jenkins与代码自动扫描集成【3】,能够自动对代码进行持续的代码规范扫描,并输出扫描结果。即使代码进行更改,持续集成技术也能够自动触发Sonar进行扫描,这对开发人员进行代码漏洞及规范扫描的帮助作用是非常明显的。
3)衡量代码质量的意义
代码质量,是衡量系统质量的重要指标。基于Sonar的扫描功能,构建一套软件代码质量评价体系,定期对系统内的项目进行统计分析,有利于及早发现问题,更好地掌控软件开发过程,做到问题早发现早解决,避免问题滞后导致的技术债务越滚越多的恶性循环,有利于提高代码质量监管能力,节约代码质量管理人力,提升整体的代码质量水准。
3软件开发质量统计机制
1)基于Sonar的代码质量检测体系
借助于Sonar所支持的代碼质量检测机制,能够检测出项目中存在的一些问题,包括但不限于:可能存在的漏洞、安全问题、代码坏味道等。
这些统计数据可以非常直观地表现出一个工程的代码质量好坏,可以作为统计代码质量的量化指标。通过这些代码中发现的代码质量问题,我们不仅可以避免工程交付后,运行过程中出现致命性的问题,而且可以提高软件开发人员的工作规范,避免在日后的开发工作中再次出现类似的问题。
Sonar在6+的版本上增加了对“作者”的支持。作者的概念是:在版本控制系统中(如SVN,Git),某个文件的最后一次提交者即是当前文件的作者。
在Sonar中,检测出来的代码问题分为以下几种:1、提示级;2、次要级;3、主要级;4、严重级;5、阻断级。其严重程度依次递增,提示级对代码的整体运行几乎没有任何影响,而阻断级可能会产生各种严重的影响,甚至影响系统运行的稳定性和安全性。因此,越是高级的问题将会带来更大的威胁,也就意味着代码的质量越差,系统越不完善。
在有了作者这个概念之后,使对每一位参与开发的开发者进行各自的代码质量统计以及工作量统计成了可能。Sonar会记录当前项目下每一位作者的所有问题数量。对每一位参与开发的开发者,通过判断他所编写的代码中所包含的代码质量问题(Bug、漏洞、坏味道等),构建一个合理的评价体系,对每位开发者的代码质量进行评分。可以作为评估该开发者开发质量的一个重要指标。
2)Sonar登录验证
在Sonar提供的完备的代码质量统计结果的前提下,以代码质量统计体系标准为原则,构建代码统计质量对比体系。考虑到代码迭代周期,决定以月度为最小比较单位,上设季度对比。
Sonar对外提供了一些必要的接
文档评论(0)