CN111737126A - 基于配置管理工具的代码质量自动识别方法及装置 - Google Patents
基于配置管理工具的代码质量自动识别方法及装置 Download PDFInfo
- Publication number
- CN111737126A CN111737126A CN202010566233.3A CN202010566233A CN111737126A CN 111737126 A CN111737126 A CN 111737126A CN 202010566233 A CN202010566233 A CN 202010566233A CN 111737126 A CN111737126 A CN 111737126A
- Authority
- CN
- China
- Prior art keywords
- code
- configuration
- behavior data
- data
- acquiring
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于配置管理工具的代码质量自动识别方法及装置,该方法包括:获取开发人员在配置库中的代码提交行为数据;对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析。本发明采用人工智能算法,根据配置库中开发人员代码提交行为对代码质量进行自动识别,很好的解决了这个问题。
Description
技术领域
本发明涉及代码质量分析技术领域,尤其涉及基于配置管理工具的代码质量自动识别方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在软件开发过程中,由于人力、工期限制,很难做到对全部代码质量的精准把握。目前大部分代码走查是基于人为集中走查实施的,由于人为识别待走查代码范围规则不一,可能造成部分代码不在走查范围内。同时由于人为走查效率较低,部分重要代码逻辑遗漏走查可能会对业务功能产生严重影响。所以需要一种方式来自动识别代码质量,以便开展相关的质量保证活动。
发明内容
本发明实施例提供一种基于配置管理工具的代码质量自动识别方法,用以解决全量检查代码质量的难度以及人为辨别代码质量的缺陷,该方法包括:
获取开发人员在配置库中的代码提交行为数据;
对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;
从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;
根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析。
本发明实施例还提供一种基于配置管理工具的代码质量自动识别装置,用以解决全量检查代码质量的难度以及人为辨别代码质量的缺陷,该装置包括:
代码提交行为数据获取模块,用于获取开发人员在配置库中的代码提交行为数据;
清洗和筛选处理模块,用于对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;
统计分析模块,用于从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;
人工智能分析模块,用于根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于配置管理工具的代码质量自动识别方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于配置管理工具的代码质量自动识别方法的计算机程序。
本发明实施例中,与现有技术中人为识别代码质量的技术方案相比,通过获取开发人员在配置库中的代码提交行为数据,对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析,可以实现对项目代码有全局掌控,使最需要被关注的代码得到关注。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中基于配置管理工具的代码质量自动识别方法流程图(一);
图2为本发明实施例中获取开发人员在配置库(IBM Rational ClearCase配置库)中的代码提交行为数据的流程图;
图3为本发明实施例中获取开发人员在配置库(GIT配置库)中的代码提交行为数据的流程图;
图4为本发明实施例中基于配置管理工具的代码质量自动识别方法流程图(二);
图5为本发明实施例中基于配置管理工具的代码质量自动识别装置结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
目前现状是当前全量检查代码质量的难度、人为辨别代码质量也存现一定的局限性,并且效率比较低。部分代码遗漏走查,可能造成严重的影响。基于此,本发明提出一种基于配置管理工具的代码质量自动识别方法,图1为本发明实施例中基于配置管理工具的代码质量自动识别方法流程图(一),如图1所示,该方法包括:
步骤101:获取开发人员在配置库中的代码提交行为数据;
步骤102:对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;
步骤103:从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;
步骤104:根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析。
在本发明实施例中,开发人员代码编写完成后以及代码修改过程都会对代码进行提交,所以步骤101具体包括:获取一段时间内开发人员在配置库中的代码提交行为数据。
步骤101中,除了获得开发人员在配置库中的代码提交行为数据,还可以获得基本信息,比如,配置库种类、开发人员信息、开发语言,时间范围等。
在本发明实施例中,配置管理工具可以包括IBM Rational ClearCase,GIT等配置工具。本发明可以基于IBM Rational ClearCase配置库获取数据,在IBM RationalClearCase中,每个开发任务下,如果涉及代码修改则需要为对应的开发人员新建一个开发活动,以便对代码进行修改和更新等操作。该任务结束后,此开发活动将不再被使用。基于此,如图2所示,则步骤101具体包括:
步骤1011:获取当前项目在指定时间范围内分配的代码开发任务信息;
步骤1012:获取所述代码开发任务对应的代码开发活动信息;
步骤1013:根据所述代码开发活动信息对应的开发流,获取代码开发活动的代码提交行为数据。代码提交行为数据可以包括开发人员、提交时间、提交代码名称等基本信息。
其中,开发流是IBM Rational ClearCase中的概念和GIT中分支概念类似,可以为某一批次的开发创建一个分支来管理本次修改的代码。
本发明还可以基于GIT配置库获取数据,如图3所示,则步骤101具体包括:
根据GIT命令行获取当前项目指定时间范围内所有开发人员的代码提交行为数据。代码提交行为含开发人员、提交时间、代码名称、代码修改信息等
在本发明实施例中,步骤102中的清洗和筛选处理具体包括:如剔除交付动作产生的中间文件信息、指定代码开发语言,统计代码提交次数、频率等,并将数据存储到数据库中。
在本发明实施例中,步骤103中的统计分析如下:
1、可以统计所有代码提交次数、总代码量。
2、可以对公共配置代码、仅提交一次的代码进行标记。
3、从多个维度对代码质量进行分析,抽取特征值(语言、时间、关键时间点、提交频次、开发人员级别、项目代码量等):
3.1、从代码角度,基于开发语言,统计关键时间点过后提交次数大于一定次数的代码。
3.2、从代码角度,基于开发语言,统计代码修改前后文件大小变动较大的代码。
3.3、从开发人员角度,统计提交代码量、平均代码提交次数、单代码最大提交次数等信息。
3.4、将开发人员分成:初级程序员,中级程序员,高级程序员,从每个维度对代码提交行为进行分析统计。
针对以上多个维度分别赋予不同权重,并动态调整权重值。
上述的步骤103中的统计分析也可以采用包括但不限于SVM等机器学习算法实现。
步骤104中,根据所述多维度的特征数据,采用包括但不限于SVM等机器学习算法实现对开发人员代码质量进行综合评价。
具体的,一般来讲,同等复杂程度的情况下,修改频次少如2-3次,代码量大>1000L,提交时间越早(距离截止时间2周等),则代码质量越好。
在本发明实施例中,如图4所示,该方法还包括:
步骤105:采用人工智能算法对代码质量进行分析后,对代码质量不符合设定的代码质量要求的代码进行标记。对于不符合代码质量要求的,可以作为代码复查对象,减轻人为识别待走查代码范围工作,为人为识别工作提供指导。
本发明实施例中还提供了一种基于配置管理工具的代码质量自动识别装置,如下面的实施例所述。由于该装置解决问题的原理与基于配置管理工具的代码质量自动识别方法相似,因此该装置的实施可以参见基于配置管理工具的代码质量自动识别方法的实施,重复之处不再赘述。
图5为本发明实施例中基于配置管理工具的代码质量自动识别装置结构框图,如图5所示,该基于配置管理工具的代码质量自动识别装置包括:
代码提交行为数据获取模块501,用于获取开发人员在配置库中的代码提交行为数据;
清洗和筛选处理模块502,用于对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;
统计分析模块503,用于从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;
人工智能分析模块504,用于根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析。
在本发明实施例中,所述配置库包括IBM Rational ClearCase配置库;
代码提交行为数据获取模块501具体用于:
获取当前项目在指定时间范围内分配的代码开发任务信息;
获取所述代码开发任务对应的代码开发活动信息;
根据所述代码开发活动信息对应的开发流,获取代码开发活动的代码提交行为数据。
在本发明实施例中,所述配置库包括GIT配置库;
代码提交行为数据获取模块501具体用于:
根据GIT命令行获取当前项目指定时间范围内所有开发人员的代码提交行为数据。
在本发明实施例中,人工智能分析模块504还用于:
采用人工智能算法对代码质量进行分析后,对代码质量不符合设定的代码质量要求的代码进行标记。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于配置管理工具的代码质量自动识别方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于配置管理工具的代码质量自动识别方法的计算机程序。
本发明实施例中,与现有技术中人为识别代码质量的技术方案相比,通过获取开发人员在配置库中的代码提交行为数据,对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析,可以实现对项目代码有全局掌控,使最需要被关注的代码得到关注。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于配置管理工具的代码质量自动识别方法,其特征在于,包括:
获取开发人员在配置库中的代码提交行为数据;
对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;
从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;
根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析。
2.如权利要求1所述的基于配置管理工具的代码质量自动识别方法,其特征在于,所述配置库包括IBM Rational ClearCase配置库;
获取开发人员在配置库中的代码提交行为数据,包括:
获取当前项目在指定时间范围内分配的代码开发任务信息;
获取所述代码开发任务对应的代码开发活动信息;
根据所述代码开发活动信息对应的开发流,获取代码开发活动的代码提交行为数据。
3.如权利要求1所述的基于配置管理工具的代码质量自动识别方法,其特征在于,所述配置库包括GIT配置库;
获取开发人员在配置库中的代码提交行为数据,包括:
根据GIT命令行获取当前项目指定时间范围内所有开发人员的代码提交行为数据。
4.如权利要求1所述的基于配置管理工具的代码质量自动识别方法,采用人工智能算法对代码质量进行分析后,还包括:
对代码质量不符合设定的代码质量要求的代码进行标记。
5.一种基于配置管理工具的代码质量自动识别装置,其特征在于,包括:
代码提交行为数据获取模块,用于获取开发人员在配置库中的代码提交行为数据;
清洗和筛选处理模块,用于对所述代码提交行为数据进行清洗和筛选处理,获得处理后的数据;
统计分析模块,用于从多个维度对处理后的数据进行统计分析,获得多维度的特征数据;
人工智能分析模块,用于根据所述多维度的特征数据,采用人工智能算法对代码质量进行分析。
6.如权利要求5所述的基于配置管理工具的代码质量自动识别装置,其特征在于,所述配置库包括IBM Rational ClearCase配置库;
代码提交行为数据获取模块具体用于:
获取当前项目在指定时间范围内分配的代码开发任务信息;
获取所述代码开发任务对应的代码开发活动信息;
根据所述代码开发活动信息对应的开发流,获取代码开发活动的代码提交行为数据。
7.如权利要求5所述的基于配置管理工具的代码质量自动识别装置,其特征在于,所述配置库包括GIT配置库;
代码提交行为数据获取模块具体用于:
根据GIT命令行获取当前项目指定时间范围内所有开发人员的代码提交行为数据。
8.如权利要求5所述的基于配置管理工具的代码质量自动识别装置,其特征在于,人工智能分析模块还用于:
采用人工智能算法对代码质量进行分析后,对代码质量不符合设定的代码质量要求的代码进行标记。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010566233.3A CN111737126A (zh) | 2020-06-19 | 2020-06-19 | 基于配置管理工具的代码质量自动识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010566233.3A CN111737126A (zh) | 2020-06-19 | 2020-06-19 | 基于配置管理工具的代码质量自动识别方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111737126A true CN111737126A (zh) | 2020-10-02 |
Family
ID=72651815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010566233.3A Pending CN111737126A (zh) | 2020-06-19 | 2020-06-19 | 基于配置管理工具的代码质量自动识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737126A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309804A (zh) * | 2013-04-08 | 2013-09-18 | 中国电子科技集团公司第十研究所 | 自动化代码规则检查平台 |
CN108446135A (zh) * | 2018-03-13 | 2018-08-24 | 中国银行股份有限公司 | 一种代码行数统计方法及装置 |
CN110580217A (zh) * | 2018-06-08 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 软件代码健康度的检测方法、处理方法、装置及电子设备 |
CN110795259A (zh) * | 2018-08-01 | 2020-02-14 | 北京京东尚科信息技术有限公司 | 一种分析应用崩溃的方法和装置 |
-
2020
- 2020-06-19 CN CN202010566233.3A patent/CN111737126A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309804A (zh) * | 2013-04-08 | 2013-09-18 | 中国电子科技集团公司第十研究所 | 自动化代码规则检查平台 |
CN108446135A (zh) * | 2018-03-13 | 2018-08-24 | 中国银行股份有限公司 | 一种代码行数统计方法及装置 |
CN110580217A (zh) * | 2018-06-08 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 软件代码健康度的检测方法、处理方法、装置及电子设备 |
CN110795259A (zh) * | 2018-08-01 | 2020-02-14 | 北京京东尚科信息技术有限公司 | 一种分析应用崩溃的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Panichella et al. | Would static analysis tools help developers with code reviews? | |
Maggi et al. | Parallel algorithms for the automated discovery of declarative process models | |
EP2390790A1 (en) | Profiling of software applications | |
EP3623948B1 (en) | Method and system for code analysis to identify causes of code smells | |
US20090217246A1 (en) | Evaluating Software Programming Skills | |
Zerouali et al. | Analyzing the evolution of testing library usage in open source Java projects | |
CN106293891B (zh) | 多维投资指标监督方法 | |
Ochodek et al. | Using machine learning to design a flexible loc counter | |
US20220122025A1 (en) | Software development task effort estimation | |
CN113396395A (zh) | 有效评估日志模式的方法 | |
US20140298286A1 (en) | Systems and Methods for Automatically Associating Software Elements and Automatic Gantt Chart Creation | |
Di Ciccio et al. | Ensuring model consistency in declarative process discovery | |
CN108681505B (zh) | 一种基于决策树的测试用例排序方法和装置 | |
CN113157565A (zh) | 一种基于种子用例突变的反馈式js引擎模糊测试方法及装置 | |
CN113221960A (zh) | 一种高质量漏洞数据收集模型的构建方法及收集方法 | |
CN110888813A (zh) | 项目排期管理方法、装置、设备及存储介质 | |
Kala et al. | Apriori and sequence analysis for discovering declarative process models | |
CN112631925A (zh) | 一种单变量原子违背缺陷的检测方法 | |
CN111737126A (zh) | 基于配置管理工具的代码质量自动识别方法及装置 | |
CN116126846A (zh) | 一种数据质量检测方法、设备及介质 | |
Li et al. | Exploiting reuse in pipeline-aware hyperparameter tuning | |
CN115829925A (zh) | 外观缺陷检测方法、装置、计算机设备及存储介质 | |
CN116069628A (zh) | 一种智能处置的软件自动化回归测试方法、系统及设备 | |
CN115238583A (zh) | 一种支持增量日志的业务流程剩余时间预测方法与系统 | |
CN113986908A (zh) | 一种工业设备数据的处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |