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

2020-04-09 04:42丁沂
无线互联科技 2020年3期
关键词:复杂网络网络分析

丁沂

摘   要:文章讨论了复杂的网络概念以及利用开源软件(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.

猜你喜欢
复杂网络网络分析
铁路有线调度通信的网络分析
基于复杂网络节点重要性的链路预测算法
基于复杂网络理论的通用机场保障网络研究
2016年社交网络分析
基于需求拉动的战略性新兴产业创新价值网络分析
大班幼儿同伴交往的社会网络分析
基于网络分析的产业部门碳减排措施研究