CN105159831A - 一种软件代码质量自动监控方法 - Google Patents
一种软件代码质量自动监控方法 Download PDFInfo
- Publication number
- CN105159831A CN105159831A CN201510545190.XA CN201510545190A CN105159831A CN 105159831 A CN105159831 A CN 105159831A CN 201510545190 A CN201510545190 A CN 201510545190A CN 105159831 A CN105159831 A CN 105159831A
- Authority
- CN
- China
- Prior art keywords
- code
- information
- quality
- source code
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种软件代码质量自动监控方法,属于计算机软件技术领域;本发明采用与SVN代码服务器直连的方式,可以保证捕获代码所有变动信息,提高了代码质量分析的效率;使用Checkstyle、FindBugs、Sonar代码检测工具对变动代码进行检测,避免了人为代码质量分析的片面性、局限性;通过更新代码监控人员信息,作为通过代码变动信息获取监控人员名单及变动代码质量信息接收用户名单的基础,使监管人员只需要专注监控自己所负责的部分,提高了代码质量监控的持续性、可追溯性,同时也避免了由于监管人员对***整体认知不够导致的代码监控的片面性、局限性。
Description
技术领域
本发明公开一种软件代码质量自动监控方法,属于计算机软件技术领域。
背景技术
软件代码就是程序员用开发工具所支持的语言写出来的源文件。它是一组有序的数字或字母的排列,是代表客观实体及其属性的符号。
软件代码质量就是代码编写的一种统一规范,让代码具有可读行,思路清晰。高质量的代码都具备可读性,可维护性和可变更性这三个特征。可读性:简洁又有详细注解的代码。可维护性:一个软件生命周期中,80%的时间和精力花费在维护阶段。对于代码的可维护性,灵活的代码便于以后代码的变更。可变更性:可以根据客户的要求进行改变,即所编写的代码可以相应的改变达到客户的要求。目前信息化建设的浪潮中,面向对象的大型***应用越来越广泛,逐渐被应用到教育、交通、医疗、政府等各个行业,在当今社会中发挥的作用也越来越重要,与此同时,***本身也变得越来越庞大,越来越复杂。这些大型***应用的质量由***软件代码的质量直接决定。当前的软件行业,外包开发和维护也正逐渐演变成新趋势,导致***源代码在地理上的分散,并且独立的开发人员对整个***的开发中,只有独立有限的认知。当复杂而庞大的源代码发生变化时,依赖原始的个别开发人员通过代码Review等方式来进行代码质量的控制已变得力不从心,日积月累会给***带来不良影响,进而导致***整体代码质量的下降。本发明提供一种软件代码质量自动监控方法,通过直连SVN服务器自动化获取代码变更,自动化进行代码质量检测,通过这种方式解决了代码质量监管人员精力不足的窘境,进而保证代码的质量得到了进一步提升。
发明内容
本发明针对当复杂而庞大的源代码发生变化时,依赖原始的个别开发人员通过代码Review等方式来进行代码质量的控制已变得力不从心,日积月累会给***带来不良影响,进而导致***整体代码质量的下降的问题,提供一种软件代码质量自动监控方法,通过直连SVN服务器自动化获取代码变更,自动化进行代码质量检测,通过这种方式在很大程度上解决了代码质量监管人员精力不足的窘境,进而为代码的质量得到提高提供了保证。
本发明提出的具体方案是:
一种软件代码质量自动监控方法,通过对软件源代码SVN服务器进行监控,定时对软件源代码进行变动扫描和质量分析,及时地将代码质量数据整合发送给监控人员,具体为:
代码变动扫描和质量分析:监控服务器直接连接软件源代码SVN服务器,获取SVN源代码的目录结构,周期性对SVN服务器内SVN库进行变动信息扫描,获取检测周期内的代码变动信息,对变动的代码进行代码质量分析,获取代码的变动信息和其对应的质量数据;
代码质量信息整合与发送:将代码变动信息数据进行解析,更新源代码结构数据,并保存变动代码的质量数据,将其与更新后的源代码数据按照源代码在SVN服务器上的目录结构整合为变动代码质量信息并发送给设定的用户;
数据库存储:将SVN服务器中软件源代码的相关信息保存在数据库中,作为数据基础。其中代码变动扫描和质量分析针对源码变动信息进行分析时,可以判断源码变动类型,根据源码变动类型可以得到源码结构的变化,根据这些变化同步维护源码结构信息。
所述对变动的代码进行代码质量分析采用依次使用Checkstyle、FindBugs、Sonar代码质量检测工具进行检测。使用业内统一的标准对代码进行质量分析。
所述更新源代码结构数据的同时,更新代码监控人员信息,作为通过代码变动信息获取监控人员名单及变动代码质量信息接收用户名单的基础。
所述代码质量信息整合与发送中将更新后的源代码数据和变动代码的质量数据按照源代码在SVN服务器上的目录结构整合为HTML格式发送给设定的用户。
数据库存储SVN服务器中软件源代码的相关信息数据表,包括监控人员列表,保存人员id、名称以及email信息;源码结构信息表,保存源码的全路径、源码的父路径id;监控信息表,表中保存了代码目录id与监控人员id的关系;源码变动信息表,保存源码变动时间、变动类型、变动内容和源码目录id;源码质量信息表,保存质量数据,包括质量类型、具体数据、数据产生时间及对应的变动信息id。还存在其他信息表,比如可能存在邮件发送信息表。
本发明的有益之处是:本发明采用与SVN代码服务器直连的方式,可以保证捕获代码所有变动信息,并且进一步缩小了代码检测的范围,提高了代码质量分析的效率;使用Checkstyle、FindBugs、Sonar等代码检测工具对变动代码进行检测,使用业内统一的标准对代码进行质量分析,提高了代码质量分析的全面性、权威性,避免了人为代码质量分析的片面性、局限性;通过更新代码监控人员信息,作为通过代码变动信息获取监控人员名单及变动代码质量信息接收用户名单的基础,使监管人员只需要专注监控自己所负责的部分,提高了代码质量监控的持续性、可追溯性,同时也避免了由于监管人员对***整体认知不够导致的代码监控的片面性、局限性。
附图说明
图1本发明的框架示意图;
图2本发明中代码质量信息整合与发送流程图。
具体实施方式
一种软件代码质量自动监控方法,通过对软件源代码SVN服务器进行监控,定时对软件源代码进行变动扫描和质量分析,及时地将代码质量数据整合发送给监控人员,具体为:
代码变动扫描和质量分析:监控服务器直接连接软件源代码SVN服务器,获取SVN源代码的目录结构,周期性对SVN服务器内SVN库进行变动信息扫描,获取检测周期内的代码变动信息,对变动的代码进行代码质量分析,获取代码的变动信息和其对应的质量数据;
代码质量信息整合与发送:将代码变动信息数据进行解析,更新源代码结构数据,并保存变动代码的质量数据,将其与更新后的源代码数据按照源代码在SVN服务器上的目录结构整合为变动代码质量信息并发送给设定的用户;
数据库存储:将SVN服务器中软件源代码的相关信息保存在数据库中,作为数据基础。
利用上述方法,结合附图对本发明做进一步说明。
如发明内容中所述,本发明主要过程为:代码变动扫描和质量分析,代码质量信息整合与发送,数据库存储。
代码变动扫描和质量分析是通过直接连接软件工程源代码SVN库,周期性对使用SVN命令行工具对SVN服务器进行变动信息扫描,获取检测周期内的代码变动信息,针对变动的代码使用成熟的代码质量分析工具进行代码质量分析,从而获取代码的变动信息和其对应的质量数据。如附图1和附图2中所表示,后台代码质量监控会按照一定的周期,使用SVN命令行工具获取SVN服务器上源码的变动信息。
并且针对源码变动信息进行分析时,可以判断源码变动类型,根据源码变动类型可以得到源码结构的变化,根据这些变化同步维护源码结构信息。
对变动的源码,依次使用Checkstyle、FindBugs、Sonar这些成熟的代码质量检测工具进行检测,使用业内统一的标准对代码进行质量分析,并将检测后的质量数据保存到代码质量信息表中,存储在数据库中。
代码质量信息整合与发送主要过程如附图2中所示,当完成代码变动扫描和质量分析后,要针对代码的变动信息获取对应的质量数据,对源码变动信息和对应的质量数据进行数据整合,可以整合为HTML格式,并对变动的代码与上一版本的代码对比显示,对变化部分进行高亮显示以便用户查看。对代码的质量数据,可以按照质量分析的类别进行分类展示。
对于整理后的数据,根据代码变动信息对应的源码结构信息,获取对应的代码变动信息关系人列表,将数据使用邮件的方式发送给关系人员。
数据库为本发明的实现提供了数据基础。数据库存储SVN服务器中软件源代码的相关信息数据表,包括存储SVN服务器中源代码的目录结构信息,及各目录关注人员设置信息;源代码的变动信息和对应的质量信息;邮件发送信息等。
在监控人员列表中需要保存人员id、名称以及email信息,如下界面:
在源码结构信息表中保存源码的全路径、源码的父路径id,如下界面:
监控信息表中保存了代码目录id与监控人员id的关系,如下界面:
获取源代码不仅要获取当前路径的监控人员id,还要获取父路径监控人员id;源码变动信息表中保存源码变动时间、变动类型、变动内容和源码目录id,如下界面:
源码质量信息表中保存质量数据,包括质量类型、具体数据、数据产生时间及对应的变动信息id,如下界面:
邮件发送信息表中保存邮件发送信息,包含邮件id、邮件内容、收件人、主题、发送状态、创建时间和发送时间,完整保存邮件发送记录,如下界面:
以上数据库内数据表,存储SVN服务器中源代码的目录结构信息,及各目录关注人员设置信息;源代码的变动信息和对应的质量信息;邮件发送信息等。
Claims (5)
1.一种软件代码质量自动监控方法,其特征是通过对软件源代码SVN服务器进行监控,定时对软件源代码进行变动扫描和质量分析,及时地将代码质量数据整合发送给监控人员,具体为:
代码变动扫描和质量分析:监控服务器直接连接软件源代码SVN服务器,获取SVN源代码的目录结构,周期性对SVN服务器内SVN库进行变动信息扫描,获取检测周期内的代码变动信息,对变动的代码进行代码质量分析,获取代码的变动信息和其对应的质量数据;
代码质量信息整合与发送:将代码变动信息数据进行解析,更新源代码结构数据,并保存变动代码的质量数据,将其与更新后的源代码数据按照源代码在SVN服务器上的目录结构整合为变动代码质量信息并发送给设定的用户;
数据库存储:将SVN服务器中软件源代码的相关信息保存在数据库中,作为数据基础。
2.根据权利要求1所述的一种软件代码质量自动监控方法,其特征是所述对变动的代码进行代码质量分析采用依次使用Checkstyle、FindBugs、Sonar代码质量检测工具进行检测。
3.根据权利要求1或2所述的一种软件代码质量自动监控方法,其特征是所述更新源代码结构数据的同时,更新代码监控人员信息,作为通过代码变动信息获取监控人员名单及变动代码质量信息接收用户名单的基础。
4.据权利要求3所述的一种软件代码质量自动监控方法,其特征是所述代码质量信息整合与发送中将更新后的源代码数据和变动代码的质量数据按照源代码在SVN服务器上的目录结构整合为HTML格式发送给设定的用户。
5.根据权利要求4所述的一种软件代码质量自动监控方法,其特征是数据库存储SVN服务器中软件源代码的相关信息数据表,包括监控人员列表,保存人员id、名称以及email信息;源码结构信息表,保存源码的全路径、源码的父路径id;监控信息表,表中保存了代码目录id与监控人员id的关系;源码变动信息表,保存源码变动时间、变动类型、变动内容和源码目录id;源码质量信息表,保存质量数据,包括质量类型、具体数据、数据产生时间及对应的变动信息id。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510545190.XA CN105159831A (zh) | 2015-08-31 | 2015-08-31 | 一种软件代码质量自动监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510545190.XA CN105159831A (zh) | 2015-08-31 | 2015-08-31 | 一种软件代码质量自动监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105159831A true CN105159831A (zh) | 2015-12-16 |
Family
ID=54800693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510545190.XA Pending CN105159831A (zh) | 2015-08-31 | 2015-08-31 | 一种软件代码质量自动监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159831A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677317A (zh) * | 2015-12-25 | 2016-06-15 | 北京奇虎科技有限公司 | 一种生成代码文档的方法和装置 |
CN106528427A (zh) * | 2016-11-24 | 2017-03-22 | 上海携程商务有限公司 | 代码质量检查方法和*** |
CN106776270A (zh) * | 2016-11-11 | 2017-05-31 | 努比亚技术有限公司 | 一种代码检测方法、装置及终端 |
CN107688541A (zh) * | 2017-09-15 | 2018-02-13 | 广州酷狗计算机科技有限公司 | 文件评审方法、装置、服务器及计算机可读存储介质 |
CN109359028A (zh) * | 2018-08-22 | 2019-02-19 | 平安科技(深圳)有限公司 | 代码质量监控方法、装置、计算机设备及存储介质 |
CN109508204A (zh) * | 2018-11-15 | 2019-03-22 | 四川长虹电器股份有限公司 | 一种前端代码质量检测方法及装置 |
CN109976994A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | Java项目的白盒测试方法、装置、计算机设备 |
CN110231937A (zh) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | 脚本缺陷扫描方法、装置、计算机设备和存储介质 |
WO2019200701A1 (zh) * | 2018-04-17 | 2019-10-24 | 平安科技(深圳)有限公司 | 一种配置管理方法、装置、终端设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119377A (en) * | 1989-06-16 | 1992-06-02 | International Business Machines Corporation | System and method for software error early detection and data capture |
CN103473075A (zh) * | 2013-09-23 | 2013-12-25 | 迈普通信技术股份有限公司 | 代码变更控制***及方法 |
CN103985003A (zh) * | 2013-12-25 | 2014-08-13 | 北京安码科技有限公司 | 一种支持软件工程质量自动监控的新方法及其装置 |
-
2015
- 2015-08-31 CN CN201510545190.XA patent/CN105159831A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119377A (en) * | 1989-06-16 | 1992-06-02 | International Business Machines Corporation | System and method for software error early detection and data capture |
CN103473075A (zh) * | 2013-09-23 | 2013-12-25 | 迈普通信技术股份有限公司 | 代码变更控制***及方法 |
CN103985003A (zh) * | 2013-12-25 | 2014-08-13 | 北京安码科技有限公司 | 一种支持软件工程质量自动监控的新方法及其装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677317A (zh) * | 2015-12-25 | 2016-06-15 | 北京奇虎科技有限公司 | 一种生成代码文档的方法和装置 |
CN106776270A (zh) * | 2016-11-11 | 2017-05-31 | 努比亚技术有限公司 | 一种代码检测方法、装置及终端 |
CN106528427A (zh) * | 2016-11-24 | 2017-03-22 | 上海携程商务有限公司 | 代码质量检查方法和*** |
CN107688541A (zh) * | 2017-09-15 | 2018-02-13 | 广州酷狗计算机科技有限公司 | 文件评审方法、装置、服务器及计算机可读存储介质 |
CN109976994A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | Java项目的白盒测试方法、装置、计算机设备 |
WO2019200701A1 (zh) * | 2018-04-17 | 2019-10-24 | 平安科技(深圳)有限公司 | 一种配置管理方法、装置、终端设备及存储介质 |
CN109359028A (zh) * | 2018-08-22 | 2019-02-19 | 平安科技(深圳)有限公司 | 代码质量监控方法、装置、计算机设备及存储介质 |
CN109359028B (zh) * | 2018-08-22 | 2024-05-03 | 平安科技(深圳)有限公司 | 代码质量监控方法、装置、计算机设备及存储介质 |
CN109508204A (zh) * | 2018-11-15 | 2019-03-22 | 四川长虹电器股份有限公司 | 一种前端代码质量检测方法及装置 |
CN109508204B (zh) * | 2018-11-15 | 2021-08-06 | 四川长虹电器股份有限公司 | 一种前端代码质量检测方法及装置 |
CN110231937A (zh) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | 脚本缺陷扫描方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159831A (zh) | 一种软件代码质量自动监控方法 | |
US20200264759A1 (en) | Horticultural care tracking, validation and verification | |
CN105528294B (zh) | 一种接口测试用例自动生成的方法及*** | |
CN101713823B (zh) | 一种卫星遥测数据处理方法 | |
CN104461671A (zh) | 代码修改汇报的定时管理方法及*** | |
CN113035308B (zh) | 电子健康档案的质量评价方法和*** | |
US10990359B2 (en) | Use and advancements of assistive technology in automation for the visually-impaired workforce | |
CN105677332A (zh) | 软件开发需求管理*** | |
CN101859303A (zh) | 元数据管理方法及管理*** | |
CN104268143A (zh) | Xml数据的处理方法和装置 | |
CN103246963A (zh) | 基于物联网的员工培训*** | |
US20130067379A1 (en) | Graphical comparison of geographic information system data | |
CN105426419A (zh) | 异构***间数据升迁***和方法 | |
CN109961156A (zh) | 一种变电站设备点检***开发方法 | |
CN110032570A (zh) | 一种基于b/s架构的空间数据动态更新*** | |
CN115712623A (zh) | 一种基于捕获元数据变更的批量数据容错采集方法 | |
CN116662441A (zh) | 一种分布式数据血缘构建及展现方法 | |
US10963963B2 (en) | Rule based hierarchical configuration | |
CN111143468B (zh) | 基于mpp分布式技术的多数据库数据管理方法 | |
CN103955429A (zh) | 确定回归测试范围的方法及装置 | |
CN109343863B (zh) | 一种hdfs权限的界面配置方法及*** | |
CN114185791A (zh) | 一种数据映射文件的测试方法、装置、设备及存储介质 | |
CN116386799B (zh) | 一种医疗数据采集与标准转换方法及*** | |
CN101931525A (zh) | 一种信息安全管理资源定位方法及*** | |
CN115599679A (zh) | 一种测试规则库更新方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151216 |