CN113792189A - 群智软件开发贡献效率评估方法、装置、设备及介质 - Google Patents

群智软件开发贡献效率评估方法、装置、设备及介质 Download PDF

Info

Publication number
CN113792189A
CN113792189A CN202111166126.2A CN202111166126A CN113792189A CN 113792189 A CN113792189 A CN 113792189A CN 202111166126 A CN202111166126 A CN 202111166126A CN 113792189 A CN113792189 A CN 113792189A
Authority
CN
China
Prior art keywords
data
request
pull request
contribution
pull
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
CN202111166126.2A
Other languages
English (en)
Other versions
CN113792189B (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 CN202111166126.2A priority Critical patent/CN113792189B/zh
Publication of CN113792189A publication Critical patent/CN113792189A/zh
Application granted granted Critical
Publication of CN113792189B publication Critical patent/CN113792189B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机技术领域,公开了一种群智软件开发贡献效率评估方法、装置、设备及介质,本发明通过利用GitHub API抽取历史拉取请求;根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;结合线性回归算法和所述元组数据列表构建预测模型;获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;将所述数据元组输入至所述预测模型以获得预测结果,通过贡献时间维度和贡献评论维度生成的数据筛选条件,解决了对拉取请求评估存在上下文多样性的问题,通过建立线性回归算法有效的实现了群智软件开发贡献效率的评估。

Description

群智软件开发贡献效率评估方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种群智软件开发贡献效率评估方法、装置、设备及介质。
背景技术
随着计算机技术的发展,出现了群智软件开发这样的一种技术,所谓群智软件开发指的是通过互联网连接起来的大规模开发者群体,在特定环境支持下开展的时空异步的新型软件开发模式,该模式支撑了开源软件的发展。然而,在目前的群体化开发模式下,软件开发参与者主要通过提交和合并软件代码来实现贡献。
拉取请求是要求其他人帮助本人查看代码并提供反馈。这是一种提交代码贡献、修改代码仓库的机制。对于成熟的热门开源项目,由于拉取请求提交频率高、维护者精力有限等原因导致很多拉取请求处理周期较长。因此,群智软件开发贡献效率评估非常重要。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种群智软件开发贡献效率评估方法、装置、设备及介质,旨在解决现有技术无法精确的评估在群智软件开发中贡献效率的技术问题。
为实现上述目的,本发明提供了一种群智软件开发贡献效率评估的方法,所述方法包括:
利用GitHub API抽取历史拉取请求;
根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;
利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;
结合线性回归算法和所述元组数据列表构建预测模型;
获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;
将所述数据元组输入至所述预测模型以获得预测结果。
可选地,所述利用GitHub API抽取历史拉取请求的步骤,包括:
利用GitHub API抽取star数量大于100的历史拉取请求。
可选地,所述根据贡献时间维度和贡献评论维度生成对应的数据筛选条件的步骤,包括:
根据所述贡献时间维度和贡献评论维度获得分类情况,所述分类情况包括:提交时;提交到关闭时间之间且没有评论信息以及提交到关闭时间之间且有评论信息;
根据所述分类情况生成对应的数据筛选条件,所述数据筛选条件为:在分类情况为提交情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度以及是否使用了持续集成工具;在分类情况为提交到关闭时间之间且没有评论信息的情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度以及是否使用了持续集成工具;在分类情况为提交到关闭时间之间且有评论信息的情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度、是否使用了持续集成工具、当前拉取请求从提交到数据采集的时间收到了多少条评论信息、当前拉取请求从提交到第一次收到评论信息的时间间隔以及当前拉取请求从提交到数据采集的时间中是否被关闭然后重新打开。
可选地,利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表的步骤,包括:
利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得属性元组;
通过GitHub API获取所述属性元组对应的处理时长;
根据所述处理时长和所述属性元组整合成结果数据列表。
可选地,所述获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组的步骤,包括:
获取待评估的拉取请求;
根据所述待评论的拉取请求中的时间信息判断所述拉取请求对应的筛选条件;
根据所述筛选条件从所述待评估的拉取请求中获取数据元组。
可选地,所述将所述数据元组输入至所述预测模型以获得预测结果的步骤之后,还包括:
通过GitHub获取所述待评估的拉取请求从提交到预测时间节点的时间间隔;
通过预测结果和所述时间间隔确定剩余处理时长。
可选地,所述将所述数据元组输入至所述预测模型以获得预测结果的步骤之前,还包括:
利用GitHub API获取当前拉取请求中state字段;
根据所述state状态判断所述当前拉取请求状态是否为已完成;
若未完成,则将反馈结果发送至参与者。
此外,为实现上述目的,本发明还提出一种群智软件开发贡献效率评估装置,所述装置包括:
请求获取模块,用于利用GitHub API抽取历史拉取请求;
筛选条件模块,用于根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;
数据遍历模块,用于利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;
模型构建模块,用于结合线性回归算法和所述元组数据列表构建预测模型;
数据筛选模块,用于获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;
结果获取模块,用于将所述数据元组输入至所述预测模型以获得预测结果。
此外,为实现上述目的,本发明还提出一种计算机设备,所述计算机设备包括:存储器,处理器以及存储在所述存储器上并可在所述处理器上运行的群智软件开发贡献效率评估程序,所述群智软件开发贡献效率评估程序配置为实现如上文所述的群智软件开发贡献效率评估方法。
此外,为实现上述目的,本发明还提出一种介质,所述介质上存储有群智软件开发贡献效率评估程序,所述群智软件开发贡献效率评估程序被处理器执行时实现如上文所述的群智软件开发贡献效率评估方法的步骤。
本发明通过利用GitHub API抽取历史拉取请求;根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;结合线性回归算法和所述元组数据列表构建预测模型;获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;将所述数据元组输入至所述预测模型以获得预测结果,通过贡献时间维度和贡献评论维度生成的数据筛选条件,解决了对拉取请求评估存在上下文多样性的问题,通过建立线性回归算法有效的实现了群智软件开发贡献效率的评估。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的群智软件开发贡献效率评估设备的结构示意图;
图2为本发明群智软件开发贡献效率评估方法第一实施例的流程示意图;
图3为本发明群智软件开发贡献效率评估方法第一实施例中群智软件开发模式场景图;
图4为本发明群智软件开发贡献效率评估装置第一实施例的结构框图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的群智软件开发贡献效率评估设备结构示意图。
如图1所示,该群智软件开发贡献效率评估设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对群智软件开发贡献效率评估设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及群智软件开发贡献效率评估程序。
在图1所示的群智软件开发贡献效率评估设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明群智软件开发贡献效率评估设备中的处理器1001、存储器1005可以设置在群智软件开发贡献效率评估设备中,所述群智软件开发贡献效率评估设备通过处理器1001调用存储器1005中存储的群智软件开发贡献效率评估程序,并执行本发明实施例提供的群智软件开发贡献效率评估方法。
本发明实施例提供了一种群智软件开发贡献效率评估方法,参照图2,图2为本发明群智软件开发贡献效率评估方法第一实施例的流程示意图。
本实施例中,所述群智软件开发贡献效率评估方法包括以下步骤:
步骤S10:利用GitHub API抽取历史拉取请求。
需要说明的是,本实施例方法的执行主体可以是群智软件开发贡献效率评估设备或者具有相同功能的设备,以群智软件开发贡献效率评估设备为例对本实施例以及下述各实施例进行说明。
需要说明的是,所述拉取请求(pull request)是请求进行“Git拉取”的缩写,拉取请求的作用是在群体化开发的过程中,开源合并到另一个分支之前请求其他人检查代码。
可以理解的是,所述历史拉取请求是指已经被处理完的pull request。
在具体实施中,从预设地址中获取历史拉取请求是利用GitHub API,抽取热门项目中所有已经关闭的所有pull request,例如为了获取数据的完整性,可以设定利用GitHub API抽取Star数量大于100的热门项目中所有已经关闭的pull request。
可以理解的是,所述预设地址是指GitHub,GitHub是世界上最大的代码托管平台,超5千万开发者正在使用。
在具体实施中,如图3所示,群智软件开发模式下,软件开发参与者主要通过如下过程提交和合并软件代码贡献,pull request从提出到被合并经历的时间有长有短。对于成熟的热门开源项目,由于pull request提交频率高、维护者精力有限等原因导致很多pull request处理周期较长。因此,群智软件开发贡献效率评估非常重要。通过在pullrequest提交时到关闭前给出该pull request处理完毕所需的时间预测,一方面可以帮助审阅者对需要审阅的pull request进行审阅排序,提升贡献合并效率;另一方面可以让贡献者自身对自己的pull request处理所需时间有一定的认知,通过这种交互让贡献者可以对pull request完成有所期待并持续参与到pull request审阅的交互之中。
进一步地,所述利用GitHub API抽取历史拉取请求的步骤,包括:利用GitHub API抽取star数量大于100的历史拉取请求。
步骤S20:根据贡献时间维度和贡献评论维度生成对应的数据筛选条件。
需要说明的是,贡献时间维度是指在历史拉取请求中关于处理拉取请求的时间的维度,其中包括提交时的拉取请求和提交后到关闭之前的拉取请求。
可以理解的是,贡献评论维度是指拉取请求中是否包括评论信息,其中包括:有评论信息的拉取请求和没有评论信息的拉取请求。
需要说明的是,元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。在二维表里,元组也称为行。
在具体实施中,根据贡献时间维度和贡献评论维度在所述历史拉取请求中生成元组数据列表是通过遍历历史拉取请求,在所述历史拉取请求中根据贡献时间维度和贡献评论维度抽取所述历史拉取请求中的对应属性,将遍历结果整合成元组数据列表,例如:根据贡献时间维度对应的贡献者身份信息(core_member),通过在所述历史拉取请求中进行遍历,找到历史拉取请求中对应的代码条目,通过抽取每条历史拉取请求对应的贡献者身份信息以此整合成元组数据列表。
步骤S30:利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表。
进一步地,所述利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表的步骤,包括:利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得属性元组;通过GitHub API获取所述属性元组对应的处理时长;根据所述处理时长和所述属性元组整合成结果数据列表。
步骤S40:结合线性回归算法和所述元组数据列表构建预测模型。
需要说明的是,在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。(这反过来又应当由多个相关的因变量预测的多元线性回归区别,而不是一个单一的标量变量。)在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计。这些模型被叫做线性模型。最常用的线性回归建模是给定X值的y的条件均值是X的仿射函数。不太一般的情况,线性回归模型可以是一个中位数或一些其他的给定X的条件下y的条件分布的分位数作为X的线性函数表示。像所有形式的回归分析一样,线性回归也把焦点放在给定X值的y的条件概率分布,而不是X和y的联合概率分布(多元分析领域)。线性回归是回归分析中第一种经过严格研究并在实际应用中广泛使用的类型。这是因为线性依赖于其未知参数的模型比非线性依赖于其未知参数的模型更容易拟合,而且产生的估计的统计特性也更容易确定。线性回归模型经常用最小二乘逼近来拟合,但他们也可能用别的方法来拟合,比如用最小化“拟合缺陷”在一些其他规范里(比如最小绝对误差回归),或者在桥回归中最小化最小二乘损失函数的惩罚.相反,最小二乘逼近可以用来拟合那些非线性的模型.因此,尽管“最小二乘法”和“线性模型”是紧密相连的,但他们是不能划等号的。
在具体实施中,结合线性回归算法和所述多元数据列表构建预测模型是通过将所述多元数据列表中的特征赋予对应的权重值,通过特征与权重值的乘积再加上一个偏置值即可得到预测模型,例如在多元数据列表中存在特征n,每一个特征w设定一个对应的权重值,通过特征与权重值相乘再最后加上一个偏置值b,即可得到预测模型如下:
y=w1*x1+w2*x2+...+wn*xn+b
步骤S50:获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组。
进一步地,所述获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组的步骤,包括:获取待评估的拉取请求;根据所述待评论的拉取请求中的时间信息判断所述拉取请求对应的筛选条件;根据所述筛选条件从所述待评估的拉取请求中获取数据元组。
步骤S60:将所述数据元组输入至所述预测模型以获得预测结果。
需要说明的是,待评估的拉取请求是作为即将带入所述预测模型中的输入量。
可以理解的是,所述预测结果是指将待评估的拉取请求输入预测模型中之后所得到的时间量,此时的时间量是指从拉取请求创建到被最终审阅完成并关闭的预测时间间隔。
在具体实施中,获取待评估的拉取请求,将所述待评估的拉取请求输入至所述预测模型以获得预测结果是通过获取待评估的拉取请求,抽取该拉取请求中的属性以生成预测所需数据元组,将数据元组输入至预测模型以获得预测结果。
在具体实施中,根据GitHub API获取当前拉取请求的讨论信息,并根据该拉取请求的创建时间判断该拉取请求所需抽取的对应抽取机制,根据所述抽取机制对当前拉取请求进行信息的抽取以生成数据元组。
本实施例通过利用GitHub API抽取历史拉取请求;根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;结合线性回归算法和所述元组数据列表构建预测模型;获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;将所述数据元组输入至所述预测模型以获得预测结果,通过贡献时间维度和贡献评论维度生成的数据筛选条件,解决了对拉取请求评估存在上下文多样性的问题,通过建立线性回归算法有效的实现了群智软件开发贡献效率的评估。
此外,本发明实施例还提出一种介质,所述介质上存储有群智软件开发贡献效率评估程序,所述群智软件开发贡献效率评估程序被处理器执行时实现如上文所述的群智软件开发贡献效率评估方法的步骤。
参照图4,图4为本发明群智软件开发贡献效率评估装置第一实施例的结构框图。
如图4所示,本发明实施例提出的群智软件开发贡献效率评估装置包括:
请求获取模块401,用于利用GitHub API抽取历史拉取请求;
筛选条件模块402,用于根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;
数据遍历模块403,用于利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;
模型构建模块404,用于结合线性回归算法和所述元组数据列表构建预测模型;
数据筛选模块405,用于获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;
结果获取模块406,用于将所述数据元组输入至所述预测模型以获得预测结果。
本实施例通过利用GitHub API抽取历史拉取请求;根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;结合线性回归算法和所述元组数据列表构建预测模型;获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;将所述数据元组输入至所述预测模型以获得预测结果,通过贡献时间维度和贡献评论维度生成的数据筛选条件,解决了对拉取请求评估存在上下文多样性的问题,通过建立线性回归算法有效的实现了群智软件开发贡献效率的评估。
在一实施例中,所述请求获取模块401,还用于利用GitHub API抽取star数量大于100的历史拉取请求。
在一实施例中,所述筛选条件模块402,还用于根据所述贡献时间维度和贡献评论维度获得分类情况,所述分类情况包括:提交时;提交到关闭时间之间且没有评论信息以及提交到关闭时间之间且有评论信息;根据所述分类情况生成对应的数据筛选条件,所述数据筛选条件为:在分类情况为提交情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度以及是否使用了持续集成工具;在分类情况为提交到关闭时间之间且没有评论信息的情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度以及是否使用了持续集成工具;在分类情况为提交到关闭时间之间且有评论信息的情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度、是否使用了持续集成工具、当前拉取请求从提交到数据采集的时间收到了多少条评论信息、当前拉取请求从提交到第一次收到评论信息的时间间隔以及当前拉取请求从提交到数据采集的时间中是否被关闭然后重新打开。
在一实施例中,所述数据生成模块402,还用于根据所述数据采集机制将所述历史拉取请求组织成属性元组;获取所述历史拉取请求对应的处理时长;根据所述属性元组和所述处理时长生成元组数据列表。
在一实施例中,所述数据遍历模块403,还用于利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得属性元组;通过GitHub API获取所述属性元组对应的处理时长;根据所述处理时长和所述属性元组整合成结果数据列表。
在一实施例中,所述结果获取模块406,还用于通过GitHub获取所述待评估的拉取请求从提交到预测时间节点的时间间隔;通过预测结果和所述时间间隔确定剩余处理时长。
在一实施例中,所述结果获取模块406,还用于利用GitHub API获取当前拉取请求中state字段;根据所述state状态判断所述当前拉取请求状态是否为已完成;若未完成,则将反馈结果发送至参与者。
本发明群智软件开发贡献效率评估装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种群智软件开发贡献效率评估的方法,其特征在于,所述方法包括:
利用GitHub API抽取历史拉取请求;
根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;
利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;
结合线性回归算法和所述元组数据列表构建预测模型;
获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;
将所述数据元组输入至所述预测模型以获得预测结果。
2.如权利要求1所述的方法,其特征在于,所述利用GitHub API抽取历史拉取请求的步骤,包括:
利用GitHub API抽取star数量大于100的历史拉取请求。
3.如权利要求1所述的方法,其特征在于,所述根据贡献时间维度和贡献评论维度生成对应的数据筛选条件的步骤,包括:
根据所述贡献时间维度和贡献评论维度获得分类情况,所述分类情况包括:提交时;提交到关闭时间之间且没有评论信息以及提交到关闭时间之间且有评论信息;
根据所述分类情况生成对应的数据筛选条件,所述数据筛选条件为:在分类情况为提交情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度以及是否使用了持续集成工具;在分类情况为提交到关闭时间之间且没有评论信息的情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度以及是否使用了持续集成工具;在分类情况为提交到关闭时间之间且有评论信息的情况时,对应的数据采集机制为贡献者是否为项目核心开发者、拉取请求中包含的代码提交数量、拉取请求代码提交中修改了多少个文件、贡献者历史上提交了多少个其他的拉取请求、拉取请求所属项目目前有多少个未处理完的拉取请求、当前拉取请求的描述信息有多长、贡献者的受关注度、是否使用了持续集成工具、当前拉取请求从提交到数据采集的时间收到了多少条评论信息、当前拉取请求从提交到第一次收到评论信息的时间间隔以及当前拉取请求从提交到数据采集的时间中是否被关闭然后重新打开。
4.如权利要求1所述的方法,其特征在于,所述利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表的步骤,包括:
利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得属性元组;
通过GitHub API获取所述属性元组对应的处理时长;
根据所述处理时长和所述属性元组整合成结果数据列表。
5.如权利要求1所述的方法,其特征在于,所述获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组的步骤,包括:
获取待评估的拉取请求;
根据所述待评论的拉取请求中的时间信息判断所述拉取请求对应的筛选条件;
根据所述筛选条件从所述待评估的拉取请求中获取数据元组。
6.如权利要求1所述的方法,其特征在于,将所述数据元组输入至所述预测模型以获得预测结果的步骤之后,还包括:
通过GitHub获取所述待评估的拉取请求从提交到预测时间节点的时间间隔;
通过预测结果和所述时间间隔确定剩余处理时长。
7.如权利要求1至6任一项所述的方法,其特征在于,所述将所述数据元组输入至所述预测模型以获得预测结果的步骤之前,还包括:
利用GitHub API获取当前拉取请求中state字段;
根据所述state状态判断所述当前拉取请求状态是否为已完成;
若未完成,则将反馈结果发送至参与者。
8.一种群智软件开发贡献效率评估装置,其特征在于,所述装置包括:
请求获取模块,用于利用GitHub API抽取历史拉取请求;
筛选条件模块,用于根据贡献时间维度和贡献评论维度生成对应的数据筛选条件;
数据遍历模块,用于利用所述数据筛选条件在所述历史拉取请求中进行遍历以获得元组数据列表;
模型构建模块,用于结合线性回归算法和所述元组数据列表构建预测模型;
数据筛选模块,用于获取待评估的拉取请求,根据所述数据筛选条件从所述待评估的拉取请求中获取数据元组;
结果获取模块,用于将所述数据元组输入至所述预测模型以获得预测结果。
9.一种群智软件开发贡献效率评估设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的群智软件开发贡献效率评估程序,所述群智软件开发贡献效率评估程序配置为实现如权利要求1至7中任一项所述的群智软件开发贡献效率评估方法的步骤。
10.一种介质,其特征在于,所述介质上存储有群智软件开发贡献效率评估程序,所述群智软件开发贡献效率评估程序被处理器执行时实现如权利要求1至7任一项所述的群智软件开发贡献效率评估方法的步骤。
CN202111166126.2A 2021-09-30 2021-09-30 群智软件开发贡献效率评估方法、装置、设备及介质 Active CN113792189B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111166126.2A CN113792189B (zh) 2021-09-30 2021-09-30 群智软件开发贡献效率评估方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111166126.2A CN113792189B (zh) 2021-09-30 2021-09-30 群智软件开发贡献效率评估方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN113792189A true CN113792189A (zh) 2021-12-14
CN113792189B CN113792189B (zh) 2024-05-14

Family

ID=78877713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111166126.2A Active CN113792189B (zh) 2021-09-30 2021-09-30 群智软件开发贡献效率评估方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113792189B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024058299A1 (ko) * 2022-09-16 2024-03-21 쿠팡 주식회사 Ab 테스트 코드 정보 관리를 위한 전자 장치 및 그 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345530A (zh) * 2018-01-10 2018-07-31 链家网(北京)科技有限公司 一种软件开发效率的获取方法
CN111061959A (zh) * 2019-12-29 2020-04-24 东南大学 一种基于开发者特征的群智化软件任务推荐方法
CN111736804A (zh) * 2020-08-25 2020-10-02 南京大学 一种基于用户评论识别App关键功能的方法及装置
CN112732565A (zh) * 2020-12-31 2021-04-30 星环信息科技(上海)股份有限公司 一种软件持续集成的评估方法、计算机设备及介质
CN112988594A (zh) * 2021-04-25 2021-06-18 郑州信大捷安信息技术股份有限公司 用于代码质量评估的集成检测方法及系统
WO2021176753A1 (ja) * 2020-03-03 2021-09-10 株式会社日立製作所 データ価値定義方法、データ収集促進方法、データ価値定義システム並びにデータ収集促進システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345530A (zh) * 2018-01-10 2018-07-31 链家网(北京)科技有限公司 一种软件开发效率的获取方法
CN111061959A (zh) * 2019-12-29 2020-04-24 东南大学 一种基于开发者特征的群智化软件任务推荐方法
WO2021176753A1 (ja) * 2020-03-03 2021-09-10 株式会社日立製作所 データ価値定義方法、データ収集促進方法、データ価値定義システム並びにデータ収集促進システム
CN111736804A (zh) * 2020-08-25 2020-10-02 南京大学 一种基于用户评论识别App关键功能的方法及装置
CN112732565A (zh) * 2020-12-31 2021-04-30 星环信息科技(上海)股份有限公司 一种软件持续集成的评估方法、计算机设备及介质
CN112988594A (zh) * 2021-04-25 2021-06-18 郑州信大捷安信息技术股份有限公司 用于代码质量评估的集成检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王涛 等: "基于群智的软件开发群体化方法与实践", 中国科学:信息科学, vol. 50, no. 3, 5 March 2020 (2020-03-05), pages 318 - 334 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024058299A1 (ko) * 2022-09-16 2024-03-21 쿠팡 주식회사 Ab 테스트 코드 정보 관리를 위한 전자 장치 및 그 방법

Also Published As

Publication number Publication date
CN113792189B (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
US7647579B2 (en) Method, system and program product for detecting deviation from software development best practice resource in a code sharing system
CN112416778A (zh) 测试用例推荐方法、装置和电子设备
Välja et al. A requirements based approach for automating enterprise it architecture modeling using multiple data sources
Alkhazi et al. Automated refactoring of ATL model transformations: a search-based approach
Pfeiffer et al. Evaluation of conceptual models-a structuralist approach
TWI590095B (zh) 軟體功能驗證系統及其驗證方法
CN111444677A (zh) 基于大数据的阅读模型优化方法、装置、设备及介质
CN113778864A (zh) 一种测试用例的生成方法和装置、电子设备和存储介质
Välja et al. Automated architecture modeling for enterprise technology manageme using principles from data fusion: A security analysis case
Pérez‐Castillo et al. ArchiRev—Reverse engineering of information systems toward ArchiMate models. An industrial case study
CN111241497A (zh) 基于软件复用特征学习的开源代码溯源检测方法
CN113792189B (zh) 群智软件开发贡献效率评估方法、装置、设备及介质
Sultanow et al. Machine learning based static code analysis for software quality assurance
CN117519656A (zh) 一种基于智能制造的软件开发系统
CN113792187B (zh) 群智软件开发贡献质量评估方法、装置、设备及介质
CN112416800A (zh) 智能合约的测试方法、装置、设备及存储介质
Kessentini et al. Improving web services design quality using heuristic search and machine learning
Rose et al. Efficient probabilistic testing of model transformations using search
CN115147020A (zh) 装修数据处理方法、装置、设备及存储介质
CN115713248A (zh) 对用于交易所的数据打分和评价的方法
CN113672497A (zh) 无埋点事件的生成方法、装置、设备及存储介质
AU2020201689A1 (en) Cognitive forecasting
CN114328169A (zh) 一种动态页面的测试方法及其系统
Fatima et al. Towards a sustainability-aware software architecture evaluation for cloud-based software services
Anjum et al. A comparative analysis on widely used web frameworks to choose the requirement based development technology

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