论文部分内容阅读
开源社区和开源软件发展迅速,越来越多的开发者参与到开源项目中,众多的开发者在一个具体项目中的表现行为和担任的角色是不同的,开发者的行为包括代码活动和非代码层面的社交化活动,他们的活动行为推动着项目的发展,一个项目的演化过程是由所有开发者的贡献累积推动的。通过对开发者的贡献特征进行研究,能够帮助研究人员发现开发者对项目的具体影响,对开发者的贡献组成研究,能够指导项目拥有者理解不同开发者的开发偏好,从而合理地进行人员配置。本文给出一个通用的面向Github开源社区数据研究方法,包括数据爬取与特征变量的抽取,将异构数据源合并整理到结构化数据库,并发现一种高准确合并同一真实身份但是不同提交身份信息的算法。通过引入贡献能力雷达图、贡献演化年轮图和平行坐标线性图等多种可视化挖掘技术,降低了多维变量挖掘研究中的复杂度,在对个体贡献的演化分析中总结出开源项目中四大类角色,并发现长期开发者跨版本贡献的特性。在已有的相关研究中,对开发者贡献指标进行深入挖掘和解释说明的研究很少,本文重点研究了开发者贡献评估所涉及的指标,研究开发过程中开发者的各种活动与贡献的关系,对度量指标进行了较为深入的分析和挖掘,最终从众多观测指标中选择出了3个比较显著的变量用于评估贡献量,这三个变量分别是开发者增加代码的行数、修复缺陷的数量和参与评论的次数,在研究过程也证实和发现了一些开发规律。本文利用软件仓库数据挖掘技术并结合多种可视化挖掘技术研究开源环境下开发者的贡献特性以及贡献演化规律。研究包括与贡献相关的度量指标间的相关性和重要性排序,并在度量指标的基础上按照版本分割开发者贡献,研究个体开发者的贡献演化过程,并最终通过逐步回归技术建立多元线性回归模型,进一步筛选贡献度量指标,最终对模型做了现实意义的解释,该模型适用在大型开源项目中对众多开发者的贡献评估。