CN111932108B - 一种面向群体软件过程的开发人员推荐方法 - Google Patents

一种面向群体软件过程的开发人员推荐方法 Download PDF

Info

Publication number
CN111932108B
CN111932108B CN202010783176.4A CN202010783176A CN111932108B CN 111932108 B CN111932108 B CN 111932108B CN 202010783176 A CN202010783176 A CN 202010783176A CN 111932108 B CN111932108 B CN 111932108B
Authority
CN
China
Prior art keywords
developer
model
developers
competition
registration
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.)
Active
Application number
CN202010783176.4A
Other languages
English (en)
Other versions
CN111932108A (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.)
Hangzhou Innovation Research Institute of Beihang University
Original Assignee
Hangzhou Innovation Research Institute of Beihang University
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 Hangzhou Innovation Research Institute of Beihang University filed Critical Hangzhou Innovation Research Institute of Beihang University
Priority to CN202010783176.4A priority Critical patent/CN111932108B/zh
Publication of CN111932108A publication Critical patent/CN111932108A/zh
Application granted granted Critical
Publication of CN111932108B publication Critical patent/CN111932108B/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/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06398Performance of employee with respect to a job function
    • 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/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • 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/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • 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/10Office automation; Time management
    • G06Q10/105Human resources

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Educational Administration (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种面向群体软件过程的开发人员推荐方法,包括如下步骤:步骤1、收集开发人员的历史注册数据;步骤2、对开发人员的注册数据进行清洗,删除无效数据;步骤3、按照时间顺序,整理开发人员的注册序列;步骤4、针对开发人员注册序列进行隐马尔科夫模型HMM构建;步骤5、利用开发人员注册的HMM模型判断开发人员是否有意愿参与即将进行的比赛;步骤6、收集有意愿参与比赛的开发人员解决方案提交的历史数据;步骤7、对开发人员的提交数据进行清洗,删除无效数据;步骤8、收集获取软件开发比赛的难度信息和开发人员的能力水平信息;步骤9、利用项目反应理论IRT模型构建预测开发人员提交行为的模型;步骤10、判断开发人员是否有意愿提交软件开发比赛的解决方案,决定是否推荐人员。

Description

一种面向群体软件过程的开发人员推荐方法
技术领域
本发明涉及计算机群体软件工程领域,尤其涉及一种面向群体软件过程的开发人员推荐方法。
背景技术
群体软件开发模式,是创新性的应用众包开发方法于软件工程领域,新型的问题解决模式,是一个极具前景的研究领域。群体软件开发表现为:许多软件从业者通过互联网等开放平台,使用自己的经验和技术参与软件开发相关的任务。已知有效的代表性群体软件开发实践是在众包平台(如TopCoder)上开发的竞争性群体软件项目。群体软件开发方法的低成本、短时间、高效率特点,使其在面临当今软件系统越来越复杂的新形势中,显示出巨大的潜力。为了使群体软件开发模式的普遍化和流行化,充分发挥群体软件开发模式的潜力,需要对群体软件开发过程进行管理与优化,使得群体软件开发开发模式能够产出令人满意的高质量解决方案,同时也有助于指导群体软件项目管理人员高效解决开发过程中出现的问题。
当前很大部分研究的关注点都在群体软件开发系统上,包括群体软件开发模型的建立与派生,和为了使众包能够应用于各类软件开发应用领域的平台或过程的设计原则。他们的研究目标在于如何能够进行成功的群体软件开发,影响群体软件开发成功与否的因素有哪些,进行群体软件开发所需要遵循的规则和可以采用的模式等等。群体软件开发过程领域的已有研究大部分还是侧重于群体软件开发实践、群体竞赛基础模型、群体资源调度方法、群体软件开发平台设计等理论和技术问题的研究,而未有对群体软件开发过程的形式化模型、仿真、分析及优化等方面的研究。
在群体软件过程及相关技术方面,国内外研究人员已经在开展了一些研究工作。但是众包在软件开发上的应用还处在科学研究的初级阶段,还未有关于群体软件开发的文章被发表在软件工程领域的主要期刊中;群体软件开发过程的基本原理、核心原则和概念模型都没有被系统和深入地讨论和研究。群里软件工程领域有很多具体的众包在涉及软件开发过程各个阶段的应用的研究,但这些研究工作都是针对群体软件过程某个或者某些开发阶段而进行的,以具体的编程任务为研究对象,而并没有针对群体软件过程(涵盖所有开发阶段)整体的系统研究。
发明内容
为了克服群体软件过程中开发人员的提交序列过稀疏导致的现有预测技术性能下降的问题,提高推荐准确度,本发明以群体软件开发项目为研究对象,结合隐马尔科夫模型和项目反应理论设计并实现了一种面向群体软件过程的双层的开发人员推荐方法。
本发明的技术方案为:一种面向群体软件过程的开发人员推荐方法,具体包括如下步骤:
步骤1、收集开发人员的历史注册数据;
步骤2、对开发人员的注册数据进行清洗,删除无效数据;
步骤3、按照时间顺序,整理开发人员的注册序列;
步骤4、针对开发人员注册序列进行隐马尔科夫模型HMM构建;
步骤5、利用开发人员注册的HMM模型判断开发人员是否有意愿参与即将进行的比赛;如果“是”,则跳转到步骤6;如果“否”,则跳转到步骤11,不推荐该开发人员,结束;
步骤6、收集开发人员解决方案提交的历史数据;
步骤7、对开发人员的提交数据进行清洗,删除无效数据;
步骤8、收集获取软件开发比赛的难度信息和开发人员的能力水平信息;
步骤9、利用项目反应理论IRT模型构建预测开发人员提交行为的模型;
步骤10、判断开发人员是够有意愿提交软件开发比赛的解决方案,如果“是”,则跳转到步骤12——推荐该开发人员,算法结束;如果“否”,则跳转到步骤11——不推荐该开发人员,算法结束;
步骤11、不推荐相应的开发人员,结束;
步骤12、推荐该开发人员,结束。
进一步的,所述步骤4中,针对开发人员注册序列构建参赛预测模型HMM,具体如下:
针对每名开发人员,获取其感兴趣的所有类型的全部比赛,并将所有比赛不分类别的按照开始时间先后顺序进行排列,标记此开发人员参与注册过的比赛;注册人员预期自己有一定空闲时间,或者是对比赛感兴趣;开发人员参与注册比赛的行为是最契合开发人员当前自身状态的行为,根据隐马尔科夫方法,首先定义参赛开发人员的状态集合Q和观测集合V:
Q={非常空闲,空闲,一般,忙碌,非常忙碌},N=5 (1)
V={参加,缺席},M=2 (2)
然后通过Baum-Welch算法,分别针对目标开发人员的注册行为序列进行学习,开发人员的注册行为序列为:{参加,参加,…,参加,缺席,…}式样的观察状态的集合,通过Baum-Welch 算法,获得隐马尔科夫模型的三个重要参数部分,即初始状态矩阵,状态转移矩阵和观测概率矩阵。
进一步的,构建步骤描述如下:
步骤4.1、收集开发人员注册比赛的历史数据;
步骤4.2、针对开发人员注册数据进行筛选,删除无效数据;
步骤4.3、按照时间顺序,整理开发人员的注册序列;
步骤4.4、初始化隐马尔科夫模型参数:状态转移矩阵A,观测状态转移概率矩阵B,初始状态概率矩阵π;
步骤4.5、将开发人员比赛注册序列和初始参数带入模型,进行模型训练;
步骤4.6、训练模型直至收敛;
步骤4.7、输出模型收敛时参数A,B,π的值。
进一步的,通过面向开发人员参赛行为的隐马尔科夫模型,预测在即将到来的比赛中,某一开发人员是否会参加比赛,涉及到隐马尔科夫模型的解码问题,采用维特比算法解决解码问题,应用维特比算法进行解码操作后,将得到某一位开发人员的状态序列:{空闲,空闲,忙碌,非常忙碌,…,一般,非常空闲};由于已知此开发人员隐马尔科夫的时间序列模型,因此知道最后一个状态的下一个最大可能转移状态,并随之根据观测概率矩阵得到在此次比赛中该开发人员的参加或者缺席情况。
进一步的,步骤5包括:
步骤5.1、获取有效的开发人员注册行为序列;
步骤5.2、在注册行为序列中除去用于参赛预测测试的数据;
步骤5.3、根据隐马尔科夫模型训练流程针对剔除测试数据后的开发人员注册行为序列进行模型的重新训练;
步骤5.4、模型收敛,获取稳定状态时开发人员的注册行为模型以及参数A,B,π的值;
步骤5.5、根据开发人员注册行为的HMM模型和注册行为序列进行维特比算法初始化;
步骤5.6、根据维特比算法流程递推至收敛;
步骤5.7、输出开发人员的最佳状态序列;
步骤5.8、根据最终状态推测开发人员的下一状态;
步骤5.9、根据状态和观测矩阵得出开发人员参赛的预测值;
步骤5.10、提供用于测试的开发人员注册数据;
步骤5.11、结合开发人员注册行为的测试数据和开发人员参赛预测值,判断两者是否一致。
进一步的,利用项目反应理论IRT模型构建预测开发人员提交行为的模型,开发人员注册比赛后提交作品,其目标是确定开发人员的能力是否可以通过完成比赛的情况反应出来, 根据Rasch的项目反应理论模型:
P(θ)=1/(1+e^(-(θ-d))) (3)
P(θ)指能力为θ的个体正确回答难度为d的题目的概率;
具体如下:
步骤9.1、获取开发人员提交软件解决方案的历史数据;
步骤9.2、根据比赛类型,针对开发人员的作品提交历史数据进行筛选,删除无效数据;
步骤9.3、从属于拥有完整软件过程的软件项目中开发比赛中抽取其中的50%作为测试集,跳转到步骤9.5;
步骤9.4、建立表示比赛和开发人员作品提交一一对应的数据矩阵,跳转到步骤9.6;
步骤9.5、针对测试集中所包含的软件开发比赛,获取其对应的比赛难度值;
步骤9.6、将比赛难度值和比赛-开发人员提交作品矩阵的数据代入项目反应理论的 Rasch模型,进行参数向量的训练。
有益效果:
本发明关注于从开发人员的角度对群体软件过程进行优化,旨在开发一个群体软件开发人员推荐系统。本发明的开发人员推荐方法采用层叠形式的组合推荐,即先用一种推荐技术产生一粗糙的推荐结果,在此推荐结果的基础上利用第二种推荐技术进一步作出更精确的推荐;对应地,在本发明中指的是先采用基于隐马尔科夫模型来推荐可能注册比赛的开发人员,在该推荐结果的基础上采用项目反应理论推荐最有可能提交群体软件解决方案的开发人员。本发明推荐方法的双层设计能够避免由于群体软件项目开发人员提交序列过于稀疏导致预测性能下降的问题,提高推荐准确度;并且在一定程度上节省了计算空间和时间,减少了资源浪费;与单纯采用其中之一进行推荐的方式相比,本发明的双层推荐设计产出的感兴趣开发人员预测正确率更高。本发明实现了更精准的感兴趣开发人员的定位,能够优化群体软件开发项目的资源配置。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是面向群体软件过程的开发人员双层推荐系统架构;
图2开发人员参赛行为的HMM模型训练流程;
图3开发人员参赛行为的预测流程;
图4开发人员提交行为的项目反应理论IRT模型训练过程。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明提出一种面向群体软件过程的开发人员推荐方法,首先利用隐马尔科夫模型HMM 根据历史注册记录演算开发人员注册比赛的概率,生成有意愿参与比赛的开发成员;进而在潜在参与比赛的开发成员集合中利用项目反应理论IRT演算注册了比赛的开发人员最终能够提交软件解决方案的概率,从而为群体软件项目管理者推荐最有可能为比赛提交作品的开发成员。具体包括如下步骤:
步骤1、收集开发人员的历史注册数据;
步骤2、对开发人员的注册数据进行清洗,删除无效数据;
步骤3、按照时间顺序,整理开发人员的注册序列;
步骤4、针对开发人员注册序列进行隐马尔科夫模型HMM构建;
步骤5、利用开发人员注册的HMM模型判断开发人员是否有意愿参与即将进行的比赛。如果“是”,则跳转到步骤6。如果“否”,则跳转到步骤11,不推荐该开发人员,算法结束;
步骤6、收集开发人员解决方案提交的历史数据;
步骤7、对开发人员的提交数据进行清洗,删除无效数据;
步骤8、收集获取软件开发比赛的难度信息和开发人员的能力水平信息;
步骤9、利用项目反应理论IRT模型构建预测开发人员提交行为的模型;
步骤10、判断开发人员是够有意愿提交软件开发比赛的解决方案,如果“是”,则跳转到步骤12——推荐该开发人员,算法结束。如果“否”,则跳转到步骤11——不推荐该开发人员,算法结束。
步骤11、不推荐相应的开发人员,算法结束;
步骤12、推荐该开发人员,算法结束。
进一步的,所述步骤4中,针对开发人员注册序列构建参赛预测模型HMM,具体如下:
一般情况来说,开发人员可能对一种或多种比赛感兴趣,因此针对每名开发人员,获取其感兴趣的所有类型的全部比赛,并将所有比赛不分类别的按照开始时间先后顺序进行排列,标记此开发人员参与注册过的比赛。注册人员一般都预期自己有一定空闲时间,至少也是对比赛感兴趣。开发人员参与注册比赛的行为是最契合开发人员当前自身状态的行为,忙碌时很难留出空余时间来进行比赛作品制作,因此根据隐马尔科夫方法,首先定义参赛开发人员的状态集合Q(非常空闲,空闲,一般,忙碌,非常忙碌)和观测集合V(参加,缺席):
Q={非常空闲,空闲,一般,忙碌,非常忙碌},N=5 (1)
V={参加,缺席},M=2 (2)
然后通过Baum-Welch算法,分别针对目标开发人员的注册行为序列进行学习,开发人员的注册行为序列为,类似{参加,参加,…,参加,缺席,…}式样的观察状态的集合,通过 Baum-Welch算法,可以获得隐马尔科夫模型的三个重要参数部分,即初始状态矩阵,状态转移矩阵和观测概率矩阵,面向开发人员注册行为的隐马尔科夫模型的建模过程如图2。马尔可夫过程是由初始状态向量π开始,通过状态转移矩阵A生成状态序列,最后由观测概率矩阵B生成观测序列的过程,隐马尔可夫模型记为λ=(A,B,π)。
根据图2的流程框,对应的,开发人员参赛行为的隐马尔科夫模型HMM训练的方法的步骤描述如下:
步骤1、收集开发人员注册比赛的历史数据;
步骤2、针对开发人员注册数据进行筛选,删除无效数据;
步骤3、按照时间顺序,整理开发人员的注册序列;
步骤4、初始化隐马尔科夫模型参数:状态转移矩阵A,观测状态转移概率矩阵B,初始状态概率矩阵π;
步骤5、将开发人员比赛注册序列和初始参数带入模型,进行模型训练;
步骤6、训练模型直至收敛;
步骤7、输出模型收敛时参数A,B,π的值。
所述步骤5具体包括:开发人员参赛(比赛注册)预测
通过面向开发人员参赛行为的隐马尔科夫模型,预测在即将到来的比赛中,某一开发人员是否会参加比赛,涉及到隐马尔科夫模型的解码问题。解码问题简单的可应用基于前向- 后向算法的近似算法,算法过程简单,但是却不能保证预测的状态序列在整体角度是最优解,而维特比算法可以将隐马尔科夫模型的状态序列作为一个整体来考虑,避免近似算法的问题,因此本发明采用维特比算法解决解码问题。应用维特比算法进行解码操作后,将得到某一位开发人员的状态序列,如下:{空闲,空闲,忙碌,非常忙碌,…,一般,非常空闲}。由于已知此开发人员隐马尔科夫的时间序列模型,可以知道最后一个状态的下一个最大可能转移状态,并随之根据观测概率矩阵得到在此次比赛中该开发人员的参加或者缺席情况,流程如图3所示:
步骤1、从历史群体软件开发比赛中获取有效的开发人员注册行为序列;
步骤2、将注册行为序列数据分成两部分,一部分用于模型训练,一部分用于模型测试。首先在整体注册行为序列中除去用于参赛预测测试的数据,剩余的注册行为序列数据进入下一步骤用于模型训练;
步骤3、根据隐马尔科夫模型训练流程针对剔除测试数据后的开发人员注册行为序列进行模型的重新训练;
步骤4、当开发人员注册行为隐马尔科夫模型收敛时,获取稳定状态时开发人员的注册行为模型以及参数状态转移概率矩阵A,观测状态概率矩阵B,初始状态概率矩阵π的值;
步骤5、根据开发人员注册行为的HMM模型和注册行为序列进行维特比算法初始化;
步骤6、根据维特比算法流程递推至收敛;
步骤7、输出开发人员的最佳状态序列,如:{空闲,空闲,忙碌,非常忙碌,…,一般,非常空闲};
步骤8、根据最终状态推测开发人员的下一状态;
步骤9、根据状态和观测矩阵得出开发人员参赛行为的预测值;
步骤10、提供用于测试的开发人员注册数据;
步骤11、结合开发人员注册行为的测试数据和开发人员参赛预测值,判断两者是否一致。
进一步的,所述步骤9中,利用项目反应理论IRT模型构建预测开发人员提交行为的模型,具体如下:
基于项目反映理论IRT的开发人员提交预测模型
开发人员注册比赛后提交作品,类似于学生接受考试,并答对考试题的过程,在分析考试成绩领域,项目反应理论是一种常用的分析模型,其目标是来确定被测试者能力是否可以通过测试题反应出来。
项目反映理论的模型是基于Logistic回归的一种二分类模型,应用至本研究中,目标更改为确定开发人员的能力是否可以通过完成比赛的情况反应出来。根据Rasch的项目反应理论模型:
P(θ)=1/(1+e^(-(θ-d))) (3)
P(θ)指的是能力为θ的个体正确回答难度为d的题目的概率。作为一种潜在特质模型,Rasch 模型通过个体在题目上的表现(通常表现为原始分数)来测量不可直接观察的、潜在的变量。根据Rasch模型原理,特定的个体对特定的题目做出特定反应的概率可以用个体能力与该题目难度的一个简单函数来表示。
Rasch的项目反应理论模型训练过程和测试集提取如图4所示。
步骤1、获取开发人员提交软件解决方案的历史数据;
步骤2、根据比赛类型,针对开发人员的作品提交历史数据进行筛选,删除无效数据;
步骤3、从属于拥有完整软件过程的软件项目的开发比赛中抽取其中的50%作为测试集,跳转到步骤5;
步骤4、建立表示比赛和开发人员作品提交一一对应的数据矩阵,跳转到步骤6;
步骤5、针对测试集中所包含的软件开发比赛,获取其对应的比赛难度值;
步骤6、将比赛难度值和比赛-开发人员提交作品矩阵的数据代入项目反应理论的Rasch 模型,进行参数向量的训练。
训练每一位开发人员的参赛模型需要大量的比赛数据,仅仅是完整过程项目中的比赛不足以满足要求;此外,相比于基于隐马尔科夫的开发人员推荐模型,项目反应理论不存在时序问题,因此将不同比赛类型分类讨论,每个开发人员在不同的比赛类别(如果其对这种类别感兴趣)有独立的参赛模型。
首先,收集某一类型下的所有比赛,按照时间顺序进行排列。开发人员曾经提交作品的比赛,开发人员提交过的比赛标记为“1”,注册而未提交的标记为“0”,未注册过的为空值。然后,根据不同类别比赛的比赛数量和参赛人员提交作品平均数量,对比赛和参赛者进行筛选。之后,根据在不同类别中,提取出包含在完整过程的目标项目中的比赛,随机选取50%作为模型测试集,其他50%保存在模型中参与训练过程。在R语言中包含众多的矩阵训练模型,选取MIRT包训练模型,因为其允许有空值的存在,符合本发明所用的数据表现:参赛者不会注册所有的比赛。最终会得到每一位参赛者针对某一类型比赛的基于项目反映理论的作品提交模型。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (6)

1.一种面向群体软件过程的开发人员推荐方法,其特征在于,具体包括如下步骤:
步骤1、收集开发人员的历史注册数据;
步骤2、对开发人员的注册数据进行清洗,删除无效数据;
步骤3、按照时间顺序,整理开发人员的注册序列;
步骤4、针对开发人员注册序列进行隐马尔科夫模型HMM构建;
步骤5、利用开发人员注册的HMM模型判断开发人员是否有意愿参与即将进行的比赛;如果“是”,则跳转到步骤6;如果“否”,则跳转到步骤11,不推荐该开发人员,结束;
步骤6、收集开发人员解决方案提交的历史数据;
步骤7、对开发人员的提交数据进行清洗,删除无效数据;
步骤8、收集获取群体软件开发比赛的难度信息和开发人员的能力水平信息;
步骤9、利用项目反应理论IRT模型构建预测开发人员提交行为的模型;
步骤10、判断开发人员是够有意愿提交软件开发比赛的解决方案,如果“是”,则跳转到步骤12——推荐该开发人员,算法结束;如果“否”,则跳转到步骤11——不推荐该开发人员,算法结束;
步骤11、不推荐相应的开发人员,结束;
步骤12、推荐该开发人员,结束。
2.根据权利要求1所述的一种面向群体软件过程的开发人员推荐方法,其特征在于,所述步骤4中,针对开发人员注册序列构建参赛预测模型HMM,具体如下:
针对每名开发人员,获取其感兴趣的所有类型的全部比赛,并将所有比赛不分类别的按照开始时间先后顺序进行排列,标记此开发人员参与注册过的比赛;注册人员预期自己有一定空闲时间,或者是对比赛感兴趣;开发人员参与注册比赛的行为是最契合开发人员当前自身状态的行为,根据隐马尔科夫方法,首先定义参赛开发人员的状态集合Q和观测集合V:
Q={非常空闲,空闲,一般,忙碌,非常忙碌},N=5 (1)
V={参加,缺席},M=2 (2)
然后通过Baum-Welch算法,分别针对目标开发人员的注册行为序列进行学习,开发人员的注册行为序列为:{参加,参加,…,参加,缺席,…}式样的观察状态的集合,通过Baum-Welch算法,获得隐马尔科夫模型的三个重要参数部分,即初始状态矩阵,状态转移矩阵和观测概率矩阵。
3.根据权利要求2所述的一种面向群体软件过程的开发人员推荐方法,其特征在于,针对开发人员注册序列构建参赛预测模型HMM,其构建步骤描述如下:
步骤4.1、收集开发人员注册比赛的历史数据;
步骤4.2、针对开发人员注册数据进行筛选,删除无效数据;
步骤4.3、按照时间顺序,整理开发人员的注册序列;
步骤4.4、初始化隐马尔科夫模型参数:状态转移矩阵A,观测状态转移概率矩阵B,初始状态概率矩阵π;
步骤4.5、将开发人员比赛注册序列和初始参数带入模型,进行模型训练;
步骤4.6、训练模型直至收敛;
步骤4.7、输出模型收敛时参数A,B,π的值。
4.根据权利要求1所述的一种面向群体软件过程的开发人员推荐方法,其特征在于,所述步骤5具体包括:
通过面向开发人员参赛行为的隐马尔科夫模型,预测在即将到来的比赛中,某一开发人员是否会参加比赛,涉及到隐马尔科夫模型的解码问题,采用维特比算法解决解码问题,应用维特比算法进行解码操作后,将得到某一位开发人员的状态序列:{空闲,空闲,忙碌,非常忙碌,…,一般,非常空闲};由于已知此开发人员隐马尔科夫的时间序列模型,因此知道最后一个状态的下一个最大可能转移状态,并随之根据观测概率矩阵得到在此次比赛中该开发人员的参加或者缺席情况。
5.根据权利要求4所述的一种面向群体软件过程的开发人员推荐方法,其特征在于,预测过程具体包括:
步骤5.1、获取有效的开发人员注册行为序列;
步骤5.2、在注册行为序列中除去用于参赛预测测试的数据;
步骤5.3、根据隐马尔科夫模型训练流程针对剔除测试数据后的开发人员注册行为序列进行模型的重新训练;
步骤5.4、模型收敛,获取稳定状态时开发人员的注册行为模型以及参数A,B,π的值;
步骤5.5、根据开发人员注册行为的HMM模型和注册行为序列进行维特比算法初始化;
步骤5.6、根据维特比算法流程递推至收敛;
步骤5.7、输出开发人员的最佳状态序列;
步骤5.8、根据最终状态推测开发人员的下一状态;
步骤5.9、根据状态和观测矩阵得出开发人员参赛的预测值;
步骤5.10、提供用于测试的开发人员注册数据;
步骤5.11、结合开发人员注册行为的测试数据和开发人员参赛预测值,判断两者是否一致。
6.根据权利要求1所述的一种面向群体软件过程的开发人员推荐方法,其特征在于,所述步骤9中,利用项目反应理论IRT模型构建预测开发人员提交行为的模型,开发人员注册比赛后提交作品,其目标是确定开发人员的能力是否可以通过完成比赛的情况反应出来,根据Rasch的项目反应理论模型:
P(θ)=1/(1+e^(-(θ-d))) (3)
P(θ)指能力为θ的个体正确回答难度为d的题目的概率;
具体如下:
步骤9.1、获取开发人员提交软件解决方案的历史数据;
步骤9.2、根据比赛类型,针对开发人员的作品提交历史数据进行筛选,删除无效数据;
步骤9.3、从属于拥有完整软件过程的软件项目中开发比赛中抽取其中的50%作为测试集,跳转到步骤9.5;
步骤9.4、建立表示比赛和开发人员作品提交一一对应的数据矩阵,跳转到步骤9.6;
步骤9.5、针对测试集中所包含的软件开发比赛,获取其对应的比赛难度值;
步骤9.6、将比赛难度值和比赛-开发人员提交作品矩阵的数据代入项目反应理论的Rasch模型,进行参数向量的训练。
CN202010783176.4A 2020-08-06 2020-08-06 一种面向群体软件过程的开发人员推荐方法 Active CN111932108B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010783176.4A CN111932108B (zh) 2020-08-06 2020-08-06 一种面向群体软件过程的开发人员推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010783176.4A CN111932108B (zh) 2020-08-06 2020-08-06 一种面向群体软件过程的开发人员推荐方法

Publications (2)

Publication Number Publication Date
CN111932108A CN111932108A (zh) 2020-11-13
CN111932108B true CN111932108B (zh) 2022-07-19

Family

ID=73307071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010783176.4A Active CN111932108B (zh) 2020-08-06 2020-08-06 一种面向群体软件过程的开发人员推荐方法

Country Status (1)

Country Link
CN (1) CN111932108B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107103419A (zh) * 2017-04-20 2017-08-29 北京航空航天大学 一种群体软件开发过程仿真系统及方法
CN107767058A (zh) * 2017-10-26 2018-03-06 北京航空航天大学 一种众包软件开发者推荐方法
CN108647216A (zh) * 2017-03-16 2018-10-12 上海交通大学 基于开发人员社交网络的软件众包任务推荐系统及方法
CN108804319A (zh) * 2018-05-29 2018-11-13 西北工业大学 一种改进Top-k众包测试平台任务的推荐方法
CN108830478A (zh) * 2018-06-12 2018-11-16 北京航空航天大学 一种面向众包任务处理的团队推荐方法
CN109032591A (zh) * 2018-06-21 2018-12-18 北京航空航天大学 一种基于神经网络的众包软件开发者推荐方法
CN110020125A (zh) * 2017-10-25 2019-07-16 辽宁轨道交通职业学院 一种基于hmm模型的项目化资源推荐方法
CN110020121A (zh) * 2017-10-16 2019-07-16 上海交通大学 基于迁移学习的软件众包项目推荐方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2544324A1 (en) * 2005-06-10 2006-12-10 Unicru, Inc. Employee selection via adaptive assessment
US20150081363A1 (en) * 2013-06-07 2015-03-19 TechCrowd Services, Inc. Group-Oriented Software Development

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647216A (zh) * 2017-03-16 2018-10-12 上海交通大学 基于开发人员社交网络的软件众包任务推荐系统及方法
CN107103419A (zh) * 2017-04-20 2017-08-29 北京航空航天大学 一种群体软件开发过程仿真系统及方法
CN110020121A (zh) * 2017-10-16 2019-07-16 上海交通大学 基于迁移学习的软件众包项目推荐方法及系统
CN110020125A (zh) * 2017-10-25 2019-07-16 辽宁轨道交通职业学院 一种基于hmm模型的项目化资源推荐方法
CN107767058A (zh) * 2017-10-26 2018-03-06 北京航空航天大学 一种众包软件开发者推荐方法
CN108804319A (zh) * 2018-05-29 2018-11-13 西北工业大学 一种改进Top-k众包测试平台任务的推荐方法
CN108830478A (zh) * 2018-06-12 2018-11-16 北京航空航天大学 一种面向众包任务处理的团队推荐方法
CN109032591A (zh) * 2018-06-21 2018-12-18 北京航空航天大学 一种基于神经网络的众包软件开发者推荐方法

Also Published As

Publication number Publication date
CN111932108A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
Liu et al. Automated feature selection: A reinforcement learning perspective
Badiru et al. Fuzzy engineering expert systems with neural network applications
CN108648000A (zh) 对用户留存生命周期进行评估的方法及装置、电子设备
Burggräf et al. Performance assessment methodology for AI-supported decision-making in production management
Melnikov et al. Multi-heuristic and game approaches in search problems of the graph theory
Villagrá-Arnedo et al. Time-dependent performance prediction system for early insight in learning trends
Hughes et al. Scalable adaptation of state complexity for nonparametric hidden Markov models
Thawonmas et al. Artificial general intelligence in games: Where play meets design and user experience
Mridha et al. Introducing collaboration in competitive crowdsourcing markets
Harman et al. How to use a multicriteria comparison procedure to improve modeling competitions: A comment on Erev et al.(2017).
Menon et al. Beyond related experience: Upstream vs. downstream experience in innovation contest platforms with interdependent problem domains
Peng et al. Deep learning-based recommendation method for top-K tasks in software crowdsourcing systems.
Chapela-Campa et al. Modeling extraneous activity delays in business process simulation
Tsouros et al. Learning to learn in interactive constraint acquisition
CN111932108B (zh) 一种面向群体软件过程的开发人员推荐方法
GB2420886A (en) Scoring mechanism for automatically generated test programs
Koseler et al. Realization of a Machine Learning Domain Specific Modeling Language: A Baseball Analytics Case Study.
Ciaburro Keras reinforcement learning projects: 9 projects exploring popular reinforcement learning techniques to build self-learning agents
Escalante et al. NeurIPS 2019 competition and demonstration track: Revised selected papers
Liu et al. A Policy-Graph Approach to Explain Reinforcement Learning Agents: A Novel Policy-Graph Approach with Natural Language and Counterfactual Abstractions for Explaining Reinforcement Learning Agents
Carlsson et al. Alphazero to alpha hero: A pre-study on additional tree sampling within self-play reinforcement learning
Belyaev Mathematical model of the player control in soccer simulation
Carmen Data analysis of short-term and long-term online activities in LMS
Zhang et al. Using Problem Similarity-and Order-based Weighting to Model Learner Performance in Introductory Computer Science Problems
Grand et al. Incramlsi: Incremental learning of accurate planning domains from partial and noisy observations

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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20201113

Assignee: Hangzhou Shangjie Cloud Service Technology Co.,Ltd.

Assignor: BUAA HANGZHOU INNOVATION INSTITUTE

Contract record no.: X2024980001553

Denomination of invention: A Developer Recommendation Method for Group oriented Software Processes

Granted publication date: 20220719

License type: Common License

Record date: 20240126

EE01 Entry into force of recordation of patent licensing contract