CN109002283B - 一种基于文件路径分析的代码审查者推荐方法 - Google Patents
一种基于文件路径分析的代码审查者推荐方法 Download PDFInfo
- Publication number
- CN109002283B CN109002283B CN201810611269.1A CN201810611269A CN109002283B CN 109002283 B CN109002283 B CN 109002283B CN 201810611269 A CN201810611269 A CN 201810611269A CN 109002283 B CN109002283 B CN 109002283B
- Authority
- CN
- China
- Prior art keywords
- code
- file
- experience
- tree
- reviewer
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004458 analytical method Methods 0.000 title claims abstract description 16
- 238000012552 review Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 8
- 238000003491 array Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 description 13
- 238000002474 experimental method Methods 0.000 description 10
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 5
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 101100261000 Caenorhabditis elegans top-3 gene Proteins 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于文件路径分析的代码审查者推荐方法,包括步骤如下:构建文件树;基于上步骤得到的文件树构建经验树;根据经验树计算候选代码审查者经验值;对候选代码审查者进行排序;本发明提出的基于文件路径分析的代码审查者推荐方法,提高了代码审查者推荐准确率,同时也减少了代码审查者推荐的运行时间,使其更加高效。
Description
技术领域
本发明属于计算机技术领域,尤其指代一种基于文件路径分析的代码审查者推荐方法。
背景技术
在开发周期较长的大型项目中,无论是商业项目还是开源项目,执行到位的代码审查是保证软件代码质量的关键所在。举例来说,在Mozilla项目中,任何一次的代码提交都需要被两个代码审查者审查。但这带来的好处就是在代码在合并进入代码仓库之前就可以检测出不少的bug,这样一来也就减轻后期测试的负担和修复的成本,因为bug发现的越早,涉及到的模块理论上也就越少,解决的成本也就越低。而在代码审查中,审查者很难同时处理多个任务,从一个问题空间到另一个空间的上下文切换是一个挑战,会带来额外的开销,所以分配一个合适的代码审查者是相当困难的,因为如果分配了错误的审查者,或许他的知识背景并不适合这个项目,那么他对这个项目架构组织不熟悉,导致的结果就是这次审查会非常的耗时而且会有几率让bug溜进代码仓库。
在商业项目中,公司的内部有硬性的组织结构划分,在开发过程中,往往是几人到十几人作为一个团队来开发一个项目,做同行代码评审时,往往会依据模块来划分,内部互相做代码审查或者在团队中专门安排代码评审的人员,所以代码审查者的人数往往较少,团队人员对于项目的熟悉程度较高,此外商业项目代码审查的数据和流程往往不会对外公开,也很难找到数量客观的数据集。
在大型的开源项目中,上述提到的问题则显得更为突出,项目核心成员往往只有几十人,而参与的贡献人数都有几千人,而在整合代码前必须要经过代码审查,以托管在Github上的openstack为例,参与的贡献者就已经超过了1600多人,提交的代码更改更是达到了13万次,显然如此多的参与人数和更改,往往不能得到及时审查,则很大可能会导致开发流程的延迟甚至阻塞,所以要找出合适的代码审查者是一个非常具有挑战性的任务。
针对自动推荐合适的代码审查者这一问题,比较著名的相关工作是基于项目路径分析的RevFinder算法。
RevFinder算法是基于文件所在项目路径分析的代码审查者推荐算法,它的主要思想是在相似的文件路径下的文件应该由有着“相似的经验”的代码审查者审查。可以理解为,当一个新的提交审核来时,则在历史记录中搜索审核过相似的文件路径的审查者,并由相对应的路径相似算法计算出得分,然后将分数分配给每个对应的审核人员。在遍历完所有的文件路径后,每个审核人员都有一个对应的总分。之后根据分数来进行推荐优先级的排序,之后计算准确率。
虽然RevFinder算法可以较好的推荐代码审查者,但是仍有一些不足需要改进。
RevFinder算法仅仅利用审查者历史审查过的文件路径与一个新提交所涉及的文件路径的字符串比较技术进行代码审查者推荐,即路径的最长相同前缀、最长相同后缀、最长相同子字符串和最长相同子序列,再利用Borda技术将其结果结合得到文件路径的相似性,此算法虽然可以在一定程度上解决代码审查者推荐的问题,但是只考虑到了文件路径的相似性,却没有考虑到一条文件路径下不同位置的文件相似所得到的权值是不同的,例如,候选代码审查者所审查的历史文件在对应的路径中离所要审查的目标文件的距离越远的时候,审查者对于该目标文件的了解程度也应该随之减少,即与距离成反比。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种基于文件路径分析的代码审查者推荐方法,以解决大型开源项目中,由于不能及时高效的推荐合适的代码审查者,所造成的更改丢失甚至开发流程延迟、阻塞的问题。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种基于文件路径分析的代码审查者推荐方法,包括步骤如下:
(1)构建文件树:根据历史数据中的代码文件路径,构建出该代码文件所属整个项目的文件树形结构,即文件树;
(2)构建经验树:根据候选代码审查者的历史代码审查记录计算出候选代码审查者对文件树中各个代码文件的经验值,将候选代码审查者对文件树中各个代码文件的经验值及候选代码审查者ID配置至文件树对应节点上,从而得到对应的经验树;
(3)计算候选代码审查者经验值:利用新提交更改的代码文件集中的文件路径遍历经验树,取代码文件集遍历得到的候选代码审查者及其经验值,将相同ID的候选代码审查者的经验值相累加,以得到候选代码审查者对于该提交更改的最终经验值;
(4)对候选代码审查者进行排序:利用上述得到的候选代码审查者的最终经验值对其进行排序,再根据实际应用情况,取所得序列中,排名前1,前3,前5或前10的对应候选代码审查者作为最后推荐的代码审查者。
进一步地,所述步骤(2)中候选代码审查者的历史代码审查记录具体包括:对代码文件的审查次数、审查代码文件的最后审查时间、审查代码文件之间的关联性、审查代码文件与目标代码文件的距离。
进一步地,所述步骤(2)中具体包括:代码审查者对于文件经验值的表示方法如下:
Exp(r,n)=k*(reviewTime/base)/Dis(n,f)
式中,r为一个代码审查者的编号,n为文件树中对应文件f路径上的一个节点,相当于文件路径中的文件夹或者文件,k为固定常数参数,定为100,用于调整计算出的经验值到合理的范围区域,reviewTime为代码审查者最后一次审查该文件的时间,base为固定常数参数,除以base后将其压缩到0到1的区间内,f为涉及的代码文件,即被审查的代码文件,Dis函数计算的是文件路径上的点距离该文件的距离,遍历新提交更改的所有代码文件,从根节点出发,计算出代码审查者对于当前代码所在文件夹或者代码文件的经验值,将其配置至经验树中对应的文件路径上的节点中去,当遍历完所有的历史记录时,得到一棵经验树,经验数组中保存的数据格式为代码审查者ID及审查累加的经验值。
进一步地,所述步骤(3)具体包括:新提交更改中所涉及的代码文件集合记为FNs,从FNs中取一个代码文件Fn,按照路径分隔符‘/’划分其文件路径,形成包含文件路径信息及文件名的数组,根据数组中的元素,从经验树的根节点开始遍历经验树进行匹配,记数组下标为pos,经验树当前节点指针为wd,当Fn对应数组元素与经验树当前节点的子节点的文件名一致,则将wd指向此节点,并且数组下标pos加1,匹配下一个元素,若遍历到数组最后的位置时,取当前节点的经验值数组;若Fn对应数组元素与当前节点下所有的子节点文件名都不一致时,取当前节点的经验值数组,遍历停止。
进一步地,所述步骤(3)具体还包括:若经验值数组中的数据量少于10,则向上遍历,累加其父节点下的经验值数组,直至数据量至少为10;重复上述过程,直至遍历完FNs,累加所有的经验值数组。
本发明的有益效果:
本发明提出了利用基于文件路径分析的代码审查者推荐方法,提高了代码审查者推荐准确率,同时也减少了代码审查者推荐的运行时间,使其更加高效。除此之外,本发明充分考虑了文件路径中的不同文件的相似性所造成的经验值不同,将文件的审查次数、审查文件的最后审查时间、审查文件之间的关联性考虑在内,更加充分的运用了候选代码审查者的历史信息,使得该算法相比于其他基于文件路径相似性的算法更具稳定性。
附图说明
图1为构建文件树的过程示意图。
图2为构建经验树的过程示意图。
图3为本发明推荐方法的流程图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
参照图1至图3所示,本发明的一种基于文件路径分析的代码审查者推荐方法,包括步骤如下:
(1)构建文件树:项目的代码文件路径可以理解为一棵树从根节点到叶子节点所经过的路径,根据历史数据中的代码文件路径,构建出该代码文件所属整个项目的文件树形结构,即文件树;
(2)构建经验树:根据候选代码审查者的历史审查记录,即对代码文件的审查次数、代码文件的最后审查时间、审查代码文件之间的关联性、审查代码文件与目标代码文件的距离计算出候选代码审查者对文件树中各个代码文件的经验值,将候选代码审查者对文件树中各个代码文件的经验值及候选代码审查者ID配置至文件树对应节点上,得到经验树;
(3)计算候选代码审查者经验值:利用新提交更改的代码文件集中的代码文件路径遍历经验树,取代码文件集遍历得到的候选代码审查者及其经验值,将相同ID的候选代码审查者的经验值相累加,以得到候选代码审查者对于该提交更改的最终经验值;
(4)对候选代码审查者进行排序:利用上述得到的候选代码审查者的最终经验值对其进行排序,再根据实际应用情况,取所得序列中,排名前1,前3,前5或前10的对应候选代码审查者作为最后推荐的代码审查者。
步骤(1)具体包括:因实验数据是以JSON文件形式存储,不便于本发明方法直接使用,因此先将实验数据预处理后存入MySQL数据库备用。历史代码审查记录中所涉及的代码文件集合为hFNs,从hFNs中取一个hFn,按照‘/’划分成文件名的数组,按数组中的文件名N,从根节点R开始遍历文件树,若发现遍历文件树时,没有以该文件名为顶点的节点,则新建一个名为该文件名的节点,直到遍历完hFNs中所有文件,文件树建立完成,具体举例说明,某一项目中,未遍历的历史记录H假定包括以下内容:对应的代码审查者:X,Y,对应的经验值:X:80,Y:60,H涉及的代码文件:A/B/a.py,A/B/C/b.py,下面根据上述信息,建立文件树,如图1,先初始化一个根节点Root,取一个代码文件路径A/B/a.py,根据“/”划分为A、B和a.py三个节点,从Root根节点开始创建节点,再取未遍历过的代码文件路径A/B/C/b.py,根据“/”划分为A、B、C和b.py四个节点,从Root根节点开始在树上创建新增节点,注意重复的节点忽略添加,直至遍历完历史记录中的全部文件路径,此时,就已构建出整个项目的树形结构,即文件树。
所述步骤(2)中,如果一个代码审查者对于一个代码文件审查过多次,那说明他对于该文件也就越了解和熟悉。熟悉程度可以量化为经验值,所以对应的经验值也就越高。由于在同一个文件夹下的文件往往是属于同一模块的不同函数或者子模块,存在一定关联性,所以一行代码的改动常常会牵连到其他模块相关的输入输出。基于此关联,可以认为代码审查者在审查该文件夹下的文件的时候,其对于该文件夹的熟悉程度在上升,对应的经验值也在增加。考虑到每个文件夹和文件都是文件树上的一个节点,在对应的文件树中离所审查的文件的距离越远的时候,代码审查者对于该文件树节点的了解程度也应该随之减少,与距离成反比。同时考虑审查时间的问题,如有两个代码审查者,记为ra和rb,审查同一份文件的时候,ra的审查时间为3个月前,而rb的审查时间是3天前,明显rb对于该文件要更加熟悉,对应的经验值也应该更高。
综合上述分析,关于代码审查者对于文件经验值的表示方法如下:
Exp(r,n)=k*(reviewTime/base)/Dis(n,f)
式中,r为一个代码审查者的编号,n为文件树中对应文件f路径上的一个节点,相当于文件路径中的文件夹或者文件,k为固定常数参数,定为100,用于调整计算出的经验值到合理的范围区域,reviewTime为代码审查者最后一次审查该文件的时间,base为固定常数参数,除以base后将其压缩到0到1的区间内,f为涉及的代码文件,即被审查的代码文件,Dis函数计算的是文件路径上的点距离该文件的距离,遍历新提交更改的所有代码文件,从根节点出发,计算出代码审查者对于当前代码所在文件夹或者代码文件的经验值,将其配置至经验树中对应的文件路径上的节点中去,当遍历完所有的历史记录时,得到一棵经验树,经验数组中保存的数据格式为代码审查者ID及审查累加的经验值,举例说明,具体信息如上述例子所示,根据步骤(1)得到的文件树,文件路径A/B/a.py中各节点的距离分别为Dis(R,a.py)=4,Dis(A,a.py)=3,Dis(B,a.py)=2,Dis(a.py,a.py)=1,再根据代码审查者的经验值和距离的关系,计算出各节点的经验值,计算结果如图2所示,再取历史记录中未计算过经验值的文件路径A/B/C/b.py,根据步骤(1)得到的文件树,各节点的距离分别为Dis(R,b.py)=5,Dis(A,b.py)=4,Dis(B,b.py)=3,Dis(C,b.py)=2,Dis(b.py,b.py)=1,再根据经验值和距离的关系,计算出各节点的经验值,重复上述步骤,直至计算完历史记录中全部文件路径上各个节点的经验值,重复位置的经验值数组合并,最后将文件节点和经验值数组节点配置至经验树上,则经验树构建完成。
步骤(3)具体包括:新提交更改中所涉及的代码文件集合记为FNs,从FNs中取一个代码文件Fn,按照路径分隔符‘/’划分其文件路径,形成包含文件路径信息及文件名的数组,根据数组中的元素,从经验树的根节点开始遍历经验树进行匹配,记数组下标为pos,经验树当前节点指针为wd,当Fn对应数组元素与经验树当前节点的子节点的文件名相一致,则将wd指向此节点,并且数组下标pos加1,匹配下一个元素,若遍历到数组最后的位置时,取当前节点的经验值数组;若Fn对应数组元素与当前节点下所有的子节点文件名都不一致时,取当前节点的经验值数组,遍历停止。若经验值数组中的数据量少于10,则向上遍历,累加其父节点下的经验值数组,直至数据量至少为10;重复上述过程,直至遍历完FNs,累加所有的经验值数组。
以下采用对比实验的方式来体现本发明方法的性能。
对比实验的主要内容为:将RevFinder算法中所使用的数据集作为本方法的训练集和测试集,同时考虑RevFinder算法所提出的时间顺序相关性,对于测试集中的每一个测试用例,都仅仅考虑在其创建时间之前的所有状态是关闭的历史记录,而不是剩余的全体训练集,对比的内容除Top-k的准确率外,同时考虑算法本身的性能问题,所耗费的时间也作为对比的方面之一。
实验采用的数据,来自于RevFinder算法的数据集,其详细信息如表1所示:
表1
算法评价的计算方式仍然是Top-k准确率,同时k分别取1、3、5、10,依据Revfinder算法,在进行准确率计算之前将得到的更改数组按照创建的时间排序,实验中的测试数据集的大小选定为10、50,测试集的生成方式为随机抽取,之后测试十次,求出平均值,实验结果记录为表2、表3、表4和表5,表2为openstack数据集实验结果,表3为qt数据集实验结果,表4为android数据集实验结果,表5为libreoffice数据集实验结果;其中avg指代平均值(average),运行时间单位为秒(s)。
表2
在openstack数据集上的实验表明本发明方法在Top-1准确度有优势,在Top-3和Top-5的准确度上两者几乎不分伯仲,在Top-10RevFinder两个算法可以稳定在85%左右,而本方法最高可以有86.5%,同时两者的所消耗的时间几乎一样,总体上后者的速度更快。
表3
在qt数据集上的实验表明本发明方法在推荐的准确率和运行时间上都领先RevFinder算法,值得注意的是运行时间两者的差距随着测试集的增长而缩小,本质原因是在本方法中建立经验树需要耗费大量的时间。同时RevFinder算法在该数据集上的预测表现不太理想,在Top-10的平均准确率是少于50%,但是和在openstack上的表现来看,两个算法的准确率都有明显下降。
表4
在android数据集上本发明方法在Top-1上有5%~11%的优势,可见本发明方法在找到最合适的审查人员上是高效的,而且在Top-k的准确率上全面领先RevFinder算法同时在运行时间上几乎两者一致。
表5
在libreoffice数据集上,本发明方法所有的Top-1、Top-3和Top-5平均准确率上有优势,在小样本测试集上的表现明显优于RevFinder算法,但是在大测试样本上后者的两者的Top-1、Top-3和Top-5相差不多,但是本发明方法的平均耗时较少,运行速度较快。
根据在openstack、qt、android和libreoffice数据集上的实验结果整合后形成表6来展示Top-k的平均准确率,来衡量算法的性能。
表6
从表中总体可以看出,对不同的测试集大小,本发明方法的准确率都优于RevFinder算法。随着测试集的增加,后者的准确率也慢慢稳定下来,所以两者相比较,本发明方法在Top-1有2%~6.5%的准确率优势,在Top-3有4%~10%的准确率优势,在Top-5有6%~13%的准确率优势,在Top-10有4%~11%的准确率优势,同时运行速度也快了1.5~3倍,同时结合各个数据集上的表现,都可以得出本发明方法的性能优于RevFinder算法,准确率也高于后者这一结论。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (4)
1.一种基于文件路径分析的代码审查者推荐方法,其特征在于,包括步骤如下:
(1)构建文件树:根据历史数据中的代码文件路径,构建出该代码文件所属整个项目的文件树形结构,即文件树;
(2)构建经验树:根据候选代码审查者的历史代码审查记录计算出候选代码审查者对文件树中各个代码文件的经验值,将候选代码审查者对文件树中各个代码文件的经验值及候选代码审查者ID配置至文件树对应节点上,从而得到对应的经验树;
(3)计算候选代码审查者经验值:利用新提交更改的代码文件集中的文件路径遍历经验树,取代码文件集遍历得到的候选代码审查者及其经验值,将相同ID的候选代码审查者的经验值相累加,以得到候选代码审查者对于该提交更改的最终经验值;
(4)对候选代码审查者进行排序:利用上述得到的候选代码审查者的最终经验值对其进行排序,再根据实际应用情况,取所得序列中,排名前1,前3,前5或前10的对应候选代码审查者作为最后推荐的代码审查者;
所述步骤(2)中具体包括:代码审查者对于文件经验值的表示方法如下:
Exp(r,n)=k*(reviewTime/base)/Dis(n,f)
式中,r为一个代码审查者的编号,n为文件树中对应文件f路径上的一个节点,相当于文件路径中的文件夹或者文件,k为固定常数参数,定为100,用于调整计算出的经验值到合理的范围区域,reviewTime为代码审查者最后一次审查该文件的时间,base为固定常数参数,除以base后将其压缩到0到1的区间内,f为涉及的代码文件,即被审查的代码文件,Dis函数计算的是文件路径上的点距离该文件的距离,遍历新提交更改的所有代码文件,从根节点出发,计算出代码审查者对于当前代码所在文件夹或者代码文件的经验值,将其配置至经验树中对应的文件路径上的节点中去,当遍历完所有的历史记录时,得到一棵经验树,经验数组中保存的数据格式为代码审查者ID及审查累加的经验值。
2.根据权利要求1所述的基于文件路径分析的代码审查者推荐方法,其特征在于,所述步骤(2)中候选代码审查者的历史代码审查记录具体包括:对代码文件的审查次数、审查代码文件的最后审查时间、审查代码文件之间的关联性、审查代码文件与目标代码文件的距离。
3.根据权利要求1所述的基于文件路径分析的代码审查者推荐方法,其特征在于,所述步骤(3)具体包括:新提交更改中所涉及的代码文件集合记为FNs,从FNs中取一个代码文件Fn,按照路径分隔符‘/’划分其文件路径,形成包含文件路径信息及文件名的数组,根据数组中的元素,从经验树的根节点开始遍历经验树进行匹配,记数组下标为pos,经验树当前节点指针为wd,当Fn对应数组元素与经验树当前节点的子节点的文件名一致,则将wd指向此节点,并且数组下标pos加1,匹配下一个元素,若遍历到数组最后的位置时,取当前节点的经验值数组;若Fn对应数组元素与当前节点下所有的子节点文件名都不一致时,取当前节点的经验值数组,遍历停止。
4.根据权利要求3所述的基于文件路径分析的代码审查者推荐方法,其特征在于,所述步骤(3)具体还包括:若经验值数组中的数据量少于10,则向上遍历,累加其父节点下的经验值数组,直至数据量至少为10;重复上述过程,直至遍历完FNs,累加所有的经验值数组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810611269.1A CN109002283B (zh) | 2018-06-14 | 2018-06-14 | 一种基于文件路径分析的代码审查者推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810611269.1A CN109002283B (zh) | 2018-06-14 | 2018-06-14 | 一种基于文件路径分析的代码审查者推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109002283A CN109002283A (zh) | 2018-12-14 |
CN109002283B true CN109002283B (zh) | 2021-07-27 |
Family
ID=64600452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810611269.1A Active CN109002283B (zh) | 2018-06-14 | 2018-06-14 | 一种基于文件路径分析的代码审查者推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109002283B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110286938B (zh) * | 2019-07-03 | 2023-03-31 | 北京百度网讯科技有限公司 | 用于输出针对用户的评价信息的方法和装置 |
CN110442341B (zh) * | 2019-07-23 | 2023-06-16 | 深圳赛安特技术服务有限公司 | 应用程序的界面配置方法、装置及终端设备 |
CN111428142B (zh) * | 2020-05-06 | 2023-07-28 | 南京大学 | 一种基于随机森林分类器的代码评审人推荐系统及方法 |
CN116257494B (zh) * | 2021-04-21 | 2023-12-08 | 华为技术有限公司 | 一种聚合通信的方法、系统和计算机设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007112129A3 (en) * | 2006-03-26 | 2007-11-22 | Surabi Corp | Service promotion using encodable review codes |
CN103279631A (zh) * | 2013-06-27 | 2013-09-04 | 南京大学 | 设计模式制导的爪哇代码评审方法 |
EP2983084A1 (en) * | 2014-08-05 | 2016-02-10 | Alcatel Lucent | Device for ranking software code sections to be reviewed for errors |
CN105786710A (zh) * | 2016-03-22 | 2016-07-20 | 中国银行股份有限公司 | 一种程序代码复查方法及引擎 |
CN106327133A (zh) * | 2016-08-31 | 2017-01-11 | 北京龙德时代技术服务有限公司 | 基于互联网的安标产品质量追溯系统 |
CN107291902A (zh) * | 2017-06-23 | 2017-10-24 | 中国人民解放军国防科学技术大学 | 一种基于混合分类技术的大众贡献审阅自动标注方法 |
CN107678738A (zh) * | 2017-10-17 | 2018-02-09 | 广州慧睿思通信息科技有限公司 | 一种软件质量管理的方法 |
CN107807978A (zh) * | 2017-10-26 | 2018-03-16 | 北京航空航天大学 | 一种基于协同过滤的代码评审者推荐方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805382B2 (en) * | 2005-04-11 | 2010-09-28 | Mkt10, Inc. | Match-based employment system and method |
US9201646B2 (en) * | 2013-01-05 | 2015-12-01 | Vmware, Inc. | Automatic code review and code reviewer recommendation |
US9965633B2 (en) * | 2015-12-29 | 2018-05-08 | Sap Se | Using code similarities for improving auditing and fixing of SAST-discovered code vulnerabilities |
-
2018
- 2018-06-14 CN CN201810611269.1A patent/CN109002283B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007112129A3 (en) * | 2006-03-26 | 2007-11-22 | Surabi Corp | Service promotion using encodable review codes |
CN103279631A (zh) * | 2013-06-27 | 2013-09-04 | 南京大学 | 设计模式制导的爪哇代码评审方法 |
EP2983084A1 (en) * | 2014-08-05 | 2016-02-10 | Alcatel Lucent | Device for ranking software code sections to be reviewed for errors |
CN105786710A (zh) * | 2016-03-22 | 2016-07-20 | 中国银行股份有限公司 | 一种程序代码复查方法及引擎 |
CN106327133A (zh) * | 2016-08-31 | 2017-01-11 | 北京龙德时代技术服务有限公司 | 基于互联网的安标产品质量追溯系统 |
CN107291902A (zh) * | 2017-06-23 | 2017-10-24 | 中国人民解放军国防科学技术大学 | 一种基于混合分类技术的大众贡献审阅自动标注方法 |
CN107678738A (zh) * | 2017-10-17 | 2018-02-09 | 广州慧睿思通信息科技有限公司 | 一种软件质量管理的方法 |
CN107807978A (zh) * | 2017-10-26 | 2018-03-16 | 北京航空航天大学 | 一种基于协同过滤的代码评审者推荐方法 |
Non-Patent Citations (2)
Title |
---|
Patch Reviewer Recommendation in OSS Projects;John Boaz Lee;《2013 20th Asia-Pacific Software Engineering Conference (APSEC)》;20140306;第I-II节 * |
Who Should Review My Code? A File Location-Based Code-Reviewer Recommendation Approach for Modern Code Review;Patanamon Thongtanunam;《2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)》;20150409;第IV-V节 * |
Also Published As
Publication number | Publication date |
---|---|
CN109002283A (zh) | 2018-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Verenich et al. | Survey and cross-benchmark comparison of remaining time prediction methods in business process monitoring | |
CN109002283B (zh) | 一种基于文件路径分析的代码审查者推荐方法 | |
Petersen | Quantifying the impact of weak, strong, and super ties in scientific careers | |
Thor et al. | Identifying single influential publications in a research field: New analysis opportunities of the CRExplorer | |
Bhattacharya et al. | Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging | |
Schulz et al. | Exploiting citation networks for large-scale author name disambiguation | |
Singh et al. | Student performance analysis using clustering algorithm | |
US20170132638A1 (en) | Relevant information acquisition method and apparatus, and storage medium | |
Jeevalatha et al. | Performance analysis of undergraduate students placement selection using decision tree algorithms | |
JP5373870B2 (ja) | 予測装置、予測方法、及び、プログラム | |
US20200401563A1 (en) | Summarizing statistical data for database systems and/or environments | |
CN109711424B (zh) | 一种基于决策树的行为规则获取方法、装置及设备 | |
US20110202484A1 (en) | Analyzing parallel topics from correlated documents | |
JP7375861B2 (ja) | 関連スコア算出システム、方法およびプログラム | |
Tahira et al. | Scientometric assessment of engineering in Malaysians universities | |
US11790380B2 (en) | Systems and methods for finding an interaction subset within a set of interactions | |
Casper et al. | Using sequences to model crises | |
Paul et al. | Concomitant record ranked set sampling | |
EP2541409B1 (en) | Parallelization of large scale data clustering analytics | |
Yilmaz et al. | Generating Performance Improvement Suggestions by using Cross-Organizational Process Mining. | |
Illés et al. | Computational aspects of simplex and MBU-simplex algorithms using different anti-cycling pivot rules | |
Goindani et al. | Employer industry classification using job postings | |
Chern et al. | Automatically detecting errors in employer industry classification using job postings | |
Santos et al. | Activity archetypes in question-and-answer (q8a) websites—a study of 50 stack exchange instances | |
Qin et al. | Assessing the quality of wikipedia pages using edit longevity and contributor centrality |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |