您好, 访客   登录/注册

基于开源软件的开发者和项目网络分析

来源:用户上传      作者:

  摘   要:文章讨论了复杂的网络概念以及利用开源软件(OSS)数据构建的社会网络,对Berlios,GNU和SourceForge这3种不同开放源码软件的社会网络进行了初探。很多研究者已经在此类网络快照或合并视图上进行了大量研究,尤其是SourceForge,归结于其社区规模的庞大。SourceForge网络因具有在不同时间点的度分布、连通性、中心性和无标度等特性,被进行过大量的研究。然而,很少有人研究网络生长,即如何建立网络,尤其是指标是如何随时间演变的。
  关键词:复杂网络;开发者网络;项目网络;网络分析
  1    CVS数据
  开源软件(Open Source Software,OSS)网络定义:开发者和项目是网络中的节点。如果一个开发者在一个项目上工作,那么在开发者和项目之间就存在一条边,被分成开发者和项目两部分。同性质节点之间是没有边的,是一个二分网络,可以轻易地转换为开发者网络或项目网络。可以从开源社区的开发源代码配置管理工具(Concurrent Version System,CVS)集中提取开发者、小组和时间戳等相关信息;时间戳是开发者最早和最新提交到特定项目的时间。有了这些信息,构建开发者网络时,虽然两个开发者在同一个项目上工作,但只有在同一时间且同一项目上工作时才能建立连接,即其时间窗口重叠。
  2    相关研究
  Jin等[1]分析了SourceForge社区中关于开发者和项目网络的许多方面,包括SourceForge开发者网络随时间推移演化的情况,并验证了网络的无标度特性。还使用了模块化等指标研究SourceForge开发者网络的社区结构,从而找到了最大的开发者社区以及其中的开发者。Gao基于长达一年半的开源社区数据,检验了SourceForge开发者网络的直径、聚类系数、中心度等指标[2]。刘建强等[3]用社会网络分析方法分析CVS数据,利用Apache,Gnome和KDE不同历史时期的数据,计算了网络的各种度量,如度分布、模块的聚类系数,加权聚类系数和各模块的连接度等指标,并发现了项目模块网络和开发者网络表现出小世界效应。
  3    网络分析
  3.1  SourceForge开发者网络
  在SourceForge上,84 636个用户至少有过一次CVS数据提交行为。其中,58 647个开发者至少连接到一个其他开发者(这些开发者没有一个人单独进行一个项目的开发工作),占总开发者人数的69.29%。彼此连接的开发者,最大的连接社团包含21 372个用户,占总人数的36.44%,其中,30.23%的开发者至少有过一次有效的提交行为。图1形象地展示了SourceForge开发者网络随机抽样的结果,其开发者网络是从利用开发者—项目关系2/3的数据提取出来构建的。该网络中有40 206个节点,其中最大的连接组件包含5 132个节点,其中有许多开发者社区,但没有关键的核心节点,并且存在很多开发者的“环”,朝着网络的外围发展。“环”中的开发者在网络中起到非常重要的作用,如果没有,网络可能就会断开。
  3.2  GNU开发者和项目网络
  在革奴计划(GNU is Not Unix,GNU)开发者网络中,3 986个开发者至少提交过一个CVS,其中3 122个开发者至少跟一个其他开发者相连接,占78.32%。在这些连接中,最大的连接组件包含1 821个开发者,占58.32%,或者说45.62%的开发者至少有过一次提交,该网络可视化的结果如图2所示,其中,项目是由唯一一个被排除在外的开发者开发的数据。另外,在GNU的项目网络中,项目之间彼此连接,并呈现出一个较大的集群,主要原因是大多数GNU项目的生存时间都很长,不断有新的项目托管到GNU上,并且很多开发者都把毕生的精力投入到GNU的多个开发项目上。
  3.3  Berlios开发者和项目网络
  在Berlios项目中,至少1 612个开发者有过一个CVS提交记录,其中,有1 125个用户至少和一个其他开发者相连(只有一个开发者的项目排除在外),占70.35%。其中,最大的连接组件仅包含100个用户,占8.98%,即6.32%开发者至少提交过一次。Berlios项目网络基本上没有连接,不过网络里面有一些有趣的社区。
  4    重复网络连接
  在SourceForge开发者网络中,有386 690条开发者之间的连边,其中10 491条是重复的,占2.65%。然而,在GNU中,47 656个开发者节点对中,有4 762对是重复的,接近10%。对于Berlios,3 412个开发者关系中有96个是重复的,占2.51%,与SourceForge相当。开发者网络中重复网络连接现象还没有得到广泛的研究,据推测,Savannah富有成效的开发者关系表明其中的项目很可能是成功的,也可能表明萨凡纳的典型项目比SourceForge或Berlios的典型项目更成功。重复的网络连接现象暗含着开发者之间的合作更加紧密,相应的开发平台和项目更容易获得成功,然而事实并非如此。
  5    社区
  Berlios并不是一个流行的全球化开发者社区。尽管许多开发者与其他人开发者有联系,但开发者网络并没有呈现出小世界效应。SourceForge是一個很大的开发者社区,在连接方面比Berlios更好。在SourceForge中,大约有1/4的开发者在最大的开发社区中,另外,在GNU中有将近一半的开发者在最大的开发者社区中。
  6    结语
  本文给出了3个不同的OSS平台上项目和开发者网络的初步统计分析,分析、揭示了网络演化的趋势,并为OSS平台上的一些现象提供了重要的见解。软件版本控制日志为建立和研究网络提供了一个很好的资源。
  [参考文献]
  [1]JIN X,GREGORY M.Exploration of the open source software community[D].Notre Dame:University of Notre Dame,2004.
  [2]任卓明,邵凤,刘建国,等.基于度与集聚系数的网络节点重要性度量方法研究[J].物理学报,2013(12):56-58.
  [3]刘建强,兰巨龙,邬江兴.基于节点疏远方法的网络节点重要性评价[J].计算机工程与科学,2011(3):13-17.
转载注明来源:https://www.xzbu.com/8/view-15151218.htm