亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        開源軟件社區(qū)中開發(fā)者活躍度特性分析

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

        劉雅新 吳高艷 何鵬

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

        關(guān)鍵詞:開發(fā)者合作網(wǎng)絡(luò);開源社區(qū);活躍度;群體開發(fā)

        DOI:10.11907/rjdk.171538

        中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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)是一種源代碼開放的軟件,采用開源認(rèn)證協(xié)議進(jìn)一步允許用戶學(xué)習(xí)、修改、二次開發(fā)及提高軟件質(zhì)量,表現(xiàn)出的是一種自由開放、對(duì)等交互、知識(shí)共享的群體協(xié)作開發(fā)新模式。它既是一種網(wǎng)絡(luò)時(shí)代的軟件生產(chǎn)方式,也已成為國家軟件服務(wù)業(yè)的重要支撐,是國家安全戰(zhàn)略的重要組成部分。據(jù)研究統(tǒng)計(jì)表明,開源軟件的使用可為企業(yè)IT預(yù)算年均節(jié)省600億美元。

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

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

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

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

        國內(nèi)學(xué)者劉曉等[14]從網(wǎng)絡(luò)規(guī)模、內(nèi)部結(jié)構(gòu)和人員流動(dòng)方面分析了開發(fā)者合作網(wǎng)絡(luò)的演化規(guī)律。筆者也曾分析過開發(fā)者的偏好合作模式,探析了4種合作方式下的差異,并重點(diǎn)分析了已有開發(fā)者之間的合作模式[15-16]。

        本文結(jié)合復(fù)雜網(wǎng)絡(luò)理論與軟件開發(fā)實(shí)踐,通過軟件庫(Software Repository)挖掘,分析開源社區(qū)中開發(fā)者的活躍度情況,發(fā)掘開發(fā)者的角色變化模式,提煉多種開發(fā)者角色演化規(guī)律,為軟件工程實(shí)踐提供決策指導(dǎo)。endprint

        1 研究方法

        1.1 開發(fā)者合作網(wǎng)絡(luò)

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

        1.2 開發(fā)者活躍度

        ColNet合作網(wǎng)絡(luò)中節(jié)點(diǎn)代表開發(fā)者,邊為開發(fā)者之間的合作關(guān)系,網(wǎng)絡(luò)指標(biāo)便是基于ColNet中節(jié)點(diǎn)之間的關(guān)系得到的度量指標(biāo)。本文引入開發(fā)者強(qiáng)度、開發(fā)者中心性、活躍度等指標(biāo),度量開源軟件社區(qū)中開發(fā)者的群體行為。

        合作強(qiáng)度是指ColNet合作網(wǎng)絡(luò)中節(jié)點(diǎn)的度數(shù),也即與開發(fā)者有直接合作的其他開發(fā)者數(shù),可用式(1)表示,其中M(i)是ColNet=(V,E)中與節(jié)點(diǎn)i直接相連的節(jié)點(diǎn)集,當(dāng)且僅當(dāng)節(jié)點(diǎn)i、j之間有直接連邊時(shí)aij=1,否則aij=0。開發(fā)者強(qiáng)度能反映開發(fā)者在社區(qū)與其他成員的相處情況,是衡量開發(fā)者重要性的指標(biāo)。Di=M(i)=∑j∈M(i)aij

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

        (2) 式(2)中,N(i)是開發(fā)者i的合作成員集合,Dj是開發(fā)者j的合作強(qiáng)度??紤]到開發(fā)者的合作會(huì)隨時(shí)間的推移發(fā)生變化,需要對(duì)開發(fā)者的Activity進(jìn)行迭代更新。利用典型的PageRank算法進(jìn)行計(jì)算,當(dāng)相鄰兩次迭代的開發(fā)者活躍度變化程度小于0.001時(shí),停止迭代。

        2 實(shí)驗(yàn)分析

        2.1 數(shù)據(jù)集

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

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

        2.2 實(shí)驗(yàn)結(jié)果

        軟件需求的變更促使軟件發(fā)生演化,隨著軟件版本的更迭,開發(fā)者的活躍度也可能隨之發(fā)生變化。從項(xiàng)目成員的整體活躍度情況分析,圖3結(jié)果顯示,項(xiàng)目開發(fā)者在10個(gè)版本中的平均活躍度隨版本的更迭,表現(xiàn)出相對(duì)穩(wěn)定,范圍分布為0.312~0.324,這意味著Tomcat項(xiàng)目團(tuán)隊(duì)整體結(jié)構(gòu)變更不大。

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

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

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

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

        3 結(jié)語

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

        參考文獻(xiàn):

        [1] 李德毅.大數(shù)據(jù)時(shí)代的位置服務(wù)[R].第七屆中國電子政務(wù)高峰論壇,北京,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] 劉曉,李兵,何鵬.開源軟件社區(qū)開發(fā)者合作網(wǎng)絡(luò)的演化分析[J].小型微型計(jì)算機(jī)系統(tǒng),2015,36(9):1921-1926.

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

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

        (責(zé)任編輯:孫 娟)endprint

        亚洲97成人在线视频| 成人午夜视频一区二区无码| 亚洲特黄视频| 日本加勒比东京热日韩| 亚洲av熟女天堂系列| 国产黄色一区二区在线看| 国产亚洲成性色av人片在线观| a级毛片免费观看在线播放| av蓝导航精品导航| 欧美a在线播放| 免费在线av一区二区| 青青草手机在线观看视频在线观看| 欧美丰满熟妇bbb久久久| 四虎影视在线影院在线观看| 精品久久综合亚洲伊人| 日韩av二区三区一区| 亚洲中文字幕一二区精品自拍| 麻豆69视频在线观看| 亚洲熟妇丰满多毛xxxx| 人人妻人人澡人人爽人人精品| 日本一道dvd在线中文字幕| 天堂av一区二区麻豆| 嗯啊好爽高潮了在线观看| 免费观看性欧美大片无片| 国产精品久久久久…| 日产一区二区三区的精品| 亚洲精品粉嫩美女一区| 国产女人高潮视频在线观看| 亚洲欲色欲香天天综合网| 国产精品久久久久久久y| 国产熟女白浆精品视频二| 亚洲人成人无码www影院| 日韩另类在线| 精品人妻夜夜爽一区二区| 成午夜福利人试看120秒| 久久99精品久久久久久秒播| 一本久道久久综合五月丁香| 亚洲一区二区三区在线| 青青草成人免费在线观看视频 | 国产精品无码一本二本三本色| Y111111国产精品久久久|