CN111612098A - 协同开发社区中里程碑完成时间预测方法和装置 - Google Patents
协同开发社区中里程碑完成时间预测方法和装置 Download PDFInfo
- Publication number
- CN111612098A CN111612098A CN202010491578.7A CN202010491578A CN111612098A CN 111612098 A CN111612098 A CN 111612098A CN 202010491578 A CN202010491578 A CN 202010491578A CN 111612098 A CN111612098 A CN 111612098A
- Authority
- CN
- China
- Prior art keywords
- milestone
- project
- open source
- analysis data
- factors
- 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
Links
- 238000011161 development Methods 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004458 analytical method Methods 0.000 claims abstract description 114
- 238000005259 measurement Methods 0.000 claims abstract description 106
- 230000000694 effects Effects 0.000 claims abstract description 77
- 238000012706 support-vector machine Methods 0.000 claims abstract description 16
- 238000012216 screening Methods 0.000 claims description 15
- 238000012549 training Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 238000000540 analysis of variance Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013485 heteroscedasticity test Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06313—Resource planning in a project environment
Abstract
本申请涉及一种协同开发社区中里程碑完成时间预测方法和装置。所述方法包括:获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集;获取活跃开源项目对应的里程碑分析数据,根据里程碑分析数据构建里程碑分析数据库;提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素;以里程碑分析数据中的里程碑完成时间作为模型输出变量,多维度度量因素为输入变量,构建混合效应回归模型;根据混合效应回归模型的输出结果,确定多维度度量因素中的关键度量因素;根据关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测。采用本方法能够实现对开源项目的里程碑完成时间进行预测。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种协同开发社区中里程碑完成时间预测方法和装置。
背景技术
目前协同开发社区(如Github)吸引了来自世界各地的贡献者参与到项目开发,形成了大量的开发任务。当大量的开发任务出现时,贡献者很难判断自己提交的任务报告是否符合项目具体的开发规划,项目管理者也很难跟踪具体开发任务的开发进度,甚至有可能在任务规划过程中遗漏一些重要的开发任务。为了将开发任务与特定的项目目标、功能或时间段相关联,越来越多的项目管理者开始使用里程碑工具来管理和跟踪开发任务。在实际软件开发过程中,项目管理者可以新建里程碑计划并添加相关的开发任务,每个里程碑包含了项目概述、开发团队、预期截止时间、完成百分比、开发任务列表等信息。项目管理者借助里程碑工具可以完成不同类型的开发任务管理,包括在启动项目beta版之前管理需要修复的bug、管理需要审阅的代码合并、管理哪些与项目重构相关的需求创意等。
目前在类似GitHub这样的协同开发社区中,相关的预期截止时间信息主要依赖于项目管理者人工添加。但是,由于任务复杂度、开发经验、团队规模等差异,实际里程碑任务的完成时间参差不齐,加之缺乏相关自动化的完成时间预测方法,里程碑的预期截止时间与实际完成时间相距甚远,大量无用的预期截止时间不仅不能对开发任务的管理带来帮助,同时还会导致时间规划的混淆,阻碍关键开发任务的按时处理。此外,由于开发任务的增加、删除以及处理进度的变更,里程碑的实际完成时间是动态变化的,这给人工预测截止时间的准确性带来巨大挑战。
发明内容
基于此,有必要针对上述技术问题,提供一种能够解决协同开发社区中项目开发里程碑完成时间预测困难的协同开发社区中里程碑完成时间预测方法和装置。
一种协同开发社区中里程碑完成时间预测方法,所述方法包括:
获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集;
检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,若是,获取所述活跃开源项目对应的里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库;
在所述里程碑分析数据库中,提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素;
以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量,构建混合效应回归模型;
根据所述混合效应回归模型的输出结果,确定所述多维度度量因素中的关键度量因素;
根据所述关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测。
在其中一个实施例中,还包括:根据协同开发社区提供的API,获取基本数据信息;根据所述基本数据信息中的star指标、fork指标、delete指标以及creation time指标,筛选出流行开源项目;根据所述流行开源项目中Issue和Pull Request数目、代码贡献者数目以及开发活动,筛选出所述流行开源项目中的活跃开源项目;根据活跃开源项目构建活跃开源项目集。
在其中一个实施例中,还包括:利用协同开发社区提供的API检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,筛选出采用里程碑工具的里程碑开源项目;根据所述里程碑开源项目的项目名称,获取所述里程碑开源项目对应的项目基本信息;所述项目基本信息包括:项目名称、项目ID、编程语言、star数、fork数以及创建时间;根据所述项目ID,获取项目开发数据;根据所述项目ID,获取里程碑数据,所述里程碑数据包括:里程碑ID、完成状态、开放的开发任务数、关闭的开发任务数、创建时间、关闭时间、预期截止时间;根据所述里程碑ID,获取里程碑开发任务数据;根据所述项目基本信息、所述项目开发数据以及所述里程碑数据,得到里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库。
在其中一个实施例中,还包括:在所述里程碑分析数据库中,提取所述里程碑分析数据对应的项目维度度量因素;所述项目维度度量因素包括:编程语言、开发团队规模、开发网络规模、项目流行度、项目年龄以及代码任务;提取所述里程碑分析数据对应的里程碑维度度量因素;所述里程碑维度度量因素包括:里程碑经验、Issue工作量、Pull Request工作量、设置细节、预期完成时间以及开发任务复杂度;提取所述里程碑分析数据对应的任务维度度量因素;所述任务维度度量因素包括:当前开发任务规模、先前Issue解决时间、先前Pull Request解决时间以及开发任务处理活跃度;根据所述项目维度度量因素、所述里程碑维度度量因素以及所述任务维度度量因素,得到多维度度量因素。
在其中一个实施例中,还包括:以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量;并且,将所述里程碑分析数据中的编程语言作为随机效应变量,其他变量作为固定效应变量,构建混合效应回归模型;其中,所述混合效应回归模型利用多重共线性检验和方差膨胀系数对待预测开源项目集合的多重共线性进行检验,检查方差膨胀因子是否安全;根据混合效应回归模型输出得到混合效应回归模型的固定效应拟合度、混合效应拟合度、变量系数、标准误差、显著性水平的输出结果。
在其中一个实施例中,还包括:利用ANOVA方差分析对所述输出结果进行分析,得到混合效应回归模型的变量平方和、系数显著性水平等结果;根据所述系数显著性水平,筛选出有显著影响力的待定变量;根据所述待定变量的所述变量平方和,确定所述多维度度量因素中的关键度量因素。
在其中一个实施例中,还包括:从所述里程碑分析数据库中选择不同比例包含所述关键度量因素的里程碑分析数据作为训练样本;根据所述训练样本对预先设置的支持向量机进行训练,得到时间预测模型;根据所述时间预测模型对开源项目的里程碑完成时间进行预测。
一种协同开发社区中里程碑完成时间预测装置,所述装置包括:
里程碑数据获取模块,用于获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集;检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,若是,获取所述活跃开源项目对应的里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库;
混合效应回归模型建立模块,用于在所述里程碑分析数据库中,提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素;以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量,构建混合效应回归模型;
预测模块,用于根据所述混合效应回归模型的输出结果,确定所述多维度度量因素中的关键度量因素;根据所述关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集;
检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,若是,获取所述活跃开源项目对应的里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库;
在所述里程碑分析数据库中,提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素;
以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量,构建混合效应回归模型;
根据所述混合效应回归模型的输出结果,确定所述多维度度量因素中的关键度量因素;
根据所述关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集;
检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,若是,获取所述活跃开源项目对应的里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库;
在所述里程碑分析数据库中,提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素;
以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量,构建混合效应回归模型;
根据所述混合效应回归模型的输出结果,确定所述多维度度量因素中的关键度量因素;
根据所述关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测。
上述协同开发社区中里程碑完成时间预测方法、装置、计算机设备和存储介质,首先通过提取出活跃的活跃开源项目集,然后检测活跃开源项目集中的开源项目是否采用了里程碑工具,从而构建里程碑分析数据库,利于进一步分析,在分析时,提取里程碑分析数据中的多个维度的度量因素,从而构建混合效应回归模型,确定多维度度量因素中的关键度量因素,从而利用关键度量因素训练支持向量机,从而利用模型对开源项目的里程碑时间进行预测,本方法中,无需人为工作,并且通过对关键度量因素进行提取,可以保证结果的可信度。
附图说明
图1为一个实施例中协同开发社区中里程碑完成时间预测方法的流程示意图;
图2为一个实施例中协同开发社区中里程碑完成时间预测装置的结构框图;
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种协同开发社区中里程碑完成时间预测方法,包括以下步骤:
步骤102,获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集。
协同开发社区可以是GitHub社区,这里也可以指其他社区。
活跃状态的开源项目指的是近期内还有更新的开源项目,开源项目的状态可以是完成,或者开发中。
步骤104,检测活跃开源项目集中的活跃开源项目是否使用里程碑工具,若是,获取活跃开源项目对应的里程碑分析数据,根据里程碑分析数据构建里程碑分析数据库。
里程碑工具是一种软件开发的管理工具,里程碑工具可以对开源项目的开发任务、开发节点进行管理。
具体可以通过API查询的方式检测开源项目是否采用了里程碑工具。
步骤106,在里程碑分析数据库中,提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素。
多个维度度量因素指的是项目开发进行中影响开发速度的因素,例如:人员方面维度,可以是开发人员的数量,开发人员的质量等,项目维度,例如项目的规模等。采用何种度量因素这里不做限制,可以尽可能多的确定多维度度量因素,可以只筛选出部分度量因素作为多维度度量因素。
步骤108,以里程碑分析数据中的里程碑完成时间作为模型输出变量,多维度度量因素为输入变量,构建混合效应回归模型。
对于里程碑分析数据库中的数据,由于里程碑完成时间已经确定,可以将里程碑完成时间作为模型输出变量,然后多维度度量因素为输入变量,构建混合效应回归模型。
步骤110,根据混合效应回归模型的输出结果,确定多维度度量因素中的关键度量因素。
通过混合效应回归模型,可以确定多维度度量因素中各个度量因素的分析结果,例如:固定效应拟合度、混合效应拟合度、标准误差等。
步骤112,根据关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测。
上述协同开发社区中里程碑完成时间预测方法中,首先通过提取出活跃的活跃开源项目集,然后检测活跃开源项目集中的开源项目是否采用了里程碑工具,从而构建里程碑分析数据库,利于进一步分析,在分析时,提取里程碑分析数据中的多个维度的度量因素,从而构建混合效应回归模型,确定多维度度量因素中的关键度量因素,从而利用关键度量因素训练支持向量机,从而利用模型对开源项目的里程碑时间进行预测,本方法中,无需人为工作,并且通过对关键度量因素进行提取,可以保证结果的可信度。
在其中一个实施例中,构建活跃开源项目集的步骤包括:根据协同开发社区提供的API,获取基本数据信息;根据基本数据信息中的star指标、fork指标、delete指标以及creation time指标,筛选出流行开源项目;根据流行开源项目中Issue和Pull Request数目、代码贡献者数目以及开发活动,筛选出流行开源项目中的活跃开源项目;根据活跃开源项目构建活跃开源项目集。本实施例中,通过开源项目是否流行,Issue和Pull Request数目、代码贡献者数目以及开发活动等角度,来确定活跃开源项目,从而选择出的开源项目具有广泛的代表性。
具体的,协同开发社区可以是GitHub,API是GitHub提供的API。
在其中一个实施例中,构建里程碑分析数据库的步骤包括:利用协同开发社区提供的API检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,筛选出采用里程碑工具的里程碑开源项目;
根据所述里程碑开源项目的项目名称,获取里程碑开源项目对应的项目基本信息;项目基本信息包括:项目名称、项目ID、编程语言、star数、fork数以及创建时间;根据项目ID,获取项目开发数据;根据项目ID,获取里程碑数据,里程碑数据包括:里程碑ID、完成状态、开放的开发任务数、关闭的开发任务数、创建时间、关闭时间、预期截止时间;根据里程碑ID,获取里程碑开发任务数据;根据项目基本信息、项目开发数据以及里程碑数据,得到里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库。
具体的,项目开发数据包括commit的ID、commit的作者、提交者、提交时间等,里程碑开发任务数据包括:Issue或Pull Request的ID、发布者、处理状态、发布时间、结束时间、Label标签、里程碑标签、标题和描述、评论数等。
在另一个实施例中,还要检测出活跃开源项目集中的开源项目是否完成里程碑,具体可以对里程碑状态进行编码,编码0表示未完成,编码1表示完成,当检测到编码1时,表示开源项目的里程碑完成,当编码为0时表示开源项目的编码未完成,需要删除这部分未完成的数据。
在其中一个实施例中,提取多维度度量因素的步骤包括:在里程碑分析数据库中,提取里程碑分析数据对应的项目维度度量因素;项目维度度量因素包括:编程语言、开发团队规模、开发网络规模、项目流行度、项目年龄以及代码任务;提取里程碑分析数据对应的里程碑维度度量因素;里程碑维度度量因素包括:里程碑经验、Issue工作量、Pull Request工作量、设置细节、预期完成时间以及开发任务复杂度;提取里程碑分析数据对应的任务维度度量因素;任务维度度量因素包括:当前开发任务规模、先前Issue解决时间、先前PullRequest解决时间以及开发任务处理活跃度;根据项目维度度量因素、里程碑维度度量因素以及任务维度度量因素,得到多维度度量因素。
具体的,编程语言指的是编程代码的语言,若一个项目采用多种编程语言开发,则还选出使用代码量最多的编程语言作为项目维度度量因素中的编程语言;开发团队规模指的是计算项目的贡献者数目,即至少向代码库提交过一次commit的开发者数目;开发网络规模,计算项目的fork数目;项目流行度,计算项目的star数目;项目年龄,计算该项目在Github上的创建时间至今的时间间隔,以月为单位;代码任务,计算近三个月项目的新增commit数目。里程碑经验,计算截止X里程碑创建之前项目已创建的里程碑数目;Issue工作量,计算X里程碑包含的Issue数目;Pull Request工作量,计算X里程碑包含的PullRequest数目;设置细节,检查X里程碑是否设置预期截止时间,设置则编码为1否则编码为0;预期完成时间,即项目管理者预设的预期截止时间与里程碑创建时间的时间间隔,以天为单位;开发任务复杂度,计算X里程碑包含的Issue和Pull Request的平均文本描述长度;当前开发任务规模,计算里程碑X创建之前的项目未解决Issue和Pull Request数目;先前Issue解决时间,计算近三个月项目的平均Issue解决时间;先前Pull Request解决时间,计算近三个月项目的平均Pull Request解决时间;开发任务处理活跃度,计算近三个月项目Issue和Pull Request中开发者的平均评论数目。
在其中一个实施例中,构建混合效应回归模型的步骤包括:以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量;并且,将里程碑分析数据中的编程语言作为随机效应变量,其他变量作为固定效应变量,构建混合效应回归模型;其中,混合效应回归模型利用多重共线性检验和方差膨胀系数对待预测开源项目集合的多重共线性进行检验,检查方差膨胀因子是否安全;根据混合效应回归模型输出得到混合效应回归模型的固定效应拟合度、混合效应拟合度、变量系数、标准误差、显著性水平的输出结果。
本实施例中,其他变量指的是除编程语言之外的变量。另外,项目完成时间是根据项目创建时间和项目关闭时间的时间差确定的。
在一个具体的实施例中,对多维度度量因素中的非数值型因素进行数值编码,对数值型因素进行归一化预处理,消除不同数值规模带来的影响,同时在必要时对相关因素进行对数变化以稳定方差并降低异方差性。
在其中一个实施例中,确定关键度量因素的步骤包括:利用ANOVA方差分析对输出结果进行分析,得到混合效应回归模型的变量平方和、系数显著性水平等结果;根据系数显著性水平,筛选出有显著影响力的待定变量;根据待定变量的所述变量平方和,确定多维度度量因素中的关键度量因素。
在具体计算时,显著性系数小于0.05的变量,可以确定为有显著影响力的变量。根据变量平方和占比大于0.01的变量确定为关键度量因素。
在其中一个实施例中,进行时间预测的步骤包括:从里程碑分析数据库中选择不同比例包含所述关键度量因素的里程碑分析数据作为训练样本;根据训练样本对预先设置的支持向量机进行训练,得到时间预测模型;根据时间预测模型对开源项目的里程碑完成时间进行预测。
具体的,在进行模型训练时,可以设置训练样本的标签,例如:1天、3天、1周、2周、1个月、3个月、6个月、1年、超过1年,然后通过标签对训练样本进行标记,在利用时间预测模型预测时,根据模型输出的标签,可以确定开源项目的里程碑完成时间。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图2所示,提供了一种协同开发社区中里程碑完成时间预测装置,包括:里程碑数据获取模块202、混合效应回归模型建立模块204和预测模块206,其中:
里程碑数据获取模块202,用于获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集;检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,若是,获取所述活跃开源项目对应的里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库;
混合效应回归模型建立模块204,用于在所述里程碑分析数据库中,提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素;以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量,构建混合效应回归模型;
预测模块206,用于根据所述混合效应回归模型的输出结果,确定所述多维度度量因素中的关键度量因素;根据所述关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测。
在其中一个实施例中,里程碑数据获取模块202还用于:根据协同开发社区提供的API,获取基本数据信息;根据所述基本数据信息中的star指标、fork指标、delete指标以及creation time指标,筛选出流行开源项目;根据所述流行开源项目中Issue和PullRequest数目、代码贡献者数目以及开发活动,筛选出所述流行开源项目中的活跃开源项目;根据活跃开源项目构建活跃开源项目集。
在其中一个实施例中,里程碑数据获取模块202还用于利用协同开发社区提供的API检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,筛选出采用里程碑工具的里程碑开源项目;根据所述里程碑开源项目的项目名称,获取所述里程碑开源项目对应的项目基本信息;所述项目基本信息包括:项目名称、项目ID、编程语言、star数、fork数以及创建时间;根据所述项目ID,获取项目开发数据;根据所述项目ID,获取里程碑数据,所述里程碑数据包括:里程碑ID、完成状态、开放的开发任务数、关闭的开发任务数、创建时间、关闭时间、预期截止时间;根据所述里程碑ID,获取里程碑开发任务数据;根据所述项目基本信息、所述项目开发数据以及所述里程碑数据,得到里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库。
在其中一个实施例中,混合效应回归模型建立模块204还用于在所述里程碑分析数据库中,提取所述里程碑分析数据对应的项目维度度量因素;所述项目维度度量因素包括:编程语言、开发团队规模、开发网络规模、项目流行度、项目年龄以及代码任务;提取所述里程碑分析数据对应的里程碑维度度量因素;所述里程碑维度度量因素包括:里程碑经验、Issue工作量、Pull Request工作量、设置细节、预期完成时间以及开发任务复杂度;提取所述里程碑分析数据对应的任务维度度量因素;所述任务维度度量因素包括:当前开发任务规模、先前Issue解决时间、先前Pull Request解决时间以及开发任务处理活跃度;根据所述项目维度度量因素、所述里程碑维度度量因素以及所述任务维度度量因素,得到多维度度量因素。
在其中一个实施例中,混合效应回归模型建立模块204还用于以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量;并且,将所述里程碑分析数据中的编程语言作为随机效应变量,其他变量作为固定效应变量,构建混合效应回归模型;其中,所述混合效应回归模型利用多重共线性检验和方差膨胀系数对待预测开源项目集合的多重共线性进行检验,检查方差膨胀因子是否安全;根据混合效应回归模型输出得到混合效应回归模型的固定效应拟合度、混合效应拟合度、变量系数、标准误差、显著性水平的输出结果。
在其中一个实施例中,预测模块206还用于利用ANOVA方差分析对所述输出结果进行分析,得到混合效应回归模型的变量平方和、系数显著性水平等结果;根据所述系数显著性水平,筛选出有显著影响力的待定变量;根据所述待定变量的所述变量平方和,确定所述多维度度量因素中的关键度量因素。
在其中一个实施例中,预测模块206还用于从所述里程碑分析数据库中选择不同比例包含所述关键度量因素的里程碑分析数据作为训练样本;根据所述训练样本对预先设置的支持向量机进行训练,得到时间预测模型;根据所述时间预测模型对开源项目的里程碑完成时间进行预测。
关于协同开发社区中里程碑完成时间预测装置的具体限定可以参见上文中对于协同开发社区中里程碑完成时间预测方法的限定,在此不再赘述。上述协同开发社区中里程碑完成时间预测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种协同开发社区中里程碑完成时间预测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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所述的方法,其特征在于,所述获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集,包括:
根据协同开发社区提供的API,获取基本数据信息;
根据所述基本数据信息中的star指标、fork指标、delete指标以及creation time指标,筛选出流行开源项目;
根据所述流行开源项目中Issue和Pull Request数目、代码贡献者数目以及开发活动,筛选出所述流行开源项目中的活跃开源项目;
根据活跃开源项目构建活跃开源项目集。
3.根据权利要求1所述的方法,其特征在于,所述检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,若是,获取所述活跃开源项目对应的里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库,包括:
利用协同开发社区提供的API检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,筛选出采用里程碑工具的里程碑开源项目;
根据所述里程碑开源项目的项目名称,获取所述里程碑开源项目对应的项目基本信息;所述项目基本信息包括:项目名称、项目ID、编程语言、star数、fork数以及创建时间;
根据所述项目ID,获取项目开发数据;
根据所述项目ID,获取里程碑数据,所述里程碑数据包括:里程碑ID、完成状态、开放的开发任务数、关闭的开发任务数、创建时间、关闭时间、预期截止时间;
根据所述里程碑ID,获取里程碑开发任务数据;
根据所述项目基本信息、所述项目开发数据以及所述里程碑数据,得到里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库。
4.根据权利要求1至3任意一项所述的方法,其特征在于,在所述里程碑分析数据库中,提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素,包括:
在所述里程碑分析数据库中,提取所述里程碑分析数据对应的项目维度度量因素;所述项目维度度量因素包括:编程语言、开发团队规模、开发网络规模、项目流行度、项目年龄以及代码任务;
提取所述里程碑分析数据对应的里程碑维度度量因素;所述里程碑维度度量因素包括:里程碑经验、Issue工作量、PullRequest工作量、设置细节、预期完成时间以及开发任务复杂度;
提取所述里程碑分析数据对应的任务维度度量因素;所述任务维度度量因素包括:当前开发任务规模、先前Issue解决时间、先前Pull Request解决时间以及开发任务处理活跃度;
根据所述项目维度度量因素、所述里程碑维度度量因素以及所述任务维度度量因素,得到多维度度量因素。
5.根据权利要求1至3任意一项所述的方法,其特征在于,以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量,构建混合效应回归模型,包括:
以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量;
并且,将所述里程碑分析数据中的编程语言作为随机效应变量,其他变量作为固定效应变量,构建混合效应回归模型;
其中,所述混合效应回归模型利用多重共线性检验和方差膨胀系数对待预测开源项目集合的多重共线性进行检验,检查方差膨胀因子是否安全;根据混合效应回归模型输出得到混合效应回归模型的固定效应拟合度、混合效应拟合度、变量系数、标准误差、显著性水平的输出结果。
6.根据权利要求5所述的方法,其特征在于,根据所述混合效应回归模型的输出结果,确定所述多维度度量因素中的关键度量因素,包括:
利用ANOVA方差分析对所述输出结果进行分析,得到混合效应回归模型的变量平方和、系数显著性水平等结果;
根据所述系数显著性水平,筛选出有显著影响力的待定变量;
根据所述待定变量的所述变量平方和,确定所述多维度度量因素中的关键度量因素。
7.根据权利要求6所述的方法,其特征在于,根据所述关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测,包括:
从所述里程碑分析数据库中选择不同比例包含所述关键度量因素的里程碑分析数据作为训练样本;
根据所述训练样本对预先设置的支持向量机进行训练,得到时间预测模型;
根据所述时间预测模型对开源项目的里程碑完成时间进行预测。
8.一种协同开发社区中里程碑完成时间预测装置,其特征在于,所述装置包括:
里程碑数据获取模块,用于获取协同开发社区中处于活跃状态的开源项目,构建活跃开源项目集;检测所述活跃开源项目集中的活跃开源项目是否使用里程碑工具,若是,获取所述活跃开源项目对应的里程碑分析数据,根据所述里程碑分析数据构建里程碑分析数据库;
混合效应回归模型建立模块,用于在所述里程碑分析数据库中,提取各个里程碑分析数据对应的影响里程碑完成时间的多个维度的多维度度量因素;以所述里程碑分析数据中的里程碑完成时间作为模型输出变量,所述多维度度量因素为输入变量,构建混合效应回归模型;
预测模块,用于根据所述混合效应回归模型的输出结果,确定所述多维度度量因素中的关键度量因素;根据所述关键度量因素,利用预训练的支持向量机对开源项目的里程碑完成时间进行预测。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010491578.7A CN111612098B (zh) | 2020-06-02 | 2020-06-02 | 协同开发社区中里程碑完成时间预测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010491578.7A CN111612098B (zh) | 2020-06-02 | 2020-06-02 | 协同开发社区中里程碑完成时间预测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111612098A true CN111612098A (zh) | 2020-09-01 |
CN111612098B CN111612098B (zh) | 2024-01-05 |
Family
ID=72197334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010491578.7A Active CN111612098B (zh) | 2020-06-02 | 2020-06-02 | 协同开发社区中里程碑完成时间预测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111612098B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115600992A (zh) * | 2022-11-09 | 2023-01-13 | 江苏海纳宝川智能科技有限公司(Cn) | 一种基于预测算法的项目管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107644268A (zh) * | 2017-09-11 | 2018-01-30 | 浙江工业大学 | 一种基于多特征的开源软件项目孵化状态预测方法 |
CN109567954A (zh) * | 2017-09-28 | 2019-04-05 | 通用电气公司 | 图像引导程序的工作流程辅助系统及方法 |
-
2020
- 2020-06-02 CN CN202010491578.7A patent/CN111612098B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107644268A (zh) * | 2017-09-11 | 2018-01-30 | 浙江工业大学 | 一种基于多特征的开源软件项目孵化状态预测方法 |
CN109567954A (zh) * | 2017-09-28 | 2019-04-05 | 通用电气公司 | 图像引导程序的工作流程辅助系统及方法 |
Non-Patent Citations (1)
Title |
---|
YANG ZHANG,ET AL: "GitHub\'s milestone tool: A mixed‐methods analysis on its use" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115600992A (zh) * | 2022-11-09 | 2023-01-13 | 江苏海纳宝川智能科技有限公司(Cn) | 一种基于预测算法的项目管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111612098B (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ampatzoglou et al. | The effect of GoF design patterns on stability: a case study | |
Li et al. | Architectural technical debt identification based on architecture decisions and change scenarios | |
CA2707916C (en) | Intelligent timesheet assistance | |
Tosun et al. | Practical considerations in deploying statistical methods for defect prediction: A case study within the Turkish telecommunications industry | |
US9026984B2 (en) | Integrated design application system | |
US9514423B2 (en) | Test planning tool for software updates | |
Sharma et al. | A Comparison of software cost estimation methods: A Survey | |
Rodríguez et al. | An evaluation framework for comparative analysis of generalized stochastic Petri net simulation techniques | |
Engelhardt | Comparison of agile and traditional project management: Simulation of process models | |
CN113505895A (zh) | 一种机器学习引擎服务系统及模型训练方法和配置方法 | |
CN111612098B (zh) | 协同开发社区中里程碑完成时间预测方法和装置 | |
Soltanifar et al. | Predicting defectiveness of software patches | |
Rubasinghe et al. | Towards traceability management in continuous integration with SAT-Analyzer | |
CN114168565B (zh) | 业务规则模型的回溯测试方法、装置、系统及决策引擎 | |
Fagiar et al. | Simulation-based Framework for Construciton Delay Analysis | |
CN112597041A (zh) | 代码覆盖率的跨分支合并方法、系统、设备及存储介质 | |
Olugboyega et al. | A building information modelling-integrated model of construction project performance indicators | |
Sellami et al. | Guiding the functional change decisions in agile project: An empirical evaluation | |
Kavada et al. | Schedule quality assessment for nd models using industry foundation classes | |
CN113988712A (zh) | 一种持续运维流水效能评估方法、装置、设备及介质 | |
US20140316851A1 (en) | Predicting customer receptivity for commercial engagement | |
Ivanova et al. | DATA ANALYTICS FOR DEVOPS EFFECTIVЕNESS | |
Kazan et al. | Performance analysis of a software developed with and without design patterns: A case study | |
Wu | Application of Systems Engineering Process in Building ML-Enabled Systems | |
CN115345362A (zh) | 技术趋势预测方法、装置、计算机设备和存储介质 |
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 |