开源软件中开发者专长的表示
软件工程
2021-02-03 v3 机器学习
摘要
背景:准确表示开发者专长一直是一个重要的研究问题。尽管已有若干研究提出了在单个项目内表示专长的新方法,这些方法难以在生态系统层面应用。然而,随着软件开发从单体转向模块化,当项目试图寻找新维护者并物色具备相关技能的开发者时,在整体开源软件(OSS)开发背景下表示开发者专长的方法便成为必要。目的:我们旨在通过提出并构建技能空间(Skill Space)来填补这一知识空白,其中每个 API、开发者和项目均被表示,并假定该空间的拓扑结构应反映开发者所知(以及项目所需)。方法:我们利用 World of Code 基础设施提取开源开发者所更改文件中的完整 API 集合,并基于该数据采用 Doc2Vec 嵌入对 API、开发者和项目进行向量表示。随后,我们通过预测开发者将使用/加入哪些新 API/项目,以及其拉取请求是否被接受,来评估这些嵌入是否反映了假定的技能空间拓扑。我们还检验了开发者在技能空间中的表示与其自报的 API 专长是否一致。结果:我们的结果表明,技能空间中提出的嵌入似乎满足假定的拓扑结构,我们希望此类表示有助于构建信号,以提升大型开源生态系统的信任度(与效率),并可能有助于研究其他与开发者熟练度及学习相关的现象。
引用
@article{arxiv.2005.10176,
title = {Representation of Developer Expertise in Open Source Software},
author = {Tapajit Dey and Andrey Karnauch and Audris Mockus},
journal= {arXiv preprint arXiv:2005.10176},
year = {2021}
}
备注
Accepted in ICSE 2021 Main Technical Track