开源软件开发中Issue解决时间的预测方法及系统与流程

专利2022-06-29  98


本发明涉及网络信息技术领域,具体地,涉及一种开源软件开发中issue解决时间的预测方法及系统,尤其涉及一种基于微过程模式挖掘的开源软件开发中issue解决时间的预测方法。



背景技术:

开源软件项目中,issue的提出、跟进和解决占据着十分重要的地位。但随着issue积压越来越多,以及解决issue的人员不足,导致很多issue得不到及时解决,因此需要理解影响issue解决的因素,并采取良好的策略来改善issue解决的进程。issue的解决是一个包含很多动作的群体合作过程,从过程的角度理解issue有很多好处,例如可以找到issue解决过程中的瓶颈、关键路径以及频繁模式等。在issue解决的进程中,包含issue的识别、原因分析、解决等多个阶段,而这些阶段中更详细的过程模型便称为微过程模式。知晓issue解决的微过程模式能增强对issue解决过程的认知,从而能指导开源项目开发成员尽力跟从更高效的微过程模式,同时也能降低issue提出者对issue解决时长的不确定。更重要的是,issue微过程模式对issue解决时间的预测也有着很大的帮助。目前的方法中均没有利用微过程模式。

专利文献cn110503235a公开了一种时间序列的预测方法,包括:获取预设历史时段内的业务量信息,其中所述业务量信息包括时间及变量;根据所述业务量信息绘制对应的散点图;选择多种预测模型的类型;将所述散点图根据所述类型分别训练对应的预测模型的参数,以分别确定所述多种预测模型;利用所述多种预测模型对所述业务量分别进行预测;将所述多个预测结果按照预设规则,赋予所述多个预测模型对应的权重;及获取待预测的时间,并根据所述时间及所述权重计算综合预测结果,以将所述综合预测结果作为最终的预测结果输出。该专利显然不能很好地适用于基于微过程模式挖掘的开源软件开发中issue解决时间的预测中。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种开源软件开发中issue解决时间的预测方法及系统。

根据本发明提供的一种开源软件开发中issue解决时间的预测方法,包括:步骤1:爬取开源软件平台上的不同项目中的issue及其相关数据组;步骤2:清洗整理原始数据并制作事件日志;步骤3:应用过程挖掘技术挖掘issue解决过程的两阶段中的频繁模式;步骤4:利用issue动态和静态特征构建issue解决模式动态预测模型,基于模式信息构建动态issue解决时间预测模型;步骤5:获取开源软件开发中issue解决时间的预测结果信息。

优选地,所述步骤1包括:步骤1.1:通过开源软件平台上issue的标记进行筛选,爬取issue的基本信息、回复信息、事件信息以及作者信息等;所述爬取开源软件平台上的不同项目中的issue及其相关数据组包括:具体爬取故障维修类型的issue。

优选地,所述步骤2包括:步骤2.2:以爬取的issue事件信息为基础,加上开始和结束事件,依据开源平台的规则合并一些事件,最后以issue的id、事件名称以及事件发生的时间组合成一条记录,并由所组合的所有记录集合成事件日志。

优选地,所述步骤3包括:步骤3.1:将所制作出的事件日志作为输入文件,应用过程挖掘技术得到分析结果,根据最常见的issue解决路径将issue解决过程分为两个阶段,并在两阶段中应用过程挖掘技术分别挖掘频繁模式。共挖掘出第一阶段4种模式,第二阶段5种模式。

优选地,所述步骤4包括:步骤4.1:从源数据中挖掘与issue两阶段模式相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征;所挖掘出的特征可以分为issue特征、issue创建者特征和项目特征3类;步骤4.2:以在不同的时间戳上应用不同的机器学习方法训练不同的模型;步骤4.3:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;步骤4.4:从源数据中挖掘与issue解决时间相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征,同时加入issue解决模式动态预测模型所预测的各模式的概率信息;步骤4.5:在不同的时间戳上应用不同的机器学习方法训练不同的模型;步骤4.6:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;所述利用issue动态和静态特征构建issue解决模式动态预测模型包括特征选择、模型训练和模型评估;所述基于模式信息构建动态issue解决时间预测模型包括:特征选择、模型训练和模型评估。

根据本发明提供的一种开源软件开发中issue解决时间的预测系统,包括:模块1:爬取开源软件平台上的不同项目中的issue及其相关数据组;模块2:清洗整理原始数据并制作事件日志;模块3:应用过程挖掘技术挖掘issue解决过程的两阶段中的频繁模式;模块4:利用issue动态和静态特征构建issue解决模式动态预测模型,基于模式信息构建动态issue解决时间预测模型;模块5:获取开源软件开发中issue解决时间的预测结果信息。

优选地,所述模块1包括:模块1.1:通过开源软件平台上issue的标记进行筛选,爬取issue的基本信息、回复信息、事件信息以及作者信息等;所述爬取开源软件平台上的不同项目中的issue及其相关数据组包括:具体爬取故障维修类型的issue。

优选地,模块2包括:模块2.2:以爬取的issue事件信息为基础,加上开始和结束事件,依据开源平台的规则合并一些事件,最后以issue的id、事件名称以及事件发生的时间组合成一条记录,并由所组合的所有记录集合成事件日志。

优选地,所述模块3包括:模块3.1:将所制作出的事件日志作为输入文件,应用过程挖掘技术得到分析结果,根据最常见的issue解决路径将issue解决过程分为两个阶段,并在两阶段中应用过程挖掘技术分别挖掘频繁模式。共挖掘出第一阶段4种模式,第二阶段5种模式。

优选地,所述模块4包括:模块4.1:从源数据中挖掘与issue两阶段模式相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征;所挖掘出的特征可以分为issue特征、issue创建者特征和项目特征3类;模块4.2:以在不同的时间戳上应用不同的机器学习方法训练不同的模型;模块4.3:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;模块4.4:从源数据中挖掘与issue解决时间相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征,同时加入issue解决模式动态预测模型所预测的各模式的概率信息;模块4.5:在不同的时间戳上应用不同的机器学习方法训练不同的模型;模块4.6:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;所述利用issue动态和静态特征构建issue解决模式动态预测模型包括特征选择、模型训练和模型评估;所述基于模式信息构建动态issue解决时间预测模型包括:特征选择、模型训练和模型评估。

与现有技术相比,本发明具有如下的有益效果:

本发明首创性地挖掘开源软件项目的issue的微过程模式,并用其改善对issue解决时间的预测,为开源软件项目的管理者和用户对issue解决模式从过程的角度带来了更深刻的理解。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的方法流程示意图。

图2为本发明所挖掘的issue解决两阶段微过程模式示意图。

图3为本发明所爬取的开源软件项目issue及其对应的标签示意图。

图4未本发明中的特征查询对应表示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

如图1-4所示,根据本发明提供的一种开源软件开发中issue解决时间的预测方法,包括:步骤1:爬取开源软件平台上的不同项目中的issue及其相关数据组;步骤2:清洗整理原始数据并制作事件日志;步骤3:应用过程挖掘技术挖掘issue解决过程的两阶段中的频繁模式;步骤4:利用issue动态和静态特征构建issue解决模式动态预测模型,基于模式信息构建动态issue解决时间预测模型。

优选地,所述步骤1包括:步骤1.1:通过开源软件平台上issue的标记进行筛选,爬取issue的基本信息、回复信息、事件信息以及作者信息等;所述爬取开源软件平台上的不同项目中的issue及其相关数据组包括:具体爬取故障维修类型的issue。

优选地,所述步骤2包括:步骤2.2:以爬取的issue事件信息为基础,加上开始和结束事件,依据开源平台的规则合并一些事件,最后以issue的id、事件名称以及事件发生的时间组合成一条记录,并由所组合的所有记录集合成事件日志。

优选地,所述步骤3包括:步骤3.1:将所制作出的事件日志作为输入文件,应用过程挖掘技术得到分析结果,根据最常见的issue解决路径将issue解决过程分为两个阶段,并在两阶段中应用过程挖掘技术分别挖掘频繁模式。共挖掘出第一阶段4种模式,第二阶段5种模式。

优选地,所述步骤4包括:步骤4.1:从源数据中挖掘与issue两阶段模式相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征;所挖掘出的特征可以分为issue特征、issue创建者特征和项目特征3类;步骤4.2:以在不同的时间戳上应用不同的机器学习方法训练不同的模型;步骤4.3:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;步骤4.4:从源数据中挖掘与issue解决时间相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征,同时加入issue解决模式动态预测模型所预测的各模式的概率信息;步骤4.5:在不同的时间戳上应用不同的机器学习方法训练不同的模型;步骤4.6:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;所述利用issue动态和静态特征构建issue解决模式动态预测模型包括特征选择、模型训练和模型评估;所述基于模式信息构建动态issue解决时间预测模型包括:特征选择、模型训练和模型评估。

根据本发明提供的一种开源软件开发中issue解决时间的预测系统,包括:模块1:爬取开源软件平台上的不同项目中的issue及其相关数据组;模块2:清洗整理原始数据并制作事件日志;模块3:应用过程挖掘技术挖掘issue解决过程的两阶段中的频繁模式;模块4:利用issue动态和静态特征构建issue解决模式动态预测模型,基于模式信息构建动态issue解决时间预测模型。

优选地,所述模块1包括:模块1.1:通过开源软件平台上issue的标记进行筛选,爬取issue的基本信息、回复信息、事件信息以及作者信息等;所述爬取开源软件平台上的不同项目中的issue及其相关数据组包括:具体爬取故障维修类型的issue。

优选地,模块2包括:模块2.2:以爬取的issue事件信息为基础,加上开始和结束事件,依据开源平台的规则合并一些事件,最后以issue的id、事件名称以及事件发生的时间组合成一条记录,并由所组合的所有记录集合成事件日志。

优选地,所述模块3包括:模块3.1:将所制作出的事件日志作为输入文件,应用过程挖掘技术得到分析结果,根据最常见的issue解决路径将issue解决过程分为两个阶段,并在两阶段中应用过程挖掘技术分别挖掘频繁模式。共挖掘出第一阶段4种模式,第二阶段5种模式。

优选地,所述模块4包括:模块4.1:从源数据中挖掘与issue两阶段模式相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征;所挖掘出的特征可以分为issue特征、issue创建者特征和项目特征3类;模块4.2:以在不同的时间戳上应用不同的机器学习方法训练不同的模型;模块4.3:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;模块4.4:从源数据中挖掘与issue解决时间相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征,同时加入issue解决模式动态预测模型所预测的各模式的概率信息;模块4.5:在不同的时间戳上应用不同的机器学习方法训练不同的模型;模块4.6:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;所述利用issue动态和静态特征构建issue解决模式动态预测模型包括特征选择、模型训练和模型评估;所述基于模式信息构建动态issue解决时间预测模型包括:特征选择、模型训练和模型评估。

具体地,在一个实施例中,一种基于微过程模式挖掘的开源软件开发中issue解决时间的预测方法,包括:

爬取开源软件平台上的不同项目中的issue及其相关数据:可通过github提供的公有api接口爬取开源项目的issue数据。具体爬取故障维修类型的issue,这可以通过开源软件平台上issue的标记进行筛选,本发明中所采集的具体对应标签如图3所示。爬取的内容包括issue的基本信息、回复信息、事件信息以及作者信息等。

清洗整理原始数据并制作事件日志:以爬取的issue事件信息为基础,加上‘开始’和‘结束’事件,依据开源平台的规则合并一些事件,最后以issue的id,事件名称,事件发生的时间组合成一条记录,并由所组合的所有记录集合成事件日志。

应用过程挖掘技术挖掘issue解决过程的两阶段中的频繁模式:将所制作出的事件日志作为输入文件,应用过程挖掘技术得到分析结果,根据最常见的issue解决路径将issue解决过程分为两个阶段。第一个阶段为issue识别阶段,从‘开始’到‘打标签’,开源项目开发者将对issue进行评估,判断其是否是一个bug还是误操作;第二个阶段为issue解决阶段,从‘打标签’到‘结束’,在这个阶段issue的修复方案被讨论和实施。在两阶段中分别应用过程挖掘的技术挖掘频繁模式,具体地,将所有比例超过5%的路径称为一个典型模式。共挖掘出第一阶段4种模式,第二阶段5种模式,所挖掘出的两阶段微过程模式如图2所示。

利用issue动态和静态特征构建issue解决模式动态预测模型包括特征选择、模型训练和模型评估。模式动态预测问题可以看成是一个多分类问题,输入issue在各动态阶段的特征值,输出该issue可能走向各模式的概率。在实验中比较了多种机器学习模型,最后选择了性能最优的随机森林模型。

特征选择:从源数据中挖掘与issue两阶段模式相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征。所挖掘出的特征可以分为issue特征、issue创建者特征和项目特征3类,所选取的特征参见图4。

模型训练:在不同的时间戳上可以选取某种机器学习方法(如随机森林模型)训练模型,例如在1,7,14,30,90和180天上预测issue的两阶段模式。而对于第一阶段,只预测那些还没有打标签的issue,对于第二阶段,只预测还没有结束的issue。

模型评估:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较。

基于模式信息构建动态issue解决时间预测模型包括特征选择、模型训练和模型评估。issue解决时间预测可以看作一个不同时间范围内的二分类问题,例如issue能否在7,14,30,90,180和365天内解决。同样地,在不同的时间点(1,7,14,30,90和180天)上分别对后面的时间范围进行预测,例如在30天预测issue能否在90,180和365天内解决。同样采用选定的机器学习模型如随机森林进行建模:

特征选择:从源数据中挖掘与issue解决时间相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征,同时加入上述的issue解决模式动态预测模型所预测的各模式的概率信息,所选取的特征参见图4。

模型训练:采用随机森林进行建模。在不同的时间戳上应用不同的机器学习方法训练不同的模型。同样地,对于每一个时间点,只预测那些仍未结束的issue,因此每个时间点的数据集大小有所不同。

模型评估:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较。加入模式信息后对于早期时间点上预测短时间内issue解决时间有帮助。

本发明首创性地挖掘开源软件项目的issue的微过程模式,并用其改善对issue解决时间的预测,为开源软件项目的管理者和用户对issue解决模式从过程的角度带来了更深刻的理解。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。


技术特征:

1.一种开源软件开发中issue解决时间的预测方法,其特征在于,包括:

步骤1:爬取开源软件平台上的不同项目中的issue数据组;

步骤2:清洗整理原始数据并制作事件日志;

步骤3:挖掘issue解决过程的两阶段中的频繁模式;

步骤4:利用issue动态和静态特征构建issue解决模式动态预测模型,基于模式信息构建动态issue解决时间预测模型;

步骤5:获取开源软件开发中issue解决时间的预测结果信息。

2.根据权利要求1所述的开源软件开发中issue解决时间的预测方法,其特征在于,所述步骤1包括:

步骤1.1:通过开源软件平台上issue的标记进行筛选,爬取issue的基本信息、回复信息、事件信息以及作者信息;

所述爬取开源软件平台上的不同项目中的issue数据组包括:爬取故障维修类型的issue。

3.根据权利要求1所述的开源软件开发中issue解决时间的预测方法,其特征在于,步骤2包括:

步骤2.2:以爬取的issue事件信息为基础,加上开始和结束事件,依据开源平台的规则合并事件,最后以issue的id、事件名称以及事件发生的时间组合成一条记录,并由所组合的记录集合成事件日志。

4.根据权利要求1所述的开源软件开发中issue解决时间的预测方法,其特征在于,所述步骤3包括:

步骤3.1:将所制作出的事件日志作为输入文件,应用过程挖掘技术得到分析结果,根据issue解决路径将issue解决过程分为两个阶段,并在两阶段中应用过程挖掘技术分别挖掘频繁模式;共挖掘出第一阶段4种模式,第二阶段5种模式。

5.根据权利要求1所述的开源软件开发中issue解决时间的预测方法,其特征在于,所述步骤4包括:

步骤4.1:从源数据中挖掘与issue两阶段模式相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征;所挖掘出的特征可以分为issue特征、issue创建者特征和项目特征3类;

步骤4.2:以在不同的时间戳上应用不同的机器学习方法训练不同的模型;

步骤4.3:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;

步骤4.4:从源数据中挖掘与issue解决时间相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征,同时加入issue解决模式动态预测模型所预测的各模式的概率信息;

步骤4.5:在不同的时间戳上应用不同的机器学习方法训练不同的模型;

步骤4.6:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;

所述利用issue动态和静态特征构建issue解决模式动态预测模型包括特征选择、模型训练和模型评估;

所述基于模式信息构建动态issue解决时间预测模型包括:特征选择、模型训练和模型评估。

6.一种开源软件开发中issue解决时间的预测系统,其特征在于,包括:

模块1:爬取开源软件平台上的不同项目中的issue数据组;

模块2:清洗整理原始数据并制作事件日志;

模块3:挖掘issue解决过程的两阶段中的频繁模式;

模块4:利用issue动态和静态特征构建issue解决模式动态预测模型,基于模式信息构建动态issue解决时间预测模型;

模块5:获取开源软件开发中issue解决时间的预测结果信息。

7.根据权利要求6所述的开源软件开发中issue解决时间的预测系统,其特征在于,所述模块1包括:

模块1.1:通过开源软件平台上issue的标记进行筛选,爬取issue的基本信息、回复信息、事件信息以及作者信息;

所述爬取开源软件平台上的不同项目中的issue数据组包括:爬取故障维修类型的issue。

8.根据权利要求6所述的开源软件开发中issue解决时间的预测系统,其特征在于,模块2包括:

模块2.2:以爬取的issue事件信息为基础,加上开始和结束事件,依据开源平台的规则合并事件,最后以issue的id、事件名称以及事件发生的时间组合成一条记录,并由所组合的记录集合成事件日志。

9.根据权利要求6所述的开源软件开发中issue解决时间的预测系统,其特征在于,所述模块3包括:

模块3.1:将所制作出的事件日志作为输入文件,应用过程挖掘技术得到分析结果,根据issue解决路径将issue解决过程分为两个阶段,并在两阶段中应用过程挖掘技术分别挖掘频繁模式;共挖掘出第一阶段4种模式,第二阶段5种模式。

10.根据权利要求6所述的开源软件开发中issue解决时间的预测系统,其特征在于,所述模块4包括:

模块4.1:从源数据中挖掘与issue两阶段模式相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征;所挖掘出的特征可以分为issue特征、issue创建者特征和项目特征3类;

模块4.2:以在不同的时间戳上应用不同的机器学习系统训练不同的模型;

模块4.3:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;

模块4.4:从源数据中挖掘与issue解决时间相关的静态特征,按日历习惯在不同的时间戳上挖掘与两阶段模式相关的动态特征,同时加入issue解决模式动态预测模型所预测的各模式的概率信息;

模块4.5:在不同的时间戳上应用不同的机器学习系统训练不同的模型;

模块4.6:应用微平均f1-score和宏平均f1-score对不同的分类器性能进行评估和比较;

所述利用issue动态和静态特征构建issue解决模式动态预测模型包括特征选择、模型训练和模型评估;

所述基于模式信息构建动态issue解决时间预测模型包括:特征选择、模型训练和模型评估。

技术总结
本发明提供了一种开源软件开发中Issue解决时间的预测方法及系统,包括:步骤1:爬取开源软件平台上的不同项目中的Issue数据组;步骤2:清洗整理原始数据并制作事件日志;步骤3:挖掘Issue解决过程的两阶段中的频繁模式;步骤4:利用Issue动态和静态特征构建Issue解决模式动态预测模型,基于模式信息构建动态Issue解决时间预测模型。本发明首创性地挖掘开源软件项目的Issue的微过程模式,并用其改善对Issue解决时间的预测,为开源软件项目的管理者和用户对Issue解决模式从过程的角度带来了更深刻的理解。

技术研发人员:曹健;王逸然;钱诗友
受保护的技术使用者:上海交通大学
技术研发日:2020.01.13
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-29117.html

最新回复(0)