社交编程网站的项目网络分析

优先出版计 算 机 应 用 研 究第32卷社交编程网站的项目网络分析吴泽群,刘 婧,李家豪(武汉大学 计算机学院 软件工程国家重点实验室,武汉430072)摘 要:社交编程给软件开发带来了一种新的开发

优先出版

计 算 机 应 用 研 究

第32卷

社交编程网站的项目网络分析

吴泽群,刘 婧,李家豪

(武汉大学 计算机学院 软件工程国家重点实验室,武汉430072)

摘 要:社交编程给软件开发带来了一种新的开发模式。社交编程网站,如GitHub ,使得开发人员在互不认识的情况下,能够合作开发某个项目。这种软件合作开发方式的转变,使得对社交编程网络的研究很有价值。现有的研究很少有利用社区结构分析社交编程网络。通过GitHub 网站提供的数据构建了项目网络,结合重叠社区发现的算法,对该网络进行研究。研究发现,a )项目间的合作多数是基于小团体的模式;b )社区重叠部分的项目有较高的影响力;c )大规模社区的编程语言的组成和整个网络语言组成存在差异。 关键词:软件开发;社交编程;项目网络;重叠社区 中图分类号:TP393

Project network analysis of social coding site

WU Ze-qun, LIU Jing, LI Jia-hao

(State Key Laboratory of Software Engineering, Computer School, Wuhan University, Wuhan 430072, China)

Abstract: Social coding brings a novel mode to software development. Social coding sites, such as GitHub, enable developers to conduct software development cooperatively even though they don’t know each other. This changing of software development makes the study of social coding network extremely valuable. Previous studies rarely analyzed the social coding network with community structure. This paper construct a project-project relationship network with data collected from GitHub and investgate the structure of the network by combining overlapping community discovery algorithm. It shows that: A) the cooperation of the project are mainly based on groupuscule model; B) Projects crossing multiple communities tend to be more influential; C)The kind of programming language and their distribution are different between the network and large-scale communities in it. Key Words: software development; social coding; project network; overlapping community

Madey 等人用社交网络的理论分析了开源软件的网络结构,他们发现项目规模、开发人员参与的项目数遵循幂律分布规律[3]。J. Xu等人发现不同规模的项目开发人员的组成并不相同,开发人员网络具有小世界和无标度的特性[4]。Martinez-Romo J等人使用社交网络的方法获取和分析开源项目开发过程中产生的信息,包括软件的版本、具有领导性质的工作人员等[5]。GaoYongqin 等人分别用静态和动态的方法对SourceForge.net 的社区结构进行了详尽的分析,研究了网络的结构和演化过程[6]。

上述研究大多采用网络的方法对社交编程进行分析,本文同样采用这一方法。现实世界中的很多实体都可以抽象为网络,如人际关系网[7],科学家合作网[8],蛋白质网络[9]等。通常用节点来表示个体,而用节点之间的连边表示个体之间的关系。近年来的研究表明,网络中蕴含着一定的社区结构:即同一社区内节点的连接较为稠密,而社区间的节点连接较为稀疏[10],对社区的研究有助于分析其中团体之间的关系动态、模式和功能,找到隐藏的关系和规律。

普通的社区发现方法中,节点只能唯一的隶属于某个社区,

0 引言

随着互联网的快速发展,人与人之间的合作不再受到地域的限制,来自不同地区甚至不同国家的人可以共同完成某个项目。这种趋势也为软件开发带来了一种新的方式,社交编程。社交编程网站如GitHub 和AltassianBitBucKet 为程序员提供了功能全面的工作平台,包括代码托管、版本控制、技术交流和交友等。

GitHub ,它使用Git 作为其分布式版本控制和源码管理系统。在GitHub 上,还有着较为全面的社交功能,开发人员之间可以互粉也可以单边关注,一个开发人员可以参与或者关注多个项目,每个项目也可以有多个开发成员。到目前为止,有超过三百万个项目在GitHub 上进行开发,这些开发过程中产生的真实的数据具有很高的价值。

近年来,对社交编程的研究有很多。Treude 等人研究了程序员是怎样在Stackoverflow 上进行技术交流的[1]。Ramasubbu 等人研究了分布式开发对于软件的产量和质量的影响[2]。

--------------------------------

基金项目:中央高校基本科研业务费专项资金项目(2042014kf1002)

作者简介:吴泽群(1991-),男,硕士研究生,主研方向:社交网络、数据挖掘(wuzequn@whu.edu.cn);刘婧(1979-),女,副教授,博导,主研方向:数据挖掘、软件工程;李家豪(1990-),男,硕士研究生,主研方向:数据挖掘、软件工程.

,

文章预览已结束 获取全文请访问 http://www.arocmag.com/article/02-2015-08-066.html

标签: