CN113379271A - 面向开源平台的遗弃贡献接管者推荐方法、装置和设备 - Google Patents

面向开源平台的遗弃贡献接管者推荐方法、装置和设备 Download PDF

Info

Publication number
CN113379271A
CN113379271A CN202110690333.1A CN202110690333A CN113379271A CN 113379271 A CN113379271 A CN 113379271A CN 202110690333 A CN202110690333 A CN 202110690333A CN 113379271 A CN113379271 A CN 113379271A
Authority
CN
China
Prior art keywords
takeover
candidate
contribution
obtaining
abandoned
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.)
Granted
Application number
CN202110690333.1A
Other languages
English (en)
Other versions
CN113379271B (zh
Inventor
余跃
李志星
张禹
王涛
张迅晖
王怀民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202110690333.1A priority Critical patent/CN113379271B/zh
Publication of CN113379271A publication Critical patent/CN113379271A/zh
Application granted granted Critical
Publication of CN113379271B publication Critical patent/CN113379271B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种面向开源平台的遗弃贡献接管者推荐方法、装置和计算机设备。所述方法包括:通过度量候选接管者开发经验与遗弃贡献完成难度的匹配度,能够为遗弃贡献推荐能力足够的开发者,同时避免过分干扰高水平的开发者;通过度量候选接管者可得性与遗弃贡献紧急程度的匹配度,对于特定紧急程度的遗弃贡献能够推荐时间充分的开发者,同时避免过分干扰近期任务量少的开发者;通过度量候选接管者对遗弃贡献修改内容的熟悉度,可以减小接管阻碍;通过配置加权参数的推荐策略,管理者可以根据实际情况配置哪个维度的度量值更加重要,从而推荐更符合项目实际需求的开发者,提高了接管者推荐的效率。

Description

面向开源平台的遗弃贡献接管者推荐方法、装置和设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种面向开源平台的遗弃贡献接管者推荐方法、装置和计算机设备。
背景技术
开源社区中大众贡献者提交的贡献(即Pull-request)质量参差不齐,贡献者需要根据审查者的意见反复迭代地改进其代码直至满足合并条件,然而在持续改进的过程中,一些开发者会放弃根据项目管理者的修改要求对其提交的Pull-request进行改进,最终该Pull-request被关闭。这些被中途遗弃的Pull-request是对开发者智力资源和自动化测试资源的巨大浪费。
目前的开源开发平台在处理这些遗弃Pull-request时需要依靠项目管理者人工指定接管者,这给管理者增加了额外的工作量。此外,管理者指定的接管者不一定是合适的或者没有接管意愿,会降低遗弃Pull-request的接管概率并延迟接管时间,现有技术存在效率不高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高遗弃贡献接管者推荐效率的面向开源平台的遗弃贡献接管者推荐方法、装置、计算机设备和存储介质。
一种面向开源平台的遗弃贡献接管者推荐方法,所述方法包括:
获取开源平台中需要接管的遗弃贡献,得到项目管理者对所述遗弃贡献预先评估的难度等级和紧急度等级,并提取所述遗弃贡献中修改的文件集合;
将在所述遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,根据所述候选接管者在所述项目中提交或审核过的贡献的总数,得到所述候选接管者的经验等级;
根据所述候选接管者在所述项目中处于处理状态的贡献的数量,得到所述候选接管者的任务量等级;
根据所述候选接管者对所述文件集合中文件的修改次数,得到所述候选接管者对所述遗弃贡献的熟悉度等级;
根据所述难度等级和所述经验等级,得到第一匹配值,根据所述紧急度等级和所述任务量等级得到第二匹配值,根据所述熟悉度等级得到第三匹配值;
根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分,根据所述总体得分排序推荐排名靠前的多位接管者。
在其中一个实施例中,还包括:获取所有候选接管者在所述项目中提交或审核过的贡献的数量信息;
将所述数量信息作为所述候选接管者的经验值;
将所述经验值从小到大排序并分为n个等级组,根据每个候选接管者的所述经验值,得到对应的经验等级。
在其中一个实施例中,还包括:获取所有所述候选接管者作为贡献提交者在所述项目中提交并处于审核状态的贡献的数量,以及作为贡献审核者在所述项目中正在审核的贡献的数量,两种数量之和作为处于处理状态的贡献的数量;
将所述处于处理状态的贡献的数量作为所述接管者的任务量;
将所述任务量从大到小排序并分为n个等级组,根据每个候选接管者的所述任务量,得到对应的任务量等级。
在其中一个实施例中,还包括:获取所述遗弃贡献中修改的文件集合;
计算每个候选接管者对所述文件集合中每个文件的历史修改次数,作为所述候选接管者对所述文件的熟悉度;
将所述候选接管者对所有文件的熟悉度求和,得到熟悉度之和;
将所有候选接管者的所述熟悉度之和从小到大排序并分为n个等级组,根据每个所述候选接管者的所述熟悉度之和,得到对应的熟悉度等级。
在其中一个实施例中,还包括:根据所述难度等级和所述经验等级,得到第一匹配值为:
Figure BDA0003125944080000031
其中,ME表示所述第一匹配值,e表示所述经验等级,h表示所述难度等级。
在其中一个实施例中,还包括:根据所述紧急度等级和所述任务量等级得到第二匹配值为:
Figure BDA0003125944080000032
其中,MA表示所述第二匹配值,p表示所述紧急度等级,a表示所述任务量等级。
在其中一个实施例中,还包括:根据所述熟悉度等级得到第三匹配值为:
Figure BDA0003125944080000033
其中,MF表示所述第三匹配值,o表示所述熟悉度之和,n表示所述熟悉度等级的总等级数。
在其中一个实施例中,还包括:根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分为:
s=α*ME+β*MF+γ*MA
其中,s表示所述总体等分,α、β、γ表示所述预设的加权参数;
将所有所述候选接管者的总体得分从大到小排序,选取前k个候选接管者推荐为所述遗弃贡献的最佳接管者。
一种面向开源平台的遗弃贡献接管者推荐装置,所述装置包括:
遗弃贡献评估模块,用于获取开源平台中需要接管的遗弃贡献,得到项目管理者对所述遗弃贡献预先评估的难度等级和紧急度等级,并提取所述遗弃贡献中修改的文件集合;
经验等级获取模块,用于将在所述遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,根据所述候选接管者在所述项目中提交或审核过的贡献的总数,得到所述候选接管者的经验等级;
任务量等级获取模块,用于根据所述候选接管者在所述项目中处于处理状态的贡献的数量,得到所述候选接管者的任务量等级;
熟悉度等级获取模块,用于根据所述候选接管者对所述文件集合中文件的修改次数,得到所述候选接管者对所述遗弃贡献的熟悉度等级;
匹配值计算模块,用于根据所述难度等级和所述经验等级,得到第一匹配值,根据所述紧急度等级和所述任务量等级得到第二匹配值,根据所述熟悉度等级得到第三匹配值;
接管者推荐模块,用于根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分,根据所述总体得分排序推荐排名靠前的多位接管者。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取开源平台中需要接管的遗弃贡献,得到项目管理者对所述遗弃贡献预先评估的难度等级和紧急度等级,并提取所述遗弃贡献中修改的文件集合;
将在所述遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,根据所述候选接管者在所述项目中提交或审核过的贡献的总数,得到所述候选接管者的经验等级;
根据所述候选接管者在所述项目中处于处理状态的贡献的数量,得到所述候选接管者的任务量等级;
根据所述候选接管者对所述文件集合中文件的修改次数,得到所述候选接管者对所述遗弃贡献的熟悉度等级;
根据所述难度等级和所述经验等级,得到第一匹配值,根据所述紧急度等级和所述任务量等级得到第二匹配值,根据所述熟悉度等级得到第三匹配值;
根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分,根据所述总体得分排序推荐排名靠前的多位接管者。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取开源平台中需要接管的遗弃贡献,得到项目管理者对所述遗弃贡献预先评估的难度等级和紧急度等级,并提取所述遗弃贡献中修改的文件集合;
将在所述遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,根据所述候选接管者在所述项目中提交或审核过的贡献的总数,得到所述候选接管者的经验等级;
根据所述候选接管者在所述项目中处于处理状态的贡献的数量,得到所述候选接管者的任务量等级;
根据所述候选接管者对所述文件集合中文件的修改次数,得到所述候选接管者对所述遗弃贡献的熟悉度等级;
根据所述难度等级和所述经验等级,得到第一匹配值,根据所述紧急度等级和所述任务量等级得到第二匹配值,根据所述熟悉度等级得到第三匹配值;
根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分,根据所述总体得分排序推荐排名靠前的多位接管者。
上述面向开源平台的遗弃贡献接管者推荐方法、装置、计算机设备和存储介质,通过获取开源平台中需要接管的遗弃贡献,得到项目管理者对遗弃贡献预先评估的难度等级和紧急度等级,并提取遗弃贡献中修改的文件集合;将在遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,量化评估候选接管者的经验等级、任务量等级和对遗弃贡献修改内容的熟悉度等级,得到候选接管者开发经验与遗弃贡献完成难度的第一匹配值、候选接管者可得性与遗弃贡献紧急程度的第二匹配值,以及候选接管者对遗弃贡献修改内容的熟悉度的第三匹配值,再根据预设的加权参数,计算候选接管者的总体得分,根据总体得分得到遗弃贡献的推荐接管者。本发明通过度量候选接管者开发经验与遗弃贡献完成难度的匹配度,能够为遗弃贡献推荐能力足够的开发者,同时避免过分干扰高水平的开发者;通过度量候选接管者可得性与遗弃贡献紧急程度的匹配度,对于特定紧急程度的遗弃贡献能够推荐时间充分的开发者,同时避免过分干扰近期任务量少的开发者;通过度量候选接管者对遗弃贡献修改内容的熟悉度,可以减小接管阻碍;通过配置加权参数的推荐策略,管理者可以根据实际情况配置哪个维度的度量值更加重要,从而推荐更符合项目实际需求的开发者,提高遗弃Pull-request被接管的概率并降低接管延迟,减少项目管理者的工作量,充分利用社区开发者提交的任何Pull-request。
附图说明
图1为一个实施例中面向开源平台的遗弃贡献接管者推荐方法的流程示意图;
图2为另一个实施例中面向开源平台的遗弃贡献接管者推荐方法的流程示意图;
图3为一个实施例中面向开源平台的遗弃贡献接管者推荐装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的面向开源平台的遗弃贡献接管者推荐方法,可以应用于如下应用环境中。其中,终端执行一种面向开源平台的遗弃贡献接管者推荐方法,获取开源平台中需要接管的遗弃贡献,得到项目管理者对遗弃贡献预先评估的难度等级和紧急度等级,并提取遗弃贡献中修改的文件集合;将在遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,量化评估候选接管者的经验等级、任务量等级和对遗弃贡献修改内容的熟悉度等级,得到候选接管者开发经验与遗弃贡献完成难度的第一匹配值、候选接管者可得性与遗弃贡献紧急程度的第二匹配值,以及候选接管者对遗弃贡献修改内容的熟悉度的第三匹配值,再根据预设的加权参数,计算候选接管者的总体得分,根据总体得分得到遗弃贡献的推荐接管者。其中,终端可以但不限于是各种个人计算机、笔记本电脑和平板电脑。
在一个实施例中,如图1所示,提供了一种面向开源平台的遗弃贡献接管者推荐方法,包括以下步骤:
步骤102,获取开源平台中需要接管的遗弃贡献,得到项目管理者对遗弃贡献预先评估的难度等级和紧急度等级,并提取遗弃贡献中修改的文件集合。
开源社区又称开放源代码社区,一般由拥有共同兴趣爱好的人所组成,根据相应的开源软件许可证协议公布软件源代码的网络平台,同时也为网络成员提供一个自由学习交流的空间。由于开放源码软件主要被散布在全世界的编程者所开发,开源社区就成了他们沟通交流的必要途径,因此开源社区在推动开源软件发展的过程中起着巨大的作用。
开源社区中大众贡献者提交的贡献(即Pull-request)质量参差不齐,贡献者需要根据审查者的意见反复迭代地改进其代码直至满足合并条件,然而在持续改进的过程中,一些开发者会放弃根据项目管理者的修改要求对其提交的Pull-request进行改进,于是有了遗弃贡献。
项目管理者在进行管理时,对遗弃贡献进行评估,包括难度和紧急度,并提取遗弃贡献中修改的文件集合以初步了解遗弃贡献的内容。
步骤104,将在遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,根据候选接管者在项目中提交或审核过的贡献的总数,得到候选接管者的经验等级。
遗弃贡献的难度等级不一,开发者的经验也不一,候选接管者在项目中提交或审核过的贡献的总数越多,说明其能力与该项目越匹配。
步骤106,根据候选接管者在项目中处于处理状态的贡献的数量,得到候选接管者的任务量等级。
候选接管者处于处理状态的贡献的数量越多,说明其任务越重越忙,又可能无法处理特别紧急的任务。
步骤108,根据候选接管者对文件集合中文件的修改次数,得到候选接管者对遗弃贡献的熟悉度等级。
一般对文件的修改次数越多,说明开发者对该文件越熟悉。
步骤110,根据难度等级和经验等级,得到第一匹配值,根据紧急度等级和任务量等级得到第二匹配值,根据熟悉度等级得到第三匹配值。
通过度量候选接管者开发经验与遗弃贡献完成难度的匹配度,能够为遗弃贡献推荐能力足够的开发者,同时避免过分干扰高水平的开发者;通过度量候选接管者可得性与遗弃贡献紧急程度的匹配度,对于特定紧急程度的遗弃贡献能够推荐时间充分的开发者,同时避免过分干扰近期任务量少的开发者;通过度量候选接管者对遗弃贡献修改内容的熟悉度,可以减小接管阻碍。
步骤112,根据第一匹配值、第二匹配值、第三匹配值和预设的加权参数,得到候选接管者的总体得分,根据总体得分排序推荐排名靠前的多位接管者。
通过配置加权参数的推荐策略,管理者可以根据实际情况配置哪个维度的度量值更加重要,从而推荐更符合项目实际需求的开发者,提高遗弃Pull-request被接管的概率并降低接管延迟,减少项目管理者的工作量,充分利用社区开发者提交的任何Pull-request。
上述面向开源平台的遗弃贡献接管者推荐方法中,通过获取开源平台中需要接管的遗弃贡献,得到项目管理者对遗弃贡献预先评估的难度等级和紧急度等级,并提取遗弃贡献中修改的文件集合;将在遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,量化评估候选接管者的经验等级、任务量等级和对遗弃贡献修改内容的熟悉度等级,得到候选接管者开发经验与遗弃贡献完成难度的第一匹配值、候选接管者可得性与遗弃贡献紧急程度的第二匹配值,以及候选接管者对遗弃贡献修改内容的熟悉度的第三匹配值,再根据预设的加权参数,计算候选接管者的总体得分,根据总体得分得到遗弃贡献的推荐接管者。本发明通过度量候选接管者开发经验与遗弃贡献完成难度的匹配度,能够为遗弃贡献推荐能力足够的开发者,同时避免过分干扰高水平的开发者;通过度量候选接管者可得性与遗弃贡献紧急程度的匹配度,对于特定紧急程度的遗弃贡献能够推荐时间充分的开发者,同时避免过分干扰近期任务量少的开发者;通过度量候选接管者对遗弃贡献修改内容的熟悉度,可以减小接管阻碍;通过配置加权参数的推荐策略,管理者可以根据实际情况配置哪个维度的度量值更加重要,从而推荐更符合项目实际需求的开发者,提高遗弃Pull-request被接管的概率并降低接管延迟,减少项目管理者的工作量,充分利用社区开发者提交的任何Pull-request。
在其中一个实施例中,还包括:获取所有候选接管者在项目中提交或审核过的贡献的数量信息;将数量信息作为候选接管者的经验值;将经验值从小到大排序并分为n个等级组,根据每个候选接管者的经验值,得到对应的经验等级。
在其中一个实施例中,还包括:获取所有候选接管者作为贡献提交者在项目中提交并处于审核状态的贡献的数量,以及作为贡献审核者在项目中正在审核的贡献的数量,两种数量之和作为处于处理状态的贡献的数量;将处于处理状态的贡献的数量作为接管者的任务量;将任务量从大到小排序并分为n个等级组,根据每个候选接管者的任务量,得到对应的任务量等级。
在其中一个实施例中,还包括:获取遗弃贡献中修改的文件集合;计算每个候选接管者对文件集合中每个文件的历史修改次数,作为候选接管者对文件的熟悉度;将候选接管者对所有文件的熟悉度求和,得到熟悉度之和;将所有候选接管者的熟悉度之和从小到大排序并分为n个等级组,根据每个候选接管者的熟悉度之和,得到对应的熟悉度等级。
在其中一个实施例中,还包括:根据难度等级和经验等级,得到第一匹配值为:
Figure BDA0003125944080000091
其中,ME表示第一匹配值,e表示经验等级,h表示难度等级。
在其中一个实施例中,还包括:根据紧急度等级和任务量等级得到第二匹配值为:
Figure BDA0003125944080000092
其中,MA表示第二匹配值,p表示紧急度等级,a表示任务量等级。
在其中一个实施例中,还包括:根据熟悉度等级得到第三匹配值为:
Figure BDA0003125944080000093
其中,MF表示第三匹配值,o表示熟悉度之和,n表示熟悉度等级的总等级数。
在其中一个实施例中,还包括:根据第一匹配值、第二匹配值、第三匹配值和预设的加权参数,得到候选接管者的总体得分为:
s=α*ME+β*MF+γ*MA
其中,s表示总体等分,α、β、γ表示预设的加权参数;
将所有候选接管者的总体得分从大到小排序,选取前k个候选接管者推荐为遗弃贡献的最佳接管者。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在另一个实施例中,如图2所示,提供了一种面向开源平台的遗弃贡献接管者推荐方法,对于一个遗弃贡献(即Pull-request),在其项目内有过代码贡献的开发者以及参与过代码审查的开发者均被视为候选接管者,本发明从候选接管者中推荐Top-k个最佳接管者,主要功能步骤如下:
S1:度量候选接管者开发经验与遗弃贡献完成难度的匹配度:
S1.1:项目管理者预定义一组难度值,如从H1-Hn共n个难度等级,且难度逐级递增。对于一个遗弃Pull-request,管理者评估遗弃Pull-request完成的难度,并从预定义难度值中选取一个适合的难度等级赋予该遗弃Pull-request。
S1.2:对于每一个候选接管者,计算其在本项目内提交的Pull-request总数,该值用以表征该开发者的经验。把所有的候选者按照经验值从小到大的顺序排序并分为E1-En共n个等级组,经验值逐级递增。
S1.3:把每个候选者的经验等级e与遗弃Pull-request的难度等级h带入式子1/(|e-h|+1),得到的数值即为候选接管者开发经验与遗弃Pull-request完成难度的匹配度,该值越大表明匹配度越高(最大为1,最小为1/n)。
S2:度量候选接管者可得性与遗弃贡献紧急程度的匹配度:
S2.1:项目管理者预定义一组紧急度值,如从P1-Pn共n个难度等级,且紧急度逐级递增。对于一个遗弃Pull-request,管理者评估遗弃Pull-request完成紧急度,并从预定义紧急度值中选取一个适合的紧急等级赋予该遗弃Pull-request。
S2.2:对于每一个候选接管者,计算其近期在平台内提交并处于审查状态的Pull-request总数,该值用以表征该开发者的任务量。把所有的候选者按照任务量从大到小的顺序排序并分为A1-An共n个等级组,任务量值逐级递减(即可得性逐级递增)。
S2.3:把每个候选者的可得性a与遗弃Pull-request的紧急等级p带入式子1/(|p-a|+1),得到的数值即为候选接管者可得性与遗弃Pull-request紧急程度的匹配度,该值越大表明匹配度越高(最大为1,最小为1/n)。
S3:度量候选接管者对遗弃贡献修改内容的熟悉度:
S3.1:提取出遗弃Pull-request所修改的文件集合FS
S3.2:对于每个属于FS的文件f,计算每一位候选接管者对f的历史修改次数,该数值用以表征该开发者对f的熟悉度f_f,接着计算开发者对FS中所有文件的熟悉度之和f_F。把所有的候选者按照对f_F从小到大排序并分为F1-Fn共n个等级组,熟悉度逐级递增。
S3.3:把每个候选接管者的熟悉度等级o带入式子o/n,得到的数值即为候选接管者对遗弃Pull-request的熟悉度,该值越大表明匹配度越高(最大为1,最小为1/n)。
S4:基于可配置加权参数推荐Top-k接管者:
S4.1:项目管理者配置三个加权参数:α,β,γ。
S4.2:对于每个候选接管者,把其开发经验与遗弃Pull-request完成难度的匹配度ME、对遗弃Pull-request的熟悉度MF、其可得性与遗弃Pull-request紧急程度的匹配度MA带入式子:α*ME+β*MF+γ*MA,得到的值为候选者的总体得分s。
S4.3:把所有的候选者按照得分s从大到小排序,选取前K个推荐为接管者。
在一个实施例中,如图3所示,提供了一种面向开源平台的遗弃贡献接管者推荐装置,包括:遗弃贡献评估模块302、经验等级获取模块304、任务量等级获取模块306、熟悉度等级获取模块308、匹配值计算模块310和接管者推荐模块312,其中:
遗弃贡献评估模块302,用于获取开源平台中需要接管的遗弃贡献,得到项目管理者对遗弃贡献预先评估的难度等级和紧急度等级,并提取遗弃贡献中修改的文件集合;
经验等级获取模块304,用于将在遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,根据候选接管者在项目中提交或审核过的贡献的总数,得到候选接管者的经验等级;
任务量等级获取模块306,用于根据候选接管者在项目中处于处理状态的贡献的数量,得到候选接管者的任务量等级;
熟悉度等级获取模块308,用于根据候选接管者对文件集合中文件的修改次数,得到候选接管者对遗弃贡献的熟悉度等级;
匹配值计算模块310,用于根据难度等级和经验等级,得到第一匹配值,根据紧急度等级和任务量等级得到第二匹配值,根据熟悉度等级得到第三匹配值;
接管者推荐模块312,用于根据第一匹配值、第二匹配值、第三匹配值和预设的加权参数,得到候选接管者的总体得分,根据总体得分排序推荐排名靠前的多位接管者。
经验等级获取模块304还用于获取所有候选接管者在项目中提交或审核过的贡献的数量信息;将数量信息作为候选接管者的经验值;将经验值从小到大排序并分为n个等级组,根据每个候选接管者的经验值,得到对应的经验等级。
任务量等级获取模块306还用于获取所有候选接管者作为贡献提交者在项目中提交并处于审核状态的贡献的数量,以及作为贡献审核者在项目中正在审核的贡献的数量,两种数量之和作为处于处理状态的贡献的数量;将处于处理状态的贡献的数量作为接管者的任务量;将任务量从大到小排序并分为n个等级组,根据每个候选接管者的任务量,得到对应的任务量等级。
熟悉度等级获取模块308还用于获取遗弃贡献中修改的文件集合;计算每个候选接管者对文件集合中每个文件的历史修改次数,作为候选接管者对文件的熟悉度;将候选接管者对所有文件的熟悉度求和,得到熟悉度之和;将所有候选接管者的熟悉度之和从小到大排序并分为n个等级组,根据每个候选接管者的熟悉度之和,得到对应的熟悉度等级。
匹配值计算模块310还用于根据难度等级和经验等级,得到第一匹配值为:
Figure BDA0003125944080000131
其中,ME表示第一匹配值,e表示经验等级,h表示难度等级。
匹配值计算模块310根据紧急度等级和任务量等级得到第二匹配值为:
Figure BDA0003125944080000132
其中,MA表示第二匹配值,p表示紧急度等级,a表示任务量等级。
匹配值计算模块310根据熟悉度等级得到第三匹配值为:
Figure BDA0003125944080000133
其中,MF表示第三匹配值,o表示熟悉度之和,n表示熟悉度等级的总等级数。
接管者推荐模块312还用于根据第一匹配值、第二匹配值、第三匹配值和预设的加权参数,得到候选接管者的总体得分为:
s=α*ME+β*MF+γ*MA
其中,s表示总体等分,α、β、γ表示预设的加权参数;
将所有候选接管者的总体得分从大到小排序,选取前k个候选接管者推荐为遗弃贡献的最佳接管者。
关于面向开源平台的遗弃贡献接管者推荐装置的具体限定可以参见上文中对于面向开源平台的遗弃贡献接管者推荐方法的限定,在此不再赘述。上述面向开源平台的遗弃贡献接管者推荐装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种面向开源平台的遗弃贡献接管者推荐方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种面向开源平台的遗弃贡献接管者推荐方法,其特征在于,所述方法包括:
获取开源平台中需要接管的遗弃贡献,得到项目管理者对所述遗弃贡献预先评估的难度等级和紧急度等级,并提取所述遗弃贡献中修改的文件集合;
将在所述遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,根据所述候选接管者在所述项目中提交或审核过的贡献的总数,得到所述候选接管者的经验等级;
根据所述候选接管者在所述项目中处于处理状态的贡献的数量,得到所述候选接管者的任务量等级;
根据所述候选接管者对所述文件集合中文件的修改次数,得到所述候选接管者对所述遗弃贡献的熟悉度等级;
根据所述难度等级和所述经验等级,得到第一匹配值,根据所述紧急度等级和所述任务量等级得到第二匹配值,根据所述熟悉度等级得到第三匹配值;
根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分,根据所述总体得分排序推荐排名靠前的多位接管者。
2.根据权利要求1所述的方法,其特征在于,根据所述候选接管者在所述项目中提交或审核过的贡献的总数,得到所述候选接管者的经验等级,包括:
获取所有候选接管者在所述项目中提交或审核过的贡献的数量信息;
将所述数量信息作为所述候选接管者的经验值;
将所述经验值从小到大排序并分为n个等级组,根据每个候选接管者的所述经验值,得到对应的经验等级。
3.根据权利要求1所述的方法,其特征在于,根据所述候选接管者在所述项目中处于处理状态的贡献的数量,得到所述候选接管者的任务量等级,包括:
获取所有所述候选接管者作为贡献提交者在所述项目中提交并处于审核状态的贡献的数量,以及作为贡献审核者在所述项目中正在审核的贡献的数量,两种数量之和作为处于处理状态的贡献的数量;
将所述处于处理状态的贡献的数量作为所述接管者的任务量;
将所述任务量从大到小排序并分为n个等级组,根据每个候选接管者的所述任务量,得到对应的任务量等级。
4.根据权利要求1所述的方法,其特征在于,根据所述候选接管者对所述文件集合中文件的修改次数,得到所述候选接管者对所述遗弃贡献的熟悉度等级,包括:
获取所述遗弃贡献中修改的文件集合;
计算每个候选接管者对所述文件集合中每个文件的历史修改次数,作为所述候选接管者对所述文件的熟悉度;
将所述候选接管者对所有文件的熟悉度求和,得到熟悉度之和;
将所有候选接管者的所述熟悉度之和从小到大排序并分为n个等级组,根据每个所述候选接管者的所述熟悉度之和,得到对应的熟悉度等级。
5.根据权利要求1所述的方法,其特征在于,根据所述难度等级和所述经验等级,得到第一匹配值,包括:
根据所述难度等级和所述经验等级,得到第一匹配值为:
Figure FDA0003125944070000021
其中,ME表示所述第一匹配值,e表示所述经验等级,h表示所述难度等级。
6.根据权利要求5所述的方法,其特征在于,根据所述紧急度等级和所述任务量等级得到第二匹配值,包括:
根据所述紧急度等级和所述任务量等级得到第二匹配值为:
Figure FDA0003125944070000022
其中,MA表示所述第二匹配值,p表示所述紧急度等级,a表示所述任务量等级。
7.根据权利要求6所述的方法,其特征在于,根据所述熟悉度等级得到第三匹配值,包括:
根据所述熟悉度等级得到第三匹配值为:
Figure FDA0003125944070000031
其中,MF表示所述第三匹配值,o表示所述熟悉度之和,n表示所述熟悉度等级的总等级数。
8.根据权利要求7所述的方法,其特征在于,根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分,根据所述总体得分排序推荐排名靠前的多位接管者,包括:
根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分为:
s=α*ME+β*MF+γ*MA
其中,s表示所述总体等分,α、β、γ表示所述预设的加权参数;
将所有所述候选接管者的总体得分从大到小排序,选取前k个候选接管者推荐为所述遗弃贡献的最佳接管者。
9.一种面向开源平台的遗弃贡献接管者推荐装置,其特征在于,所述装置包括:
遗弃贡献评估模块,用于获取开源平台中需要接管的遗弃贡献,得到项目管理者对所述遗弃贡献预先评估的难度等级和紧急度等级,并提取所述遗弃贡献中修改的文件集合;
经验等级获取模块,用于将在所述遗弃贡献所在项目中参与过代码贡献或代码审核的开发者作为候选接管者,根据所述候选接管者在所述项目中提交或审核过的贡献的总数,得到所述候选接管者的经验等级;
任务量等级获取模块,用于根据所述候选接管者在所述项目中处于处理状态的贡献的数量,得到所述候选接管者的任务量等级;
熟悉度等级获取模块,用于根据所述候选接管者对所述文件集合中文件的修改次数,得到所述候选接管者对所述遗弃贡献的熟悉度等级;
匹配值计算模块,用于根据所述难度等级和所述经验等级,得到第一匹配值,根据所述紧急度等级和所述任务量等级得到第二匹配值,根据所述熟悉度等级得到第三匹配值;
接管者推荐模块,用于根据所述第一匹配值、所述第二匹配值、所述第三匹配值和预设的加权参数,得到所述候选接管者的总体得分,根据所述总体得分排序推荐排名靠前的多位接管者。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
CN202110690333.1A 2021-06-22 2021-06-22 面向开源平台的遗弃贡献接管者推荐方法、装置和设备 Active CN113379271B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110690333.1A CN113379271B (zh) 2021-06-22 2021-06-22 面向开源平台的遗弃贡献接管者推荐方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110690333.1A CN113379271B (zh) 2021-06-22 2021-06-22 面向开源平台的遗弃贡献接管者推荐方法、装置和设备

Publications (2)

Publication Number Publication Date
CN113379271A true CN113379271A (zh) 2021-09-10
CN113379271B CN113379271B (zh) 2022-09-09

Family

ID=77578382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110690333.1A Active CN113379271B (zh) 2021-06-22 2021-06-22 面向开源平台的遗弃贡献接管者推荐方法、装置和设备

Country Status (1)

Country Link
CN (1) CN113379271B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254250A (zh) * 2011-07-13 2011-11-23 武汉大学 一种开源软件开发过程中开发者贡献度的度量方法
CN108171485A (zh) * 2018-02-01 2018-06-15 中国人民解放军国防科技大学 一种基于软件关联库的跨项目审查者推荐方法
CN108182181A (zh) * 2018-02-01 2018-06-19 中国人民解放军国防科技大学 一种基于混合相似度的大众贡献合并请求重复性检测方法
CN110750762A (zh) * 2019-10-21 2020-02-04 中国人民解放军国防科技大学 基于区块链的开源软件确权方法及其系统
CN112419079A (zh) * 2020-12-04 2021-02-26 中国人民解放军国防科技大学 一种面向开源协作社区的贡献价值度量和群体激励方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254250A (zh) * 2011-07-13 2011-11-23 武汉大学 一种开源软件开发过程中开发者贡献度的度量方法
CN108171485A (zh) * 2018-02-01 2018-06-15 中国人民解放军国防科技大学 一种基于软件关联库的跨项目审查者推荐方法
CN108182181A (zh) * 2018-02-01 2018-06-19 中国人民解放军国防科技大学 一种基于混合相似度的大众贡献合并请求重复性检测方法
CN110750762A (zh) * 2019-10-21 2020-02-04 中国人民解放军国防科技大学 基于区块链的开源软件确权方法及其系统
CN112419079A (zh) * 2020-12-04 2021-02-26 中国人民解放军国防科技大学 一种面向开源协作社区的贡献价值度量和群体激励方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
卢松等: "基于时间和影响力因子的Github Pull Request评审人推荐", 《计算机系统应用》 *
谭鑫等: "代码文件贡献组成模式的分析", 《软件学报》 *

Also Published As

Publication number Publication date
CN113379271B (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
Esfahani et al. Guidearch: guiding the exploration of architectural solution space under uncertainty
CN111126668B (zh) 基于图卷积网络的Spark作业时间预测方法和装置
US9443002B1 (en) Dynamic data analysis and selection for determining outcomes associated with domain specific probabilistic data sets
Beliakov et al. Citation-based journal ranks: the use of fuzzy measures
Cailloux et al. Eliciting ELECTRE TRI category limits for a group of decision makers
CN110888911A (zh) 样本数据处理方法、装置、计算机设备及存储介质
US20210142169A1 (en) Prediction interpretation
CN110888625B (zh) 基于需求变更和项目风险对代码质量进行控制的方法
US11836633B2 (en) Generating realistic counterfactuals with residual generative adversarial nets
US11847390B2 (en) Generation of synthetic data using agent-based simulations
Lee et al. Patch reviewer recommendation in oss projects
CN113987182A (zh) 基于安全情报的欺诈实体识别方法、装置及相关设备
Avritzer et al. A multivariate characterization and detection of software performance antipatterns
CN108182633A (zh) 贷款数据处理方法、装置、计算机设备和存储介质
CN108764553B (zh) 用户规模预测方法、装置及计算机设备
CN111078500A (zh) 运行配置参数的调整方法、装置、计算机设备和存储介质
CN111160394A (zh) 分类网络的训练方法、装置、计算机设备和存储介质
CN112379913B (zh) 基于风险识别的软件优化方法、装置、设备及存储介质
CN113379271B (zh) 面向开源平台的遗弃贡献接管者推荐方法、装置和设备
CN116167566A (zh) 基于机器学习的客户资源分配方法及相关设备
CN113468477B (zh) 一种敏感数据调查分析方法、存储介质及设备
CN110929163B (zh) 课程推荐方法、装置、计算机设备及存储介质
CN112988135A (zh) 面向开源软件的任务单元推荐方法、装置和计算机设备
Africa A rough set-based expert system for diagnosing information system communication networks
Verma et al. Intuitionistic fuzzy AHP based reliability allocation model for multi-software system

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