【技术实现步骤摘要】
代码评审人推荐方法、装置、设备及可读存储介质
[0001]本专利技术涉及软件开发
,尤其涉及一种代码评审人推荐方法、装置、设备及可读存储介质。
技术介绍
[0002]在软件开发过程中,代码评审是一项重要的活动,该活动执行质量的高低和速度的快慢会影响到软件产品的质量和项目的进度。高质量的代码评审能有效拦截低劣的代码进入软件产品中,能有效清除软件产品中潜在的风险,保证了软件产品的质量;及时完成代码评审,能帮助有依赖关系的下游开发工作顺利进行,降低软件开发项目进度滞后的风险。且通过代码评审能间接起到提高候选评审者代码技能的作用,传递开发技巧的最佳实践,并进一步营造良好的企业工程师文化。
[0003]在代码评审过程中,评审人是一个重要的组成部分。且随着项目越来越复杂,项目成员越来越多,选择合适的代码评审人就显得尤为重要。不合适的评审人会引入软件代码问题或合入代码不及时导致项目进度延后,这可能会导致软件项目失败。且当前评审人大部分是开发人员线下沟通或通过项目管理人员指定,这会造成沟通繁琐且时间长以及极易选择不合适的人员作为代码评审人,进而为软件产品的质量和项目的进度埋下隐患。
[0004]因此,亟需一种系统和方法能实时自动地推荐合适的代码评审人,使代码评审工作高效和高质量地进行。
技术实现思路
[0005]为解决上述技术问题,本专利技术提供一种代码评审人推荐方法、装置、设备及可读存储介质。
[0006]第一方面,本专利技术提供一种代码评审人推荐方法,所述代码评审人推荐方法包括:r/>[0007]获取因子分解机输出的各个候选评审者的分值;
[0008]对目标候选评审者的分值进行修正,得到目标候选评审者的新分值,所述目标候选评审者的待评审任务数量大于预设数量;
[0009]根据非目标候选评审者的分值以及目标候选评审者的新分值,对各个候选评审者进行排序,得到第一排序结果;
[0010]按照过滤规则对第一排序结果进行过滤处理,根据过滤处理结果得到代码评审人推荐结果。
[0011]第二方面,本专利技术还提供一种代码评审人推荐装置,所述代码评审人推荐装置包括:
[0012]获取模块,用于获取因子分解机输出的各个候选评审者的分值;
[0013]修正模块,用于对目标候选评审者的分值进行修正,得到目标候选评审者的新分值,所述目标候选评审者的待评审任务数量大于预设数量;
[0014]排序模块,用于根据非目标候选评审者的分值以及目标候选评审者的新分值,对
各个候选评审者进行排序,得到第一排序结果;
[0015]过滤模块,用于按照过滤规则对第一排序结果进行过滤处理,根据过滤处理结果得到代码评审人推荐结果。
[0016]第三方面,本专利技术还提供一种代码评审人推荐设备,所述代码评审人推荐设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的代码评审人推荐程序,其中所述代码评审人推荐程序被所述处理器执行时,实现如上所述的代码评审人推荐方法的步骤。
[0017]第四方面,本专利技术还提供一种可读存储介质,所述可读存储介质上存储有代码评审人推荐程序,其中所述代码评审人推荐程序被处理器执行时,实现如上所述的代码评审人推荐方法的步骤。
[0018]本专利技术中,获取因子分解机输出的各个候选评审者的分值;对目标候选评审者的分值进行修正,得到目标候选评审者的新分值,所述目标候选评审者的待评审任务数量大于预设数量;根据非目标候选评审者的分值以及目标候选评审者的新分值,对各个候选评审者进行排序,得到第一排序结果;按照过滤规则对第一排序结果进行过滤处理,根据过滤处理结果得到代码评审人推荐结果。通过本专利技术,能智能推荐合适的代码评审人,能有效提升代码评审效率和提高代码评审质量,大大降低因选择不合适的评审人而导致项目开发进度滞后和引入软件问题的风险。
附图说明
[0019]图1为本专利技术代码评审人推荐方法一实施例的流程示意图;
[0020]图2为本专利技术代码评审人推荐方法一实施例中因子分解机的结构示意图;
[0021]图3为图1中步骤S20的细化流程示意图;
[0022]图4为本专利技术代码评审人推荐方法一实施例的场景示意图;
[0023]图5为本专利技术代码评审人推荐装置一实施例的功能模块示意图;
[0024]图6为本专利技术实施例方案中涉及的代码评审人推荐设备的硬件结构示意图。
[0025]本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0026]应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0027]第一方面,本专利技术实施例提供了一种代码评审人推荐方法。
[0028]一实施例中,参照图1,图1为本专利技术代码评审人推荐方法一实施例的流程示意图。如图1所示,代码评审人推荐方法包括:
[0029]步骤S10,获取因子分解机输出的各个候选评审者的分值;
[0030]本实施例中,通过采集平台中与开发相关的数据,并对数据进行处理,然后利用基于因子分解机的模型提取特征间的隐含信息并进行分析。例如,从平台的海量数据中查找和过滤与本次代码评审请求最可能相关的特征数据,其中也包括最可能合适的评审者的相关特征数据;然后,采用因子分解机模型来提取代码评审相关特征和信息,并对候选评审者进行评分。该模型具备提取稀疏数据下特征组合的能力,能自动挖掘低频,长尾模式,且泛化能力强,优化后模型的时间复杂度低为O(n),易于训练和上线。
[0031]具体的,从平台上获取根据代码评审发起者提供的评审信息提取最接近的前K1个软件功能或特性标签特征;从提交修改的代码片段上下文结合平台采集的项目信息获取前K2个最能代表代码修改的特征(如代码结构变动,文件对应目录的修改等);从平台中获取前K3个最活跃且点赞最多的代码评审人;从平台中获取前K4个最活跃代码提交者;从平台中获取代码文件前K5个最近变动最频繁的代码文件;从平台历史提交记录中获取与代码提交者提交行为前K6个最相似的记录。
[0032]采用因子分解机模型来提取评审相关的特征和信息,并进行排序。推荐领域的数据特征具有海量稀疏性,主要体现在用户行为及特征数据分布极不均匀,极少量高频特征在数据总体中占比很高,长尾现象异常严重。在代码评审领域即为代码评审质量高的评审人少,相关数据分布不均匀。而因子分解机模型(FM)可以解决这些问题,因子分解机的数学表达式为其在传统的逻辑回归的基础上,引入二阶交叉部分使模型具备提取特征组合的能力,特别是稀疏数据下的特征组合,其中n是特征数量,vi表示第i维隐向量。因子分解机模型通过特征嵌入,能自动挖掘低频和长尾模式,且泛化能力强,时间复杂度低,易于训练和上线应用。参照图2,图2为本专利技术代码评审人推荐方法一实施例中因子分解机的结构示意图。如图2所示,具体可以分为3个部分:稀疏输入层、Embedding层和隐向量交叉层。根据因子分解机确定各个候选评审者的分值的步骤如下:<本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种代码评审人推荐方法,其特征在于,所述代码评审人推荐方法包括:获取因子分解机输出的各个候选评审者的分值;对目标候选评审者的分值进行修正,得到目标候选评审者的新分值,所述目标候选评审者的待评审任务数量大于预设数量;根据非目标候选评审者的分值以及目标候选评审者的新分值,对各个候选评审者进行排序,得到第一排序结果;按照过滤规则对第一排序结果进行过滤处理,根据过滤处理结果得到代码评审人推荐结果。2.如权利要求1所述的代码评审人推荐方法,其特征在于,所述对目标候选评审者的分值进行修正,得到目标候选评审者的新分值的步骤包括:根据所有目标候选评审者的待评审任务数量确定最大待评审任务数量;根据预设数量、最大待评审任务数量以及目标候选评审者的待评审任务数量,计算得到目标候选评审者的修正系数;根据目标候选评审者的修正系数对目标候选评审者的分值进行修正,得到目标候选评审者的新分值。3.如权利要求2所述的代码评审人推荐方法,其特征在于,所述根据预设数量、最大待评审任务数量以及目标候选评审者的待评审任务数量,计算得到目标候选评审者的修正系数的步骤包括:将预设数量、最大待评审任务数量以及目标候选评审者的待评审任务数量输入到修正系数计算公式,得到目标候选评审者的修正系数,修正系数计算公式为:其中,a为目标候选评审者的修正系数,M为最大待评审任务数量,i为目标候选评审者的待评审任务数量,k为预设数量。4.如权利要求1所述的代码评审人推荐方法,其特征在于,所述按照过滤规则对第一排序结果进行过滤处理的步骤包括:检测代码评审发起者是否处于第一排序结果中;若代码评审发起者处于第一排序结果中,则从第一排序结果中删除代码评审发起者;检测代码评审发起者是否为最高开发职级;若代码评审发起者不为最高开发职级,则从第一排序结果中删除开发职级低于代码评审发起者的开发职级的候选评审者。5.如权利要求4所述的代码评审人推荐方法,其特征在于,在所述检测代码评审发起者是否为最高开发职级的步骤之后,还包括:代码评审发起者为最高开发职级,检测...
【专利技术属性】
技术研发人员:李霄,刘金敏,范岚,周鑫,
申请(专利权)人:烽火通信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。