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

群體軟件開發(fā)中核心-邊緣開發(fā)者的區(qū)分研究

2019-07-25 01:44:04常志遠何鵬
物聯網技術 2019年4期
關鍵詞:計算機

常志遠 何鵬

摘 要:在社區(qū)化群體軟件開發(fā)中,開發(fā)者根據角色的差異常被分為核心和邊緣兩類。以往區(qū)分兩類開發(fā)者,是基于開發(fā)者的代碼提交量,但此方法的通用性還需考察。為改善現有方法,使用關聯視角來看待開發(fā)者角色,運用開發(fā)者網絡來模擬社區(qū)組織結構,并根據開發(fā)者在組織結構中的職位穩(wěn)定性進行檢測。研究表明,文中所提方法具有較好的有效性,且通過關聯視角發(fā)現核心開發(fā)者的職位穩(wěn)定性比邊緣開發(fā)者更高、開發(fā)合作性更強。

關鍵詞:群體軟件開發(fā);開發(fā)者網絡;核心開發(fā)者;邊緣開發(fā)者;計算機;網絡社區(qū)

中圖分類號:TP274文獻標識碼:A文章編號:2095-1302(2019)04-00-05

0 引 言

著名的“洋蔥”模型為開源軟件項目的成員設有8種角色,分別面向用戶、測試者和開發(fā)者。通過該模型可知,不同角色之間成員規(guī)模差異明顯。大量實證研究證明模型中開發(fā)者的代碼貢獻度呈“長尾”分布,即一小部分的開發(fā)者承擔了絕大部分工作。由此,開發(fā)者角色也被分為核心開發(fā)者與邊緣開發(fā)者兩類。核心開發(fā)者在項目中扮演重要角色并且形成領導結構,大量、長期的參與項目開發(fā)[1]。相反,邊緣開發(fā)者通常只做Bug修復或小的改善工作,在項目開發(fā)中的參與度較低。

一般看來,項目中邊緣開發(fā)者無足輕重,因為他們的知識儲備不夠并且缺乏改變。但也有研究表明:邊緣開發(fā)者在項目開發(fā)中與核心開發(fā)者一樣重要[2]。

在“many eyes”假說中,邊緣開發(fā)者尤為重要。此假說設想當源代碼被越來越多的人仔細檢查后,Bug將無所遁形。這也常被用來解釋為什么開源項目質量更高。

盡管現有研究中對核心與邊緣開發(fā)者的特性和兩者之間的相互影響有所認識,但仍存在兩個問題。首先,一個區(qū)分開發(fā)者角色的合適方法,對驗證軟件開發(fā)中的協作理論十分重要,而現有一些方法只采用簡單的概念區(qū)分。例如,僅以開發(fā)者提交的代碼行數來區(qū)分,當遇到只做大量瑣碎修復任務的開發(fā)者時,這種方法就會存在偏差。其次,區(qū)分核心-邊緣開發(fā)者的技術過于簡單,在描述角色時缺乏豐富性,導致難以發(fā)現開發(fā)者之間的關系,造成關聯視角缺失。

本文首先對10個大型開源項目的版本控制日志和開發(fā)者郵件列表數據進行分析,發(fā)現大多數已有區(qū)分核心-邊緣開發(fā)者方法具有一致性。其次,構建開發(fā)者合作網絡模型,采用網絡分析方法探索軟件項目中,隨著成員組織結構的不斷發(fā)展,核心開發(fā)者與邊緣開發(fā)者的特征變化。值得注意的是,本文發(fā)現核心開發(fā)者與邊緣開發(fā)者相比,在組織結構中擁有更高的位置穩(wěn)定性和全局中心性。此外,核心開發(fā)者之間更可能相互合作,邊緣開發(fā)者也更傾向于與核心開發(fā)者合作,說明對邊緣開發(fā)者的認識不能只被視為沒有核心開發(fā)者活躍,他們還與核心開發(fā)者有大量交互。

本文的主要貢獻歸納如下:

(1)研究了10個大型開源項目,評估了采用基于計數方式區(qū)分核心-邊緣開發(fā)者的正確性。

(2)識別開發(fā)者組織結構特征,采用網絡分析方法掌握了核心-邊緣開發(fā)者的抽象概念,并證明了所得結果與以計數方法所得結果大致相同。

1 基于計數度量的方法

基于已有文獻,已有三種度量核心-邊緣開發(fā)者的方

法[3-5]普遍采用相應的閾值來區(qū)分核心和邊緣開發(fā)者。根據二八定律,采取其中的80%作為閾值。

1.1 提交數

提交數是開發(fā)者已授權且合并到主分支的git提交次數。一次提交代表在源代碼上做了相關修改。核心開發(fā)者通常會對代碼庫做頻繁修改,理論上,核心開發(fā)者的提交數將遠高于邊緣開發(fā)者。

1.2 代碼行數

代碼行數是開發(fā)者授權后增加和刪除代碼行數的總數,與提交數相似。由于核心開發(fā)者承擔了大部分修改任務,他們修改的代碼行數多于邊緣開發(fā)者。然而,一種潛在的問題是,當開發(fā)者只做大量瑣碎的修改時,這種基于代碼行數的方法將影響區(qū)分結果。

1.3 郵件數

郵件數是開發(fā)者提交到郵件列表的郵件數量。核心開發(fā)者通常掌握深入的技術知識,而郵件列表是分享這些知識的主要平臺。核心開發(fā)者通過對整改提建議,討論潛在的挑戰(zhàn),以及對其他開發(fā)者提出的修改意見作評價,分享和體現他們的專業(yè)知識。通常在時間上,核心開發(fā)者參與項目更集中且更持久,比邊緣開發(fā)者更具有責任感,因此核心開發(fā)者對郵件列表的貢獻更多。該法也只是一種簡單的度量方法,因為開發(fā)者回答問題和問問題的次數是相等的,同樣此方法并沒有突出交流方。

上述三種度量方法都已被用于區(qū)分核心-邊緣開發(fā)者工作,但終究只是復雜概念的簡單抽象,忽略了開發(fā)者之間交互信息的刻畫,導致區(qū)分方法的結果缺少實際價值。為此,本文提出一種在開發(fā)者合作與交流中存在的關聯視角,以期得到更多軟件工程中的實際關聯信息。

2 基于開發(fā)者網絡的度量方法

開發(fā)者網絡是對開發(fā)者關系的抽象化,將開發(fā)者作為節(jié)點,開發(fā)者之間的社交或技術交流作為邊。依托開發(fā)者網絡有助于發(fā)現如下特性:

(1)結構的一致性(兩個節(jié)點有相同的鄰居節(jié)點),可揭示哪些核心開發(fā)者們有相似的技能,從而選擇合適的開發(fā)者來分擔或替換開發(fā)任務;

(2)核心開發(fā)者之間的結構洞(Structural Hole)可推測出彼此合作上存在的問題;

(3)只以一名核心開發(fā)者作為全局中心,可能會存在組織風險。

2.1 網絡模型

通過對版本控制系統(tǒng)中提交日志和郵件列表的數據進行分析,了解核心開發(fā)者與邊緣開發(fā)者之間的交互關系。先前的研究表明開發(fā)者的角色會隨時間而變化[6]。為回答這個問題,本文使用時間序列分析窗口,分析一個項目在一年中多個相鄰時間段的情況。分析時間跨度為三個月,相鄰間隔為兩周,超過三個月,開發(fā)社區(qū)不會有重大改變,但在開發(fā)活動中暫時的決定會被丟失[7]。

2.2 開發(fā)者網絡中的核心開發(fā)者和邊緣開發(fā)者

本文將介紹五種依賴開發(fā)者網絡的網絡分析方法。

2.2.1 度中心性

度中心性用來度量網絡局部重要性,它代表開發(fā)者與其他開發(fā)者直接連邊的條數[8]。作為領導結構中的重要成員,核心開發(fā)者之間會有交流,還會對邊緣開發(fā)者進行技術指導。邊緣開發(fā)者可能只做與其他任務關聯不大的小改動,因此在開發(fā)者社區(qū)中與其他人的交互關系很少。所以核心開發(fā)者的度中心性高于邊緣開發(fā)者。

2.2.2 特征向量中心性

特征向量中心性是一種全局中心性度量方法,代表著開發(fā)者所預期的重要程度,通過是否和許多開發(fā)者有關聯或是否和處于全局核心的開發(fā)者有關聯來判斷。因為核心開發(fā)者在組織結構中至關重要,所以他們在開發(fā)者網絡中位于全局中心的位置。

2.2.3 層級

層級是有分層節(jié)點結構的網絡,就好像凝聚的小團體嵌入在缺少凝聚的大團體中。在層級網絡中,高層級節(jié)點之間的邊通常會跨過聚集組來降低它們的集群系數。已有研究表明,開發(fā)者們易于形成緊密的社區(qū)[9],本文預測核心開發(fā)者扮演著協調社區(qū)其他開發(fā)者工作的角色。如果假設為真,則核心開發(fā)者會擁有高節(jié)點度和低聚類系數,屬于層級網絡中的高層;同時邊緣開發(fā)者顯示出低節(jié)點度和高聚類系數,屬于層級網絡中的低層。

2.2.4 角色穩(wěn)定性

角色穩(wěn)定性是開發(fā)者在不同角色轉換中的時間屬性。通過觀察隨時間變化后開發(fā)者網絡的變化,研究開發(fā)者在不同角色中轉換的模式。核心開發(fā)者因長期參與項目并且在特定領域擁有廣博的知識,通常擁有很高的可靠性。因此,在開發(fā)者網絡中核心開發(fā)者的角色穩(wěn)定性應高于邊緣開發(fā)者。

2.2.5 核心-邊緣塊模型

核心-邊緣塊模型是一種形式化,用基于鄰接矩陣的表達獲取核心-邊緣結構的概念。這個模型描述了一組和許多其他節(jié)點相連的核心節(jié)點,被一組沒有和其他節(jié)點相連的邊緣節(jié)點所圍繞。可用來測試由度中心性區(qū)分的核心-邊緣開發(fā)者是否和采用塊模型在開發(fā)者網絡中得到的核心-邊緣開發(fā)者的位置一致。從塊模型可知,每一區(qū)組邊存在的可能性不同但又有關聯,p核心-核心>p核心-邊緣>p邊緣-邊緣。塊模型方法表示核心開發(fā)者通常能融洽的與他人配合,表現為在開發(fā)者網絡中和其余節(jié)點有緊密聯系。邊緣開發(fā)者經常依賴核心開發(fā)者的知識和幫助去完成他們的項目,因此邊緣開發(fā)者和核心開發(fā)者聯系緊密[10]。

3 實證研究

3.1 選用項目

本文選取10個開源項目,見表1所列,為了使實證結果具有代表性,所選項目需滿足以下條件:

(1)規(guī)模:源代碼在5萬行到16萬行之間,開發(fā)者規(guī)模在15~1 000人之間;

(2)時間:均從開發(fā)者的第一次提交開始計算;

(3)技術:綜合考慮項目的編程語言和庫的使用情況;

(4)應用領域:涉及操作系統(tǒng)、開發(fā)等。

3.2 研究問題

問題1:基于版本控制系統(tǒng)和列表郵件的數據來區(qū)分核心-邊緣開發(fā)者的方法之間是否具有一致性?

問題2:基于網絡分析的方法是否比基于計數方法的效果更好?

3.3 Cohens kappa系數

現有的區(qū)分核心和邊緣開發(fā)者的方法比較有效,即使不同區(qū)分方法的抽象概念一致,結果也不可能完全一致。然而,區(qū)分方法如果一致,結果的一致性一定比隨意分配開發(fā)者的一致性高。考慮到本文開發(fā)者核心與邊緣兩類角色成員的頻率次數不對稱,即大量開發(fā)者是邊緣開發(fā)者,只有小部分為核心開發(fā)者,因此為檢測核心-邊緣開發(fā)者區(qū)分方法的一致性,本文采用Cohens kappa系數:式中:po是兩種方法區(qū)分同一類開發(fā)者角色一致性的次數與開發(fā)者總數的比例;pe是隨機分配下開發(fā)者的比例。Cohens kappa系數的范圍和對應一致性的強度見表2所列。

4 實驗結果

4.1 基于計數度量方法的一致性驗證

為驗證現有各種基于計數度量方法在區(qū)分核心-邊緣開發(fā)者角色上結果的一致性,本文分別分析了基于開發(fā)者的提交數、代碼行數、郵件數方法之間的兩兩一致性。QEMU項目的時間序列呈現結果如圖1所示。從中可以看出,一致性系數均為一般以上(即高于0.2),高于隨機區(qū)分所得的一致性。說明不同的基于計數度量方法大體吻合。由圖1還不難發(fā)現,基于提交數的方法與基于代碼行數的方法之間表現為高度一致性(約0.75)。另外,無論哪種方法,一致性均隨時間變化保持相對穩(wěn)定。

綜上,結果證明在區(qū)分開發(fā)者的核心-邊緣角色中,采用不同的基于計數度量方法產生的結果基本一致,尤其是基于提交數和代碼行數。

4.2 基于開發(fā)者網絡的度量方法

4.2.1 層級

在分層網絡中,頂層的節(jié)點有高節(jié)點度和低聚類系數;底層節(jié)點有低節(jié)點度和高聚類系數。QEMU項目的節(jié)點度與聚類系數呈現結果如圖2所示,可發(fā)現節(jié)點度和聚類系數有明顯的依賴關系[11]。高節(jié)點度的節(jié)點會有低聚類系數,在2.2節(jié)中表明有這種特征的節(jié)點為核心開發(fā)者;低節(jié)點度的節(jié)點會有高聚類系數,這類節(jié)點被認為是邊緣開發(fā)者。

4.2.2 穩(wěn)定性

在項目中履行自己的職責,并在之后的開發(fā)中一直有參與的開發(fā)者被認為是穩(wěn)定的開發(fā)者。時間分辨方法通過檢測開發(fā)者是否由一個狀態(tài)轉化為另一狀態(tài)來研究角色的穩(wěn)定性。QEMU項目中開發(fā)者的狀態(tài)轉換如圖3所示。開發(fā)者狀態(tài)轉化的可能性由馬爾可夫鏈表示。發(fā)現處于核心狀態(tài)的開發(fā)者與處于邊緣狀態(tài)的開發(fā)者相比,更能保持他們的原有狀態(tài),并很少轉化為離開狀態(tài)(離開項目)或隔離狀態(tài)(開發(fā)者網絡中無相鄰節(jié)點,只做單獨的任務)。基于這一結論,核心開發(fā)者判定為是比邊緣開發(fā)者更穩(wěn)定的群體。

4.2.3 核心-邊緣塊模型

核心-邊緣塊模型描述:核心和邊緣開發(fā)者群體作為特定的兩類節(jié)點被安置在網絡中。為測試實證數據是否由核心-邊緣塊模型所描述,必須計算核心-核心、核心-邊緣和邊緣-邊緣邊的存在可能性。如果邊的存在可能性按照:p核心-核心>p核心-邊緣>p邊緣-邊緣的順序排列,我們可以推斷出核心開發(fā)者在項目中協調能力最強,邊緣開發(fā)者主要和核心開發(fā)者協作,且很少會與其他邊緣開發(fā)者合作。

所有項目的3類邊存在的概率見表3所列。核心-核心邊存在可能性的平均值為4.02×10-1,核心-邊緣邊存在可能性的平均值為3.30×10-2,邊緣-邊緣邊存在可能性的平均值為1.28×10-1。由此可發(fā)現邊緣開發(fā)者和核心開發(fā)者合作的可能性是與邊緣開發(fā)者合作的兩倍。

在表3中,Linux項目邊存在可能性比其他項目都低,并且在同一項目中,核心-核心邊的存在可能性與另外兩條邊的存在可能性差兩個數量級。PostgreSQL項目核心-核心邊存在可能性為1,遠高出其他項目,核心-邊緣邊的存在可能性亦如此。在開發(fā)人數上這兩個項目很特殊:Linux項目的開發(fā)人數(1 467人)遠大于其他項目,PostgreSQL項目的開發(fā)人數(17人)遠小于其他項目。結果顯示項目的規(guī)模會影響開發(fā)者的合作關系,并且對邊緣開發(fā)者的影響極大。

綜上,網絡分析方法清楚地展示了早期實證工作中提出的核心-邊緣開發(fā)者的抽象特征。此外 ,結合核心-邊緣塊模型,發(fā)現開發(fā)者角色有特定的優(yōu)先合作順序。

4.3 網絡分析方法和計數方法的一致性

上述實驗結果已證明了基于計數度量方法之間的一致性,以及開發(fā)者網絡中核心-邊緣開發(fā)者的獨特性。本節(jié)重點分析網絡分析方法和計數度量方法的一致性。網絡分析方法中的穩(wěn)定性和核心-邊緣塊模型區(qū)分方法沒有列出,因為它們都源于度中心性。成對的計數方法和網絡分析方法之間的一致性如圖4所示。

總體來說,成對比較的一致性均為一般以上(即高于0.2),高于隨機區(qū)分時的一致性。此外,使用相同數據來源的區(qū)分方法間表現為高度一致性(約0.75)。因此,總體上網絡分析方法和計數方法的結果是一致的。然而其一致性是有缺陷的,其不一致性和計數方法中的不一致性相似。

5 結 語

軟件開發(fā)者在軟件項目中會扮演不同的角色。了解開發(fā)者角色的特征,可減少開發(fā)者合作中需要的溝通成本。本文以10個開源項目為分析對象,驗證了傳統(tǒng)核心-邊緣開發(fā)者角色度量方法的一致性。同時,本文也使用開發(fā)者網絡建立關聯視角,提出了一系列基于網絡的度量方法,如職位穩(wěn)定性、層級和核心-邊緣塊模型,以此來探索核心開發(fā)者和邊緣開發(fā)者的不同之處,并驗證所提方法與已有方法的一致性。

參 考 文 獻

[1] CROWSTON K,WEI K,LI K,et al.Core and Periphery in Free/Libre and Open Source Software Team Communications[C]// In Proc.International Conference on System Sciences.IEEE Computer Society,2006.

[2] RAYMOND E.The cathedral and the bazaar knowledge[J].Technology & policy,12(3):23-49.

[3] MOCKUS A,FIELDING R T,HERBSLEB J D.Two case studies of open source software development:Apache and Mozilla[J].ACM transactions software engineering methodology,2002,11(3):309-346.

[4] TERCEIRO A,RIOS L R,CHAVEZ C.An empirical study on the structural complexity introduced by core and peripheral developers in free software projects[Z].In Proc.Brazilian symposium on software engineering,IEEE,2010.

[5] ROBLES G,GONZALEZ BARAHONA J M,HERRAIZ I.Evolution of the core team of developers in libre software projects[Z].In Proc.mining software repositories,IEEE,2009:167-170.

[6] JENSEN C,SCACCHI W.Role Migration and Advancement Processes in OSSD Projects: A comparative Case Study[C]// In Proc.International Conference on Software Engineering,IEEE Computer Society,2007:364-374.

[7] MENEELY A,WILLIAMS L.Socio-technical Developer Networks: Should We Trust Our Measurements?[C]// In Proc.International Conference on Software Engineering,ACM,2011:281-290.

[8] BRANDES U,ERLEBACH T.Network Analysis:Methodological Foundations (Lecture Notes in Computer Science)[Z].Springer-Verlag New York,Inc.,Secaucus,NJ,USA,2005.

[9] JOBLIN M,MAUERER W,APEL S,et al.From Developer Networks to Verified Communities:A Fine-Grained Approach[C]// In Proc.International Conference on Software Engineering,IEEE,2015:563-573.

[10] ZHANG X,MARTIN T,E J NEWMAN M.Identification of core-periphery structure in networks[Z].Phys.Rev.E,Mar,2015.

[11] RAVASZ E,BARABASI A L.Hierarchical organization in complex networks[J].Physical review E,2003,67(2):26112.

猜你喜歡
計算機
計算機操作系統(tǒng)
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
基于LabVIEW的計算機聯鎖仿真系統(tǒng)
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
信息系統(tǒng)審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
計算機應用軟件開發(fā)技術的幾點探討
電子制作(2017年14期)2017-12-18 07:08:10
計算機網絡安全
iLOCK型計算機聯鎖開發(fā)中的需求開發(fā)管理
計算機聯鎖系統(tǒng)配置軟件設計與實現
主站蜘蛛池模板: 久草网视频在线| 亚洲国产精品无码AV| 天堂av综合网| 欧美va亚洲va香蕉在线| 国产美女91视频| vvvv98国产成人综合青青| 日韩av无码精品专区| 四虎影视库国产精品一区| 色噜噜中文网| 欧美一级专区免费大片| 亚洲天堂在线视频| 亚洲成人动漫在线| 精品人妻一区无码视频| 日韩人妻精品一区| 中文字幕久久亚洲一区| 无码在线激情片| 久久精品波多野结衣| 在线网站18禁| 自拍偷拍欧美| 国产一级无码不卡视频| 午夜精品一区二区蜜桃| 在线视频精品一区| 欧美在线网| a毛片基地免费大全| 中国精品自拍| 无码网站免费观看| 国产精品亚欧美一区二区三区| 青青热久麻豆精品视频在线观看| 亚洲愉拍一区二区精品| 亚洲天堂首页| 日韩欧美成人高清在线观看| 亚洲欧洲日韩综合色天使| 国产精品网址你懂的| 试看120秒男女啪啪免费| 欧美精品色视频| 99精品国产自在现线观看| 国内精品久久久久久久久久影视 | 亚洲性日韩精品一区二区| 久久青草精品一区二区三区| 国产精品自在拍首页视频8| 高h视频在线| 亚洲Av综合日韩精品久久久| 中文字幕丝袜一区二区| 亚洲AV无码久久精品色欲| 欧美人在线一区二区三区| 久久久久人妻一区精品| 美女亚洲一区| 扒开粉嫩的小缝隙喷白浆视频| 国产爽妇精品| 国产高潮视频在线观看| 欧美日韩成人在线观看| 91伊人国产| 欧美日韩精品综合在线一区| 看国产一级毛片| 国产成人三级| 国产好痛疼轻点好爽的视频| 欧美在线精品怡红院| 青青热久免费精品视频6| 午夜精品国产自在| 欧美中文字幕在线二区| 国产va视频| 亚洲,国产,日韩,综合一区| 毛片视频网址| 精品一区二区久久久久网站| 久久久噜噜噜| 国产成人精品2021欧美日韩| 国产一级妓女av网站| 黄色福利在线| 久久中文字幕不卡一二区| 毛片基地视频| 91小视频在线观看免费版高清| 国产亚洲精| 99尹人香蕉国产免费天天拍| 自拍亚洲欧美精品| 久久永久精品免费视频| 一级一毛片a级毛片| 亚洲欧洲日韩综合| 国产成人精品一区二区免费看京| 亚洲一区二区三区麻豆| 久久青草视频| 国产97色在线| 亚洲男人天堂久久|