代码质量管理平台Sonar在软件项目管理中的应用研究

时间:2022-03-31 03:25:50

代码质量管理平台Sonar在软件项目管理中的应用研究

摘 要文中对代码质量管理平台Sonar的质量评估模型和技术优势进行了深入剖析和解读,介绍了将Sonar平台在软件项目管理中的意义和价值。从多个角度阐述了代码质量管理对软件产品质量的重要性,并通实际项目导入的数据比对分析展示了该平台对实现企业软件项目管理中的代码质量透明化的重大意义。

【关键词】软件质量保证 代码质量管理 Sonar 持续集成

还记得《人月童话》引发的软件界关于质量与成本的大辩论吗?在软件行业内,产品质量与人的个体能力息息相关。一个好与差的程序员相比,因其代码质量引发的软件产品后续维护成本不能用简单的比例来换算,无数教训告诉我们,放任程序设计开发缺陷到项目越是后期,项目组将要付出的代价越惨重。事实再一次告诉我们:软件质量是开发出来的而不是测试出来的。

那么,是否能够找到一种能够在软件研发过程中切实可行的代码质量保证的方法呢?带着这个问题,我们调研了当前软件行业内的可用与代码质量检查的主流方法和主要工具,综合比较结果显示,从引入成本、使用便利性、扩展性和应用范围等几方面统合考量,我们发现了Sonar这个专门针对代码质量管理设计地平台软件。

1 Sonar是什么

Sonar是一个管理代码质量的开放平台。如图1所示,它可以从架构设计、注释、编码规范、单元测试、复杂度、重复度等7个角度衡量代码质量。

在研究中,我们发现Sonar设计实现的宗旨就是使用便利。首先,它以模块化组件结构形式构成,围绕核心功能以插件机制设计和实现其上的各种扩展应用功能模块,有着较为极为便利的扩展性。目前可支持的插件有:

(1)适应多种代码类型开发语言编程规范插件;

(2)用于分析代码用的质量分析指标插件;

(3)实现人机对话和报表展示用的质量管理插件;

(4)可扩展第三方集成平台工具和测试工具用的平台集成插件;

(5)适应国际化的语言本地化插件;

(6)支持生成报表文件用的报表插件;

(7)支持二次开发的开发工具插件等。

其次,Sonar在对外接口设计上也贯彻了其通用规范的设计思想,采用了统一接口设计模式,可以被方便地集成到其他持续集成平台或开发平台上。因其便利的易集成性,已经被越来越多的国外软件团队所关注。当前,与Sonar集成的主流平台组合模式有以下几种:

(1)Maven + Jenkins(Hudson) + Sonar;

(2)Maven + Sonar;

(3)Eclipse + Sonar;

(4)IntelliJ IDEA + Sonar。

此外,除上述优点外,之所以引起我们注意的还是要数它的展现形式:基于Web平台以网页形式展现的量化数据图形的直观可视化代码质量报告(见图2)。

2 Sonar的优势

比较同类产品,我们发现Sonar有如下几大优势:

(1)Sonar是一个专门的代码质量管理平台,功能更加集中;

(2)Sonar的插件式设计模式,不仅利于扩展其他第三方插件,而且也便于自身被其他平台所引入,在集成和被集成方面有着显而易见的便利性;

(3)Sonar是一款Web软件,其网页化的展现形式使其在跨平台和使用条件上有着无可比拟的优势。

虽然sonar也存在一些问题,尤其是个别插件的费用上,但是相比其他商业化软件,sonar在使用成本上还是占有较大的优势,如表1所示。

3 Sonar能帮助我们做什么

利用Sonar,我们可以轻松的实现代码质量的透明化,进而实现代码质量的持续改进:

(1)让部门管理者了解开发质量,把每个项目代码推行统一的编码规范,通过集中的项目代码检查评估我们当前的代码质量;

(2)让项目管理者代码质量,项目经理和QA可以实时了解项目代码质量,有针对性地控制项目质量;

(3)让开发人员了解代码质量,开发人员可以随时了解自己的代码质量,不仅仅是代码规范,还包括程序设计质量;

(4)让测试人员了解代码质量,测试人员可以随时了解各模块代码质量,有针对性地调整对各功能模块的测试力度和关注度。

4 Sonar在实际项目中的使用

为了更好的测试Sonar在国内实际项目中的适用性,2014至2015年的一年期间,我们先后选取了28个以Java开发语言为主的项目作为研究,项目类型包括:JavaWeb类的服务端软件和JavaAndroid类的客户端App应用软件。以某月度的分类项目开发质量数据报表为例(见图3)。

我们看到零售类项目的代码生产率明显偏低、代码缺陷数又偏高,其中严重类型的缺陷占比也明显高于其他项目,但是程序结构质量确比较高,代码的违规率低。这种现象似乎并不合理,经分析我们发现,原来该类项目多为大型服务端Web程序,其底层代码框架大都是已经沿用了几年的系统框架,有着较高的稳定性。但是当前该类项目的团队组成中工作经验较少的人员占了多数,加之该类项目的规模比较大、人数较多,开发经理能够分配给每个开发人员的指导时间就比较少了,所以造成了该类项目虽然结构质量高但总体缺陷偏多。针对该结果,我们协助开发经理组织专门针对java程序设计和编码规范的培训工作。同时我们很高兴的看到,参加该培训的项目在次月的代码质量结果中就发生了显著的改善。

经过一年多地不断实践和改善,我们得出以下结论:将Sonar代码质量管理平台应用于企业的软件开发过程中,以项目为单位定期生成代码质量分析报告,不仅可以实现项目开发阶段的代码质量透明化管理,而且能够实现对代码质量的持续跟踪。如果在企业软件质量管理工作过程中推行Sonar平台的代码质量管理形式,对代码质量结果的定期量化分析,并制定对应的改善措施,坚持PDCA改善过程,那么,在开发阶段保证软件产品质量也就指日可待了。

参考文献

[1]FrederickP.Brooks.Jr.人月神话[M].北京:清华大学出版社,2002(11).

[2]付金莹,蒋云,王金伦,申宗杰.基于静态分析的应用代码质量管理体系研究及应用[J].中国新通信,2013(21):65-68.

[3]美国项目管理协会PMI.项目管理知识体系指南(PMBOK指南)(第5版)[M].电子工业出版社,2013.

作者单位

1.江苏省南京市三江学院 江苏省南京市 210000

2.江苏省电力信息技术有限公司 江苏省南京市 210000

上一篇:TC9012协议建模实现 下一篇:专业导向下中职数学教学的策略研究