999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

開源軟件社區中開發者活躍度特性分析

2017-09-29 04:11:28劉雅新吳高艷何鵬
軟件導刊 2017年9期

劉雅新 吳高艷 何鵬

摘 要:關注開源社區中開發者的活躍程度,研究隨版本更迭開發者活躍度的變化情況。通過挖掘Tomcat項目10個版本的開發者郵件列表信息與版本提交日志信息,構建開發者合作網絡,分別分析項目成員整體活躍度以及單個開發者活躍度的變化趨勢。分析結果發現,項目在版本迭代更新過程中,開發者團隊的整體活躍度保持穩定,但單個開發者的活躍度變化有所不同,存在4種基本模式:開發者先比較活躍,后期越來越不活躍;活躍度整體上先增后減;活躍度整體上呈下降趨勢;活躍度不斷增加,并穩定在活躍狀況。

關鍵詞:開發者合作網絡;開源社區;活躍度;群體開發

DOI:10.11907/rjdk.171538

中圖分類號:TP391 文獻標識碼:A 文章編號:1672-7800(2017)009-0164-03

Abstract:This paper focuses on developers′ activity in open-source community by analyzing the change of their activity with software evolution. Developer collaboration networks of Tomcat for ten versions were constructed based on the emailing-list and changelog, and an analysis of the team and individual activity was done respectively. The results show that the team′s activity keep stable during evolution process, but the trend of individual developer varies. There are four basic patterns among developers: active developers are becoming less active, activity increases first and then decreases, activity continues to decrease, and keep stable.

Key Words:developer collaboration network; open-source community; activity; collaborative development

0 引言

開源軟件(Open Source Software,OSS)是一種源代碼開放的軟件,采用開源認證協議進一步允許用戶學習、修改、二次開發及提高軟件質量,表現出的是一種自由開放、對等交互、知識共享的群體協作開發新模式。它既是一種網絡時代的軟件生產方式,也已成為國家軟件服務業的重要支撐,是國家安全戰略的重要組成部分。據研究統計表明,開源軟件的使用可為企業IT預算年均節省600億美元。

開源軟件的開發以社區為存在形式,社區內的成員可以自由、開放地交流溝通、共享經驗、參與協作。目前,最具代表性的開源組織專有社區包括Linux社區、Apache社區、Mozilla 社區等,開源軟件托管社區主要有Github和Sourceforge。近年來,圍繞開源軟件或開源社區開展的工作每年至少有上萬篇論文,足見該方向已引起了廣大愛好者的極力關注。

在Apache開源社區中流行一種觀點,即社區比代碼重要[1],Ye等[2]認為一個OSS的成功在于有一個適當規模的開發者社區。然而,在社區化群體軟件開發中,開發者規模劇增,關系也愈加復雜,并時刻存在動態變化,這種關系的變動直接影響了軟件的演化。分析開源軟件社區中的群體行為特性,有利于挖掘開發者的合作行為、重要程度、貢獻價值,時時關注開發者角色的變化,探究開發者擅長從事的工作,為管理者提供決策參考。

Meneely等[3]利用開發者合作關系成功預測了項目發布后可能出現的故障。Sureka等[4]從缺陷報告中抽取開發者的合作網絡,通過網絡分析發掘系統存在的風險與脆弱性。Crowston等[5]根據bug修復信息闡述了開源軟件開發團隊中的核心-邊緣結構。同樣,Sureka等[6]從開發者的組織結構角度,發現開發者合作之間呈洋蔥層次結構。Gao等[7]對 Sourceforge.ne 社區開發者合作網絡的一些網絡指標進行了演化分析,發現社區網絡直徑有變短的趨勢。Hahn等[8]也驗證了一個開發團隊的形成以及開發者之前的合作關系對團隊形成的影響。一些研究者也嘗試采用社會網絡分析方法發掘社區中的一些重要成員,如“中介”成員識別[9]、團隊帶頭人挖掘[10]。

根據開發者提交的日志信息,Huang等[11]構建開發者—模塊網絡來描述開發者之間的交互,并建立 LPP 邊緣學習過程模型用于劃分開發團隊中成員的角色。Allaho和Lee[12]共同分析了開發者網絡的交互關系,發現團隊中專家與小角色成員之間有明顯的交互行為,并且開發者的出入度與他們的貢獻大小之間呈正相關。同時,社區中新加入的開發者更傾向于與(度數或介數)中心性更大的已有開發者建立合作[13]。

國內學者劉曉等[14]從網絡規模、內部結構和人員流動方面分析了開發者合作網絡的演化規律。筆者也曾分析過開發者的偏好合作模式,探析了4種合作方式下的差異,并重點分析了已有開發者之間的合作模式[15-16]。

本文結合復雜網絡理論與軟件開發實踐,通過軟件庫(Software Repository)挖掘,分析開源社區中開發者的活躍度情況,發掘開發者的角色變化模式,提煉多種開發者角色演化規律,為軟件工程實踐提供決策指導。endprint

1 研究方法

1.1 開發者合作網絡

在構建開發者合作網絡過程中,將所有開發者表示為一個節點,如果兩個開發者在同一時間從事同一個項目工作的開發(如對同一個提交請求進行了評論),則他們之間被視為存在一條合作連邊,用網絡形式表示為ColNet=(V,E),V代表網絡的所有節點集,E為所有合作連邊。本文沒有考慮兩個開發者間的合作次數,以及合作的方向。圖1是一個簡單的開發者合作網絡,根據開發者的合作強度給每個節點設置不同的大小,節點面積越大表示它和其他開發者的合作強度越大,且具有相同合作強度的開發者被賦予同一種顏色加以表示。

1.2 開發者活躍度

ColNet合作網絡中節點代表開發者,邊為開發者之間的合作關系,網絡指標便是基于ColNet中節點之間的關系得到的度量指標。本文引入開發者強度、開發者中心性、活躍度等指標,度量開源軟件社區中開發者的群體行為。

合作強度是指ColNet合作網絡中節點的度數,也即與開發者有直接合作的其他開發者數,可用式(1)表示,其中M(i)是ColNet=(V,E)中與節點i直接相連的節點集,當且僅當節點i、j之間有直接連邊時aij=1,否則aij=0。開發者強度能反映開發者在社區與其他成員的相處情況,是衡量開發者重要性的指標。Di=M(i)=∑j∈M(i)aij

(1) 活躍度(Activity)度量開發者的交際范圍,在合作強度基礎上進行了豐富。具體而言,活躍度是指開發者與多少人進行過交互。在開發者合作網絡中,相比其它節點,如果一個節點擁有很多條邊,那么該節點所代表的開發者的活躍度很高。反之,活躍度很低的開發者與其他人建立的鏈接就非常少。因此,活躍度與節點的度息息相關。若用Activityi表示開發者i的活躍度,活躍度的定義可表示為:Activityi=∑j∈N(i)1DjActivityj

(2) 式(2)中,N(i)是開發者i的合作成員集合,Dj是開發者j的合作強度。考慮到開發者的合作會隨時間的推移發生變化,需要對開發者的Activity進行迭代更新。利用典型的PageRank算法進行計算,當相鄰兩次迭代的開發者活躍度變化程度小于0.001時,停止迭代。

2 實驗分析

2.1 數據集

為確保選擇的項目具有代表性,選用知名社區Apache中的Tomcat。Tomcat是目前非常流行的Web 應用服務器,是開源社區ASF中Jakarta項目中的一個核心項目,相關信息如表1所示。使用Tomcat從2006年11月-2011年12月共10個版本的開發者交互數據(包括郵件列表信息和修改日志),核心開發者數量由38人發展到144人,合作網絡的連邊規模也由116人增長到484人,對應版本下提交的修改日志也由495個增加到11 175個。

本文整體流程框架如圖2所示,可概括為:首先,分別抓取構建項目開發者合作網絡所需的郵件列表信息,并利用Git工具獲取它們的開發者提交日志信息;其次,利用獲取的開發者交互信息,按照前面所述方式構建開發者合作網絡;最后,基于開發者合作網絡,進行開發者活躍度分析。

2.2 實驗結果

軟件需求的變更促使軟件發生演化,隨著軟件版本的更迭,開發者的活躍度也可能隨之發生變化。從項目成員的整體活躍度情況分析,圖3結果顯示,項目開發者在10個版本中的平均活躍度隨版本的更迭,表現出相對穩定,范圍分布為0.312~0.324,這意味著Tomcat項目團隊整體結構變更不大。

雖然,軟件項目演化過程中開發者整體活躍度變化不大,但開源軟件自由開發、自愿參與的原則,使得項目演化過程中不可避免地存在成員的加入與離開情況。因此,進一步對單個開發者的活躍度演化情況進行分析。此處以在10個版本中都出現了的開發者作為分析對象,發現開發者活躍度的變化趨勢可歸納為4類:①開發者先比較活躍,后期越來越不活躍;②活躍度整體上先增后減;③活躍度整體上呈下降趨勢;④活躍度不斷增加,并最后保持穩定在活躍狀況。

圖4(a)顯示,在前5個版本以內,開發者Hanik和Shapira的活躍度保持穩定,且屬于較活躍狀態。然而,隨著項目版本的更迭,他們的活躍度呈下降趨勢,由原來的0.8以上降低到0.2以下。由圖4(b)可見,起初兩個開發者Barker和Truk的活躍度隨著版本的更新而不斷升高,而當版本序號達到第4或5個時,開發者的活躍度隨著版本序號的變大而減小;圖4(c)結果與圖4(a)剛好相反,表現為開發者的活躍度先隨版本序號的增大而升高,隨后,開發者的活躍度保持穩定趨勢,表明開發者最后成為社區中穩定的核心力量;最后,在圖4(d)中,隨著版本序號的遞增,開發者活躍度持續下降,這類開發者有可能是處于圖4(a)和圖4(b)中的后期階段。

分析發現,還存在部分開發者并不是在10個版本中出現,比如開發者Arcand就只是在版本3-6中出現過,Gomez則自版本4之后才開始加入,但這些開發者活躍度的變化均滿足以上4類典型的變化趨勢。因此,本文沒有單獨對這類開發者的行為進行分析。

本文也存在一些不足之處:①實驗數據只選取了知名Apache開源社區中的Tomcat開源項目從2016年11月—2011年12月的數據,實驗結論還有待在更多開源項目數據集上加以驗證;②本文只考慮了開發者活躍度指標下,群體行為的演化分析,更多行為特征指標比如中心性等有待進一步探索。

3 結語

本文以開源社區中開發者合作行為為研究取向,分析開發者在社區中的活躍度變化情況。通過挖掘Tomcat項目10個版本的開發者郵件列表信息與版本提交日志信息,構建開發者合作網絡,發現項目在版本迭代更新過程中,開發者團隊的整體活躍度表現較為穩定,但單個開發者的活躍度表現出4種基本變化模式,分別為:①開發者先比較活躍,后期越來越不活躍;②活躍度整體上先增后減;③活躍度整體上呈下降趨勢;④活躍度不斷增加,并最后穩定在活躍狀況。endprint

參考文獻:

[1] 李德毅.大數據時代的位置服務[R].第七屆中國電子政務高峰論壇,北京,2013.

[2] YE Y, KISHIDA K.Toward an understanding of the motivation of open source software developers[C].Proceedings of 25th Intl Conf. on Softw. Eng. (ICSE),2003:419-429.

[3] MENEELY A, WILLIAMS L, SNIPES W, et al. Predicting failures with developer networks and social network analysis[C]. Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering,2008:13-23.

[4] SUREKA A, GOYAL A, RASTOGI A.Using social network analysis for mining collaboration data in a defect tracking system for risk and vulnerability analysis[C].Proceedings of the 4th India Software Engineering Conference,2011:195-204.

[5] CROWSTON K, HOWISON J.Assessing the health of open source communities[J].Computer,2006,39(5):89-91.

[6] SUREKA A, GOYAL A, RASTOGI A.Using social network analysis for mining collaboration data in a defect tracking system for risk and vulnerability analysis[C]. Proceeding of the, India Software Engineering Conference,2011:195-204.

[7] GAO Y, FREEH V, MADEY G.Analysis and modeling of open source software community[C].North American Association for Computational Social and Organizational Science(NAACSOS) Conference,2003.

[8] HAHN J, MOON J Y, ZHANG C.Emergence of new project teams from open source software developer networks:impact of prior collaboration ties[J].Information Systems Research,2008,19(3):369-391.

[9] TORAL S L, MARTNEZ-TORRES M R, BARRERO F. Analysis of virtual communities supporting OSS projects using social network analysis[J]. Information and Software Technology,2010,52(3):296-303.

[10] CROWSTON K, WIGGINS A, HOWISON J. Analyzing leadership dynamics in distributed group communication[C]. Proceedings of the Annual Hawaii Int l Conf on System Sciences(HICSS),2010:1-10.

[11] HUANG S K, LIU K M.Mining version histories to verify the learning process of legitimate peripheral participants[J].Acm Sigsoft Software Engineering Notes,2005,30(4):1-5.

[12] ALLAHO M Y, LEE WC.Analyzing the social ties and structure of contributors in open source software community[C].Proceedings of Intel Conf. on Advances in Social Networks Analysis and Mining,2013:56-60.

[13] HE P, LI B, HUANG Y.Applying centrality measures to the behavior analysis of developers in open source software community[C]. International Conference on Cloud and Green Computing (CGC),2012:418-423.

[14] 劉曉,李兵,何鵬.開源軟件社區開發者合作網絡的演化分析[J].小型微型計算機系統,2015,36(9):1921-1926.

[15] 何鵬,李兵,楊習輝,等.開源軟件社區開發者偏好合作行為研究[J].計算機科學,2015,42(2):161-166.

[16] 陳丹,王星,何鵬,等.開源社區中已有開發者的合作行為分析[J].計算機科學,2016,43(6A):476-479.

(責任編輯:孫 娟)endprint

主站蜘蛛池模板: 亚洲无码视频喷水| 天堂中文在线资源| 99青青青精品视频在线| 精品国产污污免费网站| 真实国产乱子伦高清| 特黄日韩免费一区二区三区| 97精品久久久大香线焦| 国产亚洲视频中文字幕视频| 呦视频在线一区二区三区| 手机在线国产精品| 欧美精品成人一区二区视频一| 亚洲精品天堂自在久久77| 成人在线综合| www.精品国产| 欧美中文字幕无线码视频| 97亚洲色综久久精品| 成年av福利永久免费观看| 亚洲第一极品精品无码| 不卡网亚洲无码| 国产三级韩国三级理| 一级毛片无毒不卡直接观看| 日本精品视频| 日韩国产亚洲一区二区在线观看| 亚洲综合在线网| 99资源在线| 91无码网站| 亚洲无码日韩一区| 爱爱影院18禁免费| 亚洲三级a| 在线看片免费人成视久网下载| 久久伊伊香蕉综合精品| 欧美精品影院| 亚洲啪啪网| 亚洲综合色区在线播放2019| 日韩视频免费| 亚洲国产成人久久77| 亚洲精品日产AⅤ| 极品国产在线| 人妻精品全国免费视频| 精品人妻系列无码专区久久| 手机在线看片不卡中文字幕| 日本午夜精品一本在线观看| 国产精品白浆无码流出在线看| 999精品视频在线| 久久亚洲国产一区二区| 99精品在线视频观看| 国产全黄a一级毛片| 91在线一9|永久视频在线| 国产高清色视频免费看的网址| 中文字幕在线日本| 欧美国产在线精品17p| 国产在线日本| 欧美午夜久久| 91亚洲免费视频| 丰满人妻久久中文字幕| 99视频精品在线观看| 亚洲天堂色色人体| 国产在线拍偷自揄拍精品| a亚洲视频| 亚洲av无码片一区二区三区| 午夜视频日本| a毛片基地免费大全| 四虎亚洲国产成人久久精品| 欧美一级在线| 欧美特黄一级大黄录像| 免费看av在线网站网址| 欧美亚洲一区二区三区在线| 一级毛片免费的| 免费无码AV片在线观看中文| 亚洲日韩精品无码专区| 国产欧美综合在线观看第七页| 免费A级毛片无码免费视频| 成人午夜福利视频| 91国内在线观看| 久久99热这里只有精品免费看| 国产精品v欧美| 亚洲国产日韩在线成人蜜芽| 毛片网站在线看| 国产91成人| 欧美激情二区三区| 亚洲国产欧美目韩成人综合| 国产免费羞羞视频|