论文部分内容阅读
随着互联网的发展和普及,软件众包已经成为一种新型的软件开发模式,它能够利用互联网的优势集中大众的力量进行软件开发,既可以提升效率,为发包方节省开支,也能满足很多程序员在家里开发并创造更多收入的愿望。但同时软件众包面临着新的问题,例如开发人员和软件众包任务的智能匹配问题、质量控制问题、人力资源浪费问题、开发人员激励问题等,这些问题严重制约着软件众包的发展。本文深入研究软件众包的开发人员和任务推荐问题,根据软件众包的特点探索众包推荐中的重要因素,从多个维度建立了软件众包中的任务模型和开发人员模型,提出了基于综合素质的开发人员推荐方法SIMSOFT和多层次互补递进的任务推荐方法SIMFIT,从而提高软件众包任务完成的质量。本文贡献包括:1)软件众包人员建模和任务建模。本文分析软件众包的特点,通过对软件众包平台数据的探索分析,发现影响软件众包推荐的重要因素。根据这些因素,从基本信息、能力、资源和描述四个维度建立了软件众包中的任务模型,从基本信息、服务范围、技能、保障和近期业绩五个维度建立了软件众包中的开发人员模型。其中信用是开发人员保障维度的核心属性,本文根据报酬相关性、时间相关性和失信惩罚三个原则,从开发人员的历史任务信息中自动计算出开发人员信用值。2)研究提出了基于综合素质的软件众包中开发人员推荐方法SIMSOFT。SIMSOFT针对特定开发任务,根据历史众包数据,对开发人员的任务胜任能力、任务与开发人员历史任务的相似度、以及开发人员软实力三大因素进行量化评估和综合考量,推荐合适的开发人员。其中任务相似度计算时,对Jaccard系数进行了适应性的改良,结合完成的质量,从软件类别、软件生命周期、能力和预算方面计算特定任务与开发人员完成的历史任务的相似度;开发人员软实力计算则从开发人员提供的保障和近期业绩方面进行。为了验证SIMSOFT的有效性,本文采用中国最大的众包平台猪八戒网的数据,基于数据分析与贪婪算法等对模型进行了调参,进行了对比实验。实验结果显示,SIMSOFT能够有效地进行开发人员推荐:10%-precision能达到80.92%,20%-precision能达到94.74%,要明显优于现有研究方法CBR。3)研究提出了多层次互补递进的软件众包中的任务推荐方法SIMFIT。SIMFIT针对特定的开发人员,根据历史众包数据,对开发人员与任务的匹配度、开发人员完成的历史任务相似度、开发人员最近邻对任务的兴趣三大因素进行评估和综合考量,推荐合适的任务。为了验证SIMFIT的有效性,本文采用猪八戒平台的数据,在训练集上运用贪婪算法来确定模型的参数,进行了对比实验。实验结果显示,SIMFIT能够有效地进行任务推荐,平均正确率、平均召回率、平均F值分别能达到0.4403、0.9833、0.6082,推荐效果明显好于普通众包任务推荐的方法CBAM。