摘要:同行代码评审,即对提交代码进行人工评审,是减少软件缺陷和提高软件质量的有效手段,已被Github等开源社区以及很多软件开发组织广泛采用.在GitHub社区,代码评审是其pull-based软件开发模型的重要组成部分.开源项目往往存在成百上千个候选评审人员,为评审工作推荐合适的评审人员是一项很有价值且挑战性的工作.基于真实开源项目的数据分析发现,评审响应时间过长是普遍存在的问题,这会延长评审周期、降低参与人员积极性,而已有的代码评审人推荐工作均没有考虑响应时间这个因素.因此,提出了响应时间约束的代码评审人推荐问题,即推荐的评审人能否在约定时间内进行评审;进而提出了基于多目标优化的代码评审人推荐方法(MOC2R),该方法通过最大化代码评审人经验、最大化在约定时间内的响应概率、最大化人员最近时间内的活跃性这3个目标,使用多目标优化算法来推荐代码评审人员.基于6个开源项目的数据进行实验,结果表明,在不同时间窗约束下(2h、4h、8h),Top-1准确率为41.7%~61.5%,Top-5准确率为66.5%~77.7%,显著优于两条常用且业内领先的基线方法,且3个目标均对人员推荐有贡献,其中,约定时间内的响应概率目标对于人员推荐的贡献最大.该方法能够进一步提升代码评审效率,提高开源社区的活跃性.
Abstract:Peer code review, or manual review of submitted code, which is an effective way to reduce defects and improve quality, has been widely adopted by open source communities and many software development organizations, such as Github. In the GitHub community, code reviews are an important part of its pull-based software development model. Open source projects often have hundreds or thousands of candidate reviewers, recommend suitable reviewers for code review is a very valuable and challenging work. Based on the data analysis of real open source projects, it is found that the response time of review is a common problem, which will extend the review cycle and reduce the enthusiasm of participants. Existed work did not take the response time into account. Therefore, the code reviewer recommendation problem is proposed with response time constraint, and then the code reviewer recommendation method (MOC2R) is proposed based on multi-objective optimization by maximizing the experience of code reviewers, maximizing the response probability within the time window, and maximizing the activity of staff within the latest time. The experiments are conducted based on data from six open source projects, and the results show that under different time window constraints (2h, 4h, 8h), Top-1 accuracy rate is 41.7%~61.5%, Top-5 accuracy rate is 66.5%~77.7%, significantly better than the two commonly used and industry-leading baseline methods, and all three objectives contributed to the recommendation among which the response probability within the time window contributes the most. The proposed method can further enhance code review efficiency, improve the activity of the open source community.
PDF全文下载地址:
http://jos.org.cn/jos/article/pdf/6079
删除或更新信息,请邮件至freekaoyan#163.com(#换成@)
响应时间约束的代码评审人推荐
本站小编 Free考研考试/2022-01-02
相关话题/代码 推荐 软件 社区 工作
航天嵌入式软件整数溢出的形式化验证方法
摘要:整数溢出引起的软件系统安全性问题屡见不鲜,已有的模型检测技术由于存在状态空间爆炸、不能有效支持中断驱动型程序检测等缺点而少有工程应用.结合真实案例,对航天嵌入式软件整数溢出问题的分布和特征进行了系统性的分析.在有界模型检测技术的基础上,结合整数溢出特征,提出了基于整数溢出变量依赖的程序模型约简 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02软件缺陷自动修复技术综述
摘要:软件缺陷是软件开发和维护过程中不可避免的.随着现代软件规模的不断变大,软件缺陷的数量以及修复难度随之增加,为企业带来了巨大的经济损失.修复软件缺陷,成为了开发人员维护软件质量的重大负担.软件缺陷自动修复技术有希望将开发者从繁重的调试中解脱出来,近年来成为热门的研究领域之一.搜集了94篇该领域最 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02国产复杂异构高性能数值软件的研制与测试专题前言
摘要:中国科学院首个C类战略性先导科技专项XDC01000000主要目标已经达到.在数值软件层面,该先导专项第1阶段的主要任务是在复杂异构先进计算系统上研制高水平的基准测试软件HPL(highperformanceLinpack)和HPCG(highperformanceconjugategradi ...中科院软件研究所 本站小编 Free考研考试 2022-01-02面向异构计算的高性能计算算法与软件
摘要:研发适应国产异构计算环境的高性能计算算法与软件是非常重要的课题,对我国高性能计算软件研发匹配高性能计算硬件高水平发展的速度具有重要意义.首先,简要介绍高性能计算应用软件的现状、趋势和面临挑战,并对几类典型高性能计算应用软件开展并行计算算法特征分析,涵盖了宇宙N体模拟、地球系统模式、计算材料相场 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02面向非确定性的软件质量保障方法与技术专题前言
摘要:随着互联网、物联网、云计算等新计算平台、新应用模式、及智能化等新软件模式的广泛运用,软件系统内外各种来源的非确定性不断增强.从软件系统内部的不确定性看,并发程序是一类典型的非确定性软件系统.并发程序由于其随机性高的特点,容易导致并发缺陷且难以调试.从软件系统外部的不确定性看,软件所处的网络环境 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02复杂软件系统的不确定性
摘要:复杂软件系统(如信息物理系统CPS、物联网IoT以及自适应软件系统等)在其开发和运行过程中会遇到各种类型的不确定性问题.针对这些不确定性问题,研究人员开展了大量的研究工作,提出了一系列的方法,取得了诸多成果.然而,由于此类系统本身固有的复杂性和其内在与外在不确定性的共同作用,截止目前研究人员针 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02代码注释自动生成方法综述
摘要:在软件的开发和维护过程中,与代码对应的注释经常存在缺失、不足或者与代码实际内容不匹配等问题,但手工编写代码注释对开发人员来说费时费力,且注释质量难以保证,因此亟需研究人员提出有效的代码注释自动生成方法.代码注释自动生成问题是当前程序理解研究领域的一个研究热点,对该问题进行了系统综述.主要将已有 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02基于指针生成网络的代码注释自动生成模型
摘要:代码注释在软件质量保障中发挥着重要的作用,它可以提升代码的可读性,使代码更易理解、重用和维护.但是出于各种各样的原因,有时开发者并没有添加必要的注释,使得在软件维护的过程中,往往需要花费大量的时间来理解代码,大大降低了软件维护的效率.近年来,多项工作利用机器学习技术自动生成代码注释,这些方法从 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02针对复杂用户评论的代码质量属性判断
摘要:随着开发者社区和代码托管平台成为程序员获取代码的主要途径,针对代码的用户评论数量急剧增加.用户在使用代码后给出的评论中包含多种静态和动态的代码质量属性信息,但是由于用户评论多为复杂句,使得评论中包含的代码质量属性难以判断.针对复杂用户评论的代码质量属性判断将有助于分析用户评论中的代码质量信息, ...中科院软件研究所 本站小编 Free考研考试 2022-01-02基于代码自然性的切片粒度缺陷预测方法
摘要:软件缺陷预测是软件质量保障领域的一个活跃话题,它可以帮助开发人员发现潜在的缺陷并更好地利用资源.如何为预测系统设计更具判别力的度量元,并兼顾性能与可解释性,一直是人们致力于研究的方向.针对这一挑战,提出了一种基于代码自然性特征的缺陷预测方法——CNDePor.该方法通过正逆双向度量代码并利用质 ...中科院软件研究所 本站小编 Free考研考试 2022-01-02