社交編程網(wǎng)站的項目網(wǎng)絡分析
優(yōu)先出版計 算 機 應 用 研 究第32卷社交編程網(wǎng)站的項目網(wǎng)絡分析吳澤群,劉 婧,李家豪(武漢大學 計算機學院 軟件工程國家重點實驗室,武漢430072)摘 要:社交編程給軟件開發(fā)帶來了一種新的開發(fā)
優(yōu)先出版
計 算 機 應 用 研 究
第32卷
社交編程網(wǎng)站的項目網(wǎng)絡分析
吳澤群,劉 婧,李家豪
(武漢大學 計算機學院 軟件工程國家重點實驗室,武漢430072)
摘 要:社交編程給軟件開發(fā)帶來了一種新的開發(fā)模式。社交編程網(wǎng)站,如GitHub ,使得開發(fā)人員在互不認識的情況下,能夠合作開發(fā)某個項目。這種軟件合作開發(fā)方式的轉(zhuǎn)變,使得對社交編程網(wǎng)絡的研究很有價值?,F(xiàn)有的研究很少有利用社區(qū)結(jié)構(gòu)分析社交編程網(wǎng)絡。通過GitHub 網(wǎng)站提供的數(shù)據(jù)構(gòu)建了項目網(wǎng)絡,結(jié)合重疊社區(qū)發(fā)現(xiàn)的算法,對該網(wǎng)絡進行研究。研究發(fā)現(xiàn),a )項目間的合作多數(shù)是基于小團體的模式;b )社區(qū)重疊部分的項目有較高的影響力;c )大規(guī)模社區(qū)的編程語言的組成和整個網(wǎng)絡語言組成存在差異。 關鍵詞:軟件開發(fā);社交編程;項目網(wǎng)絡;重疊社區(qū) 中圖分類號: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 等人用社交網(wǎng)絡的理論分析了開源軟件的網(wǎng)絡結(jié)構(gòu),他們發(fā)現(xiàn)項目規(guī)模、開發(fā)人員參與的項目數(shù)遵循冪律分布規(guī)律[3]。J. Xu等人發(fā)現(xiàn)不同規(guī)模的項目開發(fā)人員的組成并不相同,開發(fā)人員網(wǎng)絡具有小世界和無標度的特性[4]。Martinez-Romo J等人使用社交網(wǎng)絡的方法獲取和分析開源項目開發(fā)過程中產(chǎn)生的信息,包括軟件的版本、具有領導性質(zhì)的工作人員等[5]。GaoYongqin 等人分別用靜態(tài)和動態(tài)的方法對SourceForge.net 的社區(qū)結(jié)構(gòu)進行了詳盡的分析,研究了網(wǎng)絡的結(jié)構(gòu)和演化過程[6]。
上述研究大多采用網(wǎng)絡的方法對社交編程進行分析,本文同樣采用這一方法?,F(xiàn)實世界中的很多實體都可以抽象為網(wǎng)絡,如人際關系網(wǎng)[7],科學家合作網(wǎng)[8],蛋白質(zhì)網(wǎng)絡[9]等。通常用節(jié)點來表示個體,而用節(jié)點之間的連邊表示個體之間的關系。近年來的研究表明,網(wǎng)絡中蘊含著一定的社區(qū)結(jié)構(gòu):即同一社區(qū)內(nèi)節(jié)點的連接較為稠密,而社區(qū)間的節(jié)點連接較為稀疏[10],對社區(qū)的研究有助于分析其中團體之間的關系動態(tài)、模式和功能,找到隱藏的關系和規(guī)律。
普通的社區(qū)發(fā)現(xiàn)方法中,節(jié)點只能唯一的隸屬于某個社區(qū),
0 引言
隨著互聯(lián)網(wǎng)的快速發(fā)展,人與人之間的合作不再受到地域的限制,來自不同地區(qū)甚至不同國家的人可以共同完成某個項目。這種趨勢也為軟件開發(fā)帶來了一種新的方式,社交編程。社交編程網(wǎng)站如GitHub 和AltassianBitBucKet 為程序員提供了功能全面的工作平臺,包括代碼托管、版本控制、技術交流和交友等。
GitHub ,它使用Git 作為其分布式版本控制和源碼管理系統(tǒng)。在GitHub 上,還有著較為全面的社交功能,開發(fā)人員之間可以互粉也可以單邊關注,一個開發(fā)人員可以參與或者關注多個項目,每個項目也可以有多個開發(fā)成員。到目前為止,有超過三百萬個項目在GitHub 上進行開發(fā),這些開發(fā)過程中產(chǎn)生的真實的數(shù)據(jù)具有很高的價值。
近年來,對社交編程的研究有很多。Treude 等人研究了程序員是怎樣在Stackoverflow 上進行技術交流的[1]。Ramasubbu 等人研究了分布式開發(fā)對于軟件的產(chǎn)量和質(zhì)量的影響[2]。
--------------------------------
基金項目:中央高?;究蒲袠I(yè)務費專項資金項目(2042014kf1002)
作者簡介:吳澤群(1991-),男,碩士研究生,主研方向:社交網(wǎng)絡、數(shù)據(jù)挖掘(wuzequn@whu.edu.cn);劉婧(1979-),女,副教授,博導,主研方向:數(shù)據(jù)挖掘、軟件工程;李家豪(1990-),男,碩士研究生,主研方向:數(shù)據(jù)挖掘、軟件工程.
,文章預覽已結(jié)束 獲取全文請訪問 http://www.arocmag.com/article/02-2015-08-066.html