网站首页  词典首页

请输入您要查询的论文:

 

标题 基于SonarQube平台提升企业软件项目质量的应用研究
范文

    曾新励

    摘要:随着企业软件项目复杂性的日益增加,提高可靠性和避免错误缺陷成为开发企业级应用软件的一个重要因素。该文在分析企业代码质量管理方面的现状以及对代码质量管理的内外在需求的基础上,研究了SonarQube平台的运行机制和技术优势,结合代码质量规范标准的制定、质量管理平台在企业内的部署和代码质量管理流程,提出了基于SonarQube平台的代码质量管理解决方案。从系统源代码的角度出发,在软件研发过程中使用SonarQube控制代码质量,不但实现了在项目开发时的代码质量标准化,并且能够持续跟踪代码质量,对问题形成闭环高效管理。持续有效地进行代码质量监控,并制定相应的改进措施,对企业高质量交付软件产品意义重大。

    关键词:SonarQube;代码质量;质量分析;质量管理

    中图分类号:TP311 文献标识码:A

    文章编号:1009-3044(2019)11-0078-03

    1引言

    企业软件项目质量会受到团队开发人员个体能力以及团队磨合期不够等因素影响,传统的人工代码质量检查随着企业软件复杂性的日益增加逐渐成为项目的瓶颈。如何持续有效地进行代码质量管理,高质量交付软件产品成为企业当下必须要解决的问题。

    企业对代码质量管理的需求一方面来自企业对软件产品的代码需要标准化、精细化的管控,力求控制软件项目的风险。代码质量管理不当直接造成员工工作量增加,上级不满意,间接管理成本增加。另一方面,民航机场信息系统建设竞争日益激烈,软件产品服务质量的高低成为是否能够赢得客户的重要因素。与此同时在交付软件产品时,客户不仅要检测产品功能是否实现,还要检验软件自身的代码质量。

    针对民航机场业务支撑系统的现状,本文从接入复杂度、应用范围、规则数量、可扩展性和准确率几个方面对用于代码质量管理的主流工具进行了调研,重点研究了SonarQube平台的运行机制和技术优势,并提出了一种基于SonarQube平台的代码质量管理解决方案。从系统源代码的角度出发,在软件研发过程中使用SonarQube控制代码质量,减少人工代码质量检查的时间成本,提高问题检测的准确率,并且同企业现有的内部问题管理工作流程相结合,对问题形成闭环高效管理,从源头上把控业务系统质量。

    2 SonarQube介绍

    研发人员在编写、组织、构建、测试和不断改进应用程序时使用许多工具、技术、框架和流程,SonarQube作为一款开源代码质量管理工具,最初是为了跟踪Java项目的质量而编写的,它使跟踪、管理和提高代码总体质量变得高效规范,并且实现了公认的最佳实践,为代码质量度量、评审和补救提供了功能齐全的综合平台[1]。

    SonarQube通过插件式设计模式方便地集成FindBugs、PMD、Checkstyle、Cubertuna、Jcoco等多种工具,实现软件项目代码的静态检测。并且通过配置语言插件即可以支持對C/C++、C#、Cobol、Java、PHP等超过25种编程语言进行质量检测 [2]。

    基于SQALE软件质量方法理论,将通过插件集成工具的各项检测结果统计分析,以数据、图表等多维度方式将代码质量的变化和最终检测结果合并分析输出,形成直观可视化代码质量报告,量化评估软件项目质量。也可以扩充报表展示插件,更加丰富Web页面的展现形式。

    在对其他工具的支持方面,采用了统一接口设计方式便于自身被其他平台引入。支持持续集成工具,可以利用持续集成工具Jenkins来使用SonarQube。得益于其通用规范的设计思想,得到了国内外越来越多软件研发人员的关注。SonarQube提供了对Eclipse和IntelliJ IDEA开发环境的SonarLint插件支持,对于Maven工程可以在Maven的settings.xml配置文件中添加分析器插件的配置进行分析,还可以直接在控制台启动分析项目代码的默认启动器SonarQube Scanner执行分析,就可以完成对项目代码的分析[3]。

    3 应用SonarQube代码质量管理平台

    基于SonarQube的代码质量管理体系具有三个方面的内容:代码质量规范标准的制定、质量管理平台在企业内的部署和代码质量管理流程。

    3.1 代码质量规范标准

    代码质量是从代码的角度衡量软件系统的质量。SonarQube通过简单、易于遵循的核心7大质量标准来持续改进源代码质量,包括设计与架构、重复度、注释比例、单元测试质量、复杂度、潜在bug、编码规范,如图1所示。每个维度中包含若干扫描规则,根据不同场景的需要和对代码质量关注点的差异,可以按照需求对SonarQube中配置的扫描规则进行裁剪和调整。SonarQube根据这7个维度的代码质量检测数据形成一个直观可视化质量报告。

    3.2 质量管理平台在企业内的部署

    SonarQube平台可以很好的与企业现有的开源持续集成工具Jenkins和版本管理工具SVN相结合,借助持续集成工具的辅助可以不断地创建、执行软件测试。首先在SonarQube中安装检测插并按需求配置好相应规则,然后创建Jenkins项目来启动SonarQube进行质量检测,完成检测后SonarQube会把执行结果直接写入数据库,并执行分析统计供Web展现时读取。SonarQube支持多种数据库,默认安装情况下使用自带的H2 嵌入式数据库,在迁移和扩展时存在不足,可以根据需要选择MySql、Oracle、MS SQLServer等数据库。通过修改sonar.properties配置文件完成数据库连接的配置,SonarQube启动时会自动创建数据库实例并配置好相应的表结构。代码质量管理平台如图2所示。

    3.3 代码质量管理流程

    在项目开发中,应用SonarQube进行代码质量分析评估是一个循环往复、持续性的工作,遵循四个标准流程执行,具体流程包括版本管理、执行评估、风险应对、持续改进,符合PDCA持续循环改进的科学过程。具体流程如图3所示。

    过程描述如下:

    1)版本管理。随着软件开发过程中业务创新和需求变更,代码版本控制成为了代码质量评估的基础。在版本升级和维护的过程中需要记录新增加的功能,具体修复的问题,以及在此过程中产生的新问题,都依赖于版本管理的把控。

    2)执行评估。执行评估的对象是软件系统源代码。从代码版本管理工具中获取新的软件项目版本,使用SonarQube按照预先配置的扫描规则集,执行代码的初步扫描。SonarQube将扫描出的结果以报表的形式展示,向研发人员提供决策支持。同时调用企业问题管理平台,根据扫描出来的问题列表创建任务清单,以消息的形式推送给各个研发人员。

    3)风险应对。执行完评估后的首要工作是对收到的问题任务清单进行分析,任何工具都可能会产生误报或漏报的情况,人工参与审查代码是必须的。研发人员共同对问题进行分析、确认、筛选并确定其严重程度,删除无关紧要和误报的问题。并针对实际问题设计解决方案,提出改进建议,提交到版本管理SVN。

    4)持续改进。研发人员按照风险应对环节给出的改进方案进行修改,在提交代码时系统自动判断是否所有任务清单问题都已修改,防止问题代码继续提交。完成修改后研发人员填写任务修改记录单,企业内部问题管理平台关闭相关问题,并删除代码质量管理平台对应问题,实现对问题的闭环管理。

    4 结论

    通过在企业软件研发过程中引入SonarQube代码质量管理平台,实现代码质量管理全流程的标准化和精细化,让软件产品质量管理更加集中,并且能够实现代码质量的持续改进。带来的好处有以下几点。

    1)让部门管理者、项目管理者可以有针对性的对项目质量进行控制,研发人员随时了解自己的代码质量,注重程序设计质量符合企业标准。

    2)利用SonarQube和代码质量管理流程实现代码质量的持续改进,通过分析评估,使问题得到有效解决,形成一个符合PDCA的科学流程,提升软件开发过程的工作效率。

    3)持续对改进后的结果再评估,确保所有问题落实到相应的人负责,监督改进方案的执行情况,避免到项目后期测试上线才发现问题,实现在开发阶段完成软件产品质量的有效保证,提升客户满意度。

    5 总结

    科学的代码质量管理能够有效提高企业软件项目质量。本文在分析企业代码质量管理方面的现状以及需求的基础上,研究了SonarQube平台的运行机制和技术优势,并与企业现有的内部问题管理工作流程相结合,提出了基于SonarQube平台的代码质量管理解决方案。不但实现了在项目开发时的代码质量标准化,还可以持续有效地进行代码质量监控。按期评估代码质量并制定相应的风险应对措施,持续循环改进,有助于实现高质量完成软件项目。同时,SonarQube也适用于企业代码质量管理云平台的搭建,有助于推进民航信息系统标準化和规范化建设。

    参考文献:

    [1] 杨冰娥.代码规则自动化检查系统的设计与实现[D].成都:西南交通大学,2014.

    [2] 徐萌.持续集成在现代企业软件开发中的研究与实现[D].青岛:中国海洋大学,2013.

    [3] 戚华,杨铭.代码质量管理平台Sonar在软件项目管理中的应用研究[J].电子技术与软件工程,2016(6):68-69.

    【通联编辑:王力】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/11 6:45:33