丁沂


摘? ?要:文章討論了復雜的網絡概念以及利用開源軟件(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個節點,其中有許多開發者社區,但沒有關鍵的核心節點,并且存在很多開發者的“環”,朝著網絡的外圍發展?!碍h”中的開發者在網絡中起到非常重要的作用,如果沒有,網絡可能就會斷開。
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.