论文部分内容阅读
近几十年信息技术飞速发展并且被广泛地应用到各个行业。软件作为信息技术的关键组成部分一直驱动着社会创新,改善这人们的工作和日常生活。如今我们的生活和工作更是严重依赖各种各样的软件。软件和软件开发者成了社会创新的关键驱动力。因此研究软件开发者的行为及其与软件项目之间的关系十分必要。 现代软件工程提倡开源协作精神。成立于2008年4月的GitHub就是一个开源协同开发平台。GitHub提供丰富的社会化功能帮助开发者更好的与软件项目交互。大量软件开发者聚集于GitHub,因此GitHub也积累了大量开发者的行为数据以及开发者与开发者、开发者与软件项目之间的交互关系数据。 在本文中我们从人类动力学的角度研究了软件开发者的博客发表行为,并借助复杂网络的理论和工具研究了软件开发者与软件项目之间的关系,揭示了软件开发者的兴趣特性。 对软件开发者在GitHub平台的博客发表行为的人类动力学实证分析表明软件开发者的博客提交数目和提交时间间隔具有明显的胖尾分布特性。与其他在线平台相比,GitHub上发表博文因为更正式内容长度更长,因此提交数目分布更加同质而提交时间间隔更加异质。通过对比普通开发者和精英开发者的行为,我们发现普通开发者具有低记忆性和高阵发性而精英开发者具有低记忆性和低阵发性,表明精英分子对于提交博文的兴趣是一个长期的兴趣,且他们将提交博文作为自己日常常规工作来对待。 我们提出了多层二部网络的向量表示形式并将开发者与软件项目之间的多种关系建模为多层二部网络来分析其兴趣的广泛性。分析结果表明,watching层的开发者和软件项目的协同相似性都与度负相关,而在forking层开发者的协同相似性与度正相关,软件项目的协同相似性与度却没有明显的相关性。这表明软件开发者在使用GitHub提供的不同的社会化功能与软件项目建立联系的时候兴趣是有差异的。 更进一步,我们从软件开发者对于软件品质方面的兴趣来分析,提出了依赖中心性相似性指标,并基于该指标进行了实证分析。结果显示,开发者的近邻中心性与度负相关,而软件项目的近邻中心性在均值附近波动。表明开发者在GitHub上成长过程中由于可以主动选择项目所以变得越来越实用化,慢慢会更多的关注对自己实用的软件项目而不是一味的关注高流行度和高品质项目。而项目在发展的过程中因为只能被动选择,所以关注项目的高质量开发者和普通开发者会保持一个稳定的比例。对于watching层和forking层的开发者和项目,其依赖中心性相似性都与度负相关,表明度越大,在近邻品质方面的兴趣越广泛。