Page 59 - 《软件学报》2021年第11期
P. 59
胡渊喆 等:响应时间约束的代码评审人推荐 3385
数据、补丁内容和 bug 报告信息等一系列特征,利用贝叶斯网络预测代码评审人员和补丁接受度的方法.同样
[9]
使用朴素贝叶斯算法预测评审人的还有 Lipcak 和 Jiang 等人 [30,31] .Lu 等人于 2016 年提出了基于时间和影响
力因子的信息检索评审人推荐算法 [32] .
6.3 基于社交网络的方法
这组方法中,社交网络被用来确定开发人员之间评审交流的相似性,这就为代码评审人员的推荐提供了更
多相似的候选对象.CN(comment network)方法是 Yu 等人通过分析贡献者和开发者之间的社会关系提出的一种
代码评审人推荐方法 [10] ,其假设开发者的兴趣可以从他们的评论中提取出来,与合并请求的发起者共享共同兴
趣的开发人员被认为是合适的代码评审人员.
6.4 混合方法
其他一些研究中,研究人员采用了不同的方法进行混合来推荐代码评审人员,例如 CoreDevRec、TIE、IR+
CN、PR+CF 等 [10−13] .
以上方法的评价指标均为能够推荐合适的代码评审人,而第 1.1 节的数据分析表明,在开源社区的代码评
审实践中,存在很多的合并请求不能及时得到响应的情况,这延长了评审周期、降低了参与人员的积极性和项
目的发展.上述提到的基于准确性的代码评审人推荐方法并不能解决响应时间的问题,因此,我们提出了响应时
间约束的代码评审人推荐问题和基于多目标优化的代码评审人推荐方法,能够推荐合适且响应速度快的评审
人,提高代码评审的响应速度和社区活跃性.
7 结 论
本文提出了响应时间约束的代码评审人推荐问题和基于多目标优化的代码评审人推荐算法 MOC2R,通过
最大化代码评审人员的经验、最大化推荐人员在约定时间内的响应概率、最大化人员的活跃性来为代码评审
推荐人员.实验结果表明,MOC2R 能够取得很好的推荐效果.在未来,我们计划探索更多的优化目标,有助于选择
更加合适的代码评审人.同时寻求机会企业内部部署 MOC2R,以便更好地评估它在实践中的表现.还将研究如
何评估代码评审质量,以便进一步优化评审人推荐方法.
References:
[1] Bacchelli A, Bird C. Expectations, outcomes, and challenges of modern code review. In: Proc. of the 2013 Int’l Conf. on Software
Engineering. IEEE, 2013. 712−721.
[2] Gousios G, Pinzger M, van Deursen A. An exploratory study of the pull-based software development model. In: Proc. of the 36th
Int’l Conf. on Software Engineering. ACM, 2014. 345−355.
[3] Gousios G, Zaidman A, Storey MA, Van Deursen A. Work practices and challenges in pull-based development: The integrator’s
perspective. In: Proc. of the 37th Int’l Conf. on Software Engineering, Vol.1. IEEE, 2015. 358−368.
[4] Gousios G, Storey MA, Bacchelli A. Work practices and challenges in pull-based development: The contributor’s perspective. In:
Proc. of the ICSE 2016. 285−296.
[5] Thongtanunam P, Tantithamthavorn C, Kula RG, Yoshida N, Iida H, Matsumoto KI. Who should review my code? A file location-
based code-reviewer recommendation approach for modern code review. In: Proc. of the 2015 IEEE 22nd Int’l Conf. on Software
Analysis, Evolutionand Reengineering (SANER). IEEE, 2015. 141−150.
[6] Balachandran V. Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer
recommendation. In: Proc. of the ICSE 2013. 2013. 931−940.
[7] Hannebauer C. Automatically recommending code reviewers based on their expertise: An empirical comparison. In: Proc. of the
ASE 2016. 2016. 99−110.
[8] Jeong G, Kim S, Zimmermann T, Yi K. Improving code review by predicting reviewers and acceptance of patches. In: Proc. of the
Research on Software Analysis for Error-free Computing Center Tech-Memo (ROSAEC MEMO 2009). 2009. 1−18.