面向多源软件开发数据的开发者画像研究

时间:2022-12-29 23:04:12 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


面向多源软件开发数据的开发者画像研究

摘要 用户画像是大数据时代实现精准服务的工具之一。开源网站和问答网站拥有庞大的用户群(开发者)和海量的数据,利用好开发者画像可以帮助我们更好地了解开发者,可以为以后的各种软件工程任務进行个性化推荐。文章探讨了软件工程领域开发者画像的研究现状,从开发者画像的定义、意义、构建方法3个方面作了详细的阐述。



关键词 开发者画像;个性化推荐;软件工程

1 研究现状

用户画像,是根据用户社会属性、生活习惯和消费行为等信息而抽象出来的一个标签化的用户模型,用户画像在各领域得到了广泛的应用。在电子商务领域,运营商通过对用户画像的建模,分析产品的潜在用户,针对特定群体用户进行营销,对消费者进行个性化推荐,比如淘宝、亚马孙等;在新浪微博等社交平台领域,对用户画像进行建模,Ma等提出了基于多数据源信息融合和信息推理的用户兴趣挖掘,如FacebookTwitter等进行用户兴趣挖掘。在软件工程中有各种类型的软件开发与维护任务,如软件开发、测试等等,各个开发者的技能、经验等方面各有不同,所以如何给开发者分配合理的任务,是软件开发和维护领域的一大难题。对开发者进行画像建模,可以解决这一难题。



目前,已有一些技术用来对开发者画像建模,如Annie等人从开发知识、组织信息和通信网络三个方面对开发者的画像建模,同时阐述了开发者画像的潜在应用,个性化推荐和推荐开发者,另外还介绍了开发者画像的维护和存储。然而,这些技术只能片面的挖掘出开发者的专业知识、在同一组织中的职位、软件开发过程中的角色、与其他开发者在同一个工程中的交互信息,画像存在单一性。面向多源软件开发数据融合的开发者画像建模方法克服了该方法的缺陷,可以充分全面地对软件开发者进行画像建模[1]



2 开发者画像

2.1 开发者画像的定义

开发者画像其实是开发者的特征的个性化反映,社交化开发平台GitHub 众多开源软件的社区之一,它不仅允许个人和组织创建、浏览代码库,而且还提供社区化软件开发的功能,包括允许用户关注其他用户,组织仓库的动态,跟踪仓库代码的改动、Bug 和评论等;Stack Overflow是针对专业程序员的问答网站,可以帮助开发者解决自己在软件开发技术学习或开发实践中遇到的困难。因此,本文针对GitHubStack Overflow两个流行网站,利用多源软件开发数据对开发者的画像进行建模,给出了开发者画像的定义:开发者的技能、活动、开发者与代码的关系、开发者与开发者之间的关系等标签化出来的开发者模型。






2.2 开发者画像的意义

在软件开发和维护领域,在遇到各种软件工程任务时,如修复bug,这时需要推荐哪个开发者去完成这个任务。推荐开发者修复bug,要综合考虑开发者的技能、活动以及开发者使用、编写过哪些API等方面,因此,我们需要对开发者的这些方面建模,这使得推荐最合理、最优化。本文以开发者为中心,结合多个软件开发数据源的开发者数据,提出一种面向多源软件开发数据融合的开发者画像建模的方法,不仅能推荐完成bug修复任务的开发者,还能帮助软件开发人员推荐个性化任务,并结合数据中的commitanswers等信息的主题词对开发者进行筛选,通过分析对比找出适合某个软件工程任务的开发者。



2.3 开发者画像构建方法

本文详细的把软件开发者在GitHub网站和Stack Overflow网站中的技能、活动、程序代码能力等画像进行剖析。我们可以将开发者画像分为以下三个步骤:基础数据采集,分析建模,画像呈现,开发者画像构建流程图具体如图1



1)基础数据采集。数据是构建开发者画像的核心依据,一切不建立在客观数据基础上的开发者画像都是虚假的。本文从Stack Overflow网站收集开发者的行为数据:提问问题、回答答案、对问题评论、对答案评论等,同时从GitHub网站收集开发者的行为数据:commitissue、评论等。



2)分析建模。对数据上文收集到的GitHub网站上开发者的行为数据和Stack Overflow网站上开发者的行为数据用自然语言处理方法进行预处理,然后使用LDA模型对commitanswersissue评论等信息进行主题词的提取,提取到的主题词作为开发者的技能标签,用聚类算法将开发者自动分类,聚在一类的作为开发者群体,对于开发者的活动,对开发者的行为数据处理后得到开发者之间的活动,通过他们之间的交互行为,从而挖掘出他们之间的关系,比如共同回答了某些问题,同时建立关系边,以及开发者与代码之间的关系,如开发者编写过、使用过哪些API



通过开发者之间的关系和开发者写过那些代码,再使用预测算法,预测哪些开发者跟他们是一个群体[2]



3)画像呈现。经过上述步骤,得到了开发者的画像,如下图2显示。

3 结束语

开发者画像的好坏直接反应在推荐结果,把握住开发者特征,并设计出针对开发者个性化推荐算法,提升开发者的满意度,开发者画像的意义在于了解开发者,猜测开发者的真实需求和潜在需求,挖掘潜在的开发者群体,为后期的软件工程任务推荐合适的开发者,也为开发者推荐适合的软件工程任务。



参考文献






[1] 牛温佳.用户网络行为画像:大数据中的用户网络行为画像分析与内容推荐应用[M]. 电子工业出版社,2016154-162.



[2] 谢新强,杨晓春,王斌,等.一种多特征融合的软件开发者推荐方法[J].软件学报,201829859-62.




本文来源:https://www.wddqw.com/doc/029b69dd16791711cc7931b765ce050877327505.html