亚洲综合专区|和领导一起三p娇妻|伊人久久大香线蕉aⅴ色|欧美视频网站|亚洲一区综合图区精品

開源軟件系統(tǒng)中社會(huì)技術(shù)網(wǎng)絡(luò)的協(xié)同演化探析論文

時(shí)間:2021-05-07 20:53:38 論文 我要投稿

開源軟件系統(tǒng)中社會(huì)技術(shù)網(wǎng)絡(luò)的協(xié)同演化探析論文

  引言

開源軟件系統(tǒng)中社會(huì)技術(shù)網(wǎng)絡(luò)的協(xié)同演化探析論文

  近十多年來(lái),復(fù)雜網(wǎng)絡(luò)理論研究逐漸得到深入和推廣,其應(yīng)用非常廣泛,涉及社會(huì)學(xué)、生物、計(jì)算機(jī)等領(lǐng)域。在軟件工程領(lǐng)域,軟件系統(tǒng)尤其是大型軟件系統(tǒng)規(guī)模的持續(xù)增長(zhǎng)引發(fā)系統(tǒng)復(fù)雜性的質(zhì)變,許多大型軟件系統(tǒng)在內(nèi)部結(jié)構(gòu)、外部交互、演化方式等維度上表現(xiàn)出新特性。從結(jié)構(gòu)方面,由于規(guī)模變大,從局部度量系統(tǒng)內(nèi)部結(jié)構(gòu)復(fù)雜性變得越來(lái)越困難,網(wǎng)絡(luò)思想有助于從全局的角度解決這一問(wèn)題。根據(jù)軟件系統(tǒng)內(nèi)部實(shí)體(如包,類、方法、組件等)間的依賴關(guān)系,將軟件系統(tǒng)抽象為一個(gè)網(wǎng)絡(luò),即軟件網(wǎng)絡(luò)。從參與者角度而言,軟件系統(tǒng)的開發(fā)不再是單個(gè)精英團(tuán)隊(duì)或?qū)<宜芡瓿桑且揽看蟊婇_發(fā),利用群體智慧才能達(dá)到目標(biāo),是一個(gè)典型的“社會(huì)-技術(shù)”交融系統(tǒng)。技術(shù)層面分析主要是對(duì)已有軟件采用逆向工程方法抽象其組織結(jié)構(gòu),構(gòu)建軟件網(wǎng)絡(luò);社會(huì)層面分析主要是根據(jù)社區(qū)群體交互采用社會(huì)網(wǎng)絡(luò)分析方法,挖掘群體行為。復(fù)雜網(wǎng)絡(luò)與軟件工程的交叉研究,已引起了眾多學(xué)者的關(guān)注與認(rèn)可,如李兵等基于軟件網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)度量開源軟件系統(tǒng)的復(fù)雜性,提高軟件設(shè)計(jì)質(zhì)量;Bhattachary等根據(jù)軟件網(wǎng)絡(luò)中節(jié)點(diǎn)的重要性進(jìn)行缺陷預(yù)測(cè),為測(cè)試人員提供檢測(cè)優(yōu)先順序;鑒于軟件拓?fù)浣Y(jié)構(gòu)的多粒度性,潘偉豐等分別從軟件包、類和方法3個(gè)粒度研究了開源軟件系統(tǒng)的演化特性。

  軟件網(wǎng)絡(luò)的研究結(jié)合了復(fù)雜網(wǎng)絡(luò)和軟件工程理論,它以軟件系統(tǒng)的結(jié)構(gòu)特征為切入點(diǎn),將復(fù)雜網(wǎng)絡(luò)的理論應(yīng)用到軟件工程領(lǐng)域。持續(xù)演化是計(jì)算機(jī)軟件的固有特性,了解和發(fā)現(xiàn)軟件演化規(guī)律,有助于提高軟件產(chǎn)品質(zhì)量,降低軟件開發(fā)和維護(hù)成本。針對(duì)軟件演化問(wèn)題,Lehman提出8個(gè)典型的定律,涉及軟件的規(guī)模、質(zhì)量、復(fù)雜度、生產(chǎn)率與開發(fā)過(guò)程等。目前,隨著軟件的網(wǎng)絡(luò)化趨勢(shì)越來(lái)越明顯,軟件與網(wǎng)絡(luò)的關(guān)系更加密不可分,用網(wǎng)絡(luò)的觀點(diǎn)來(lái)分析軟件演化,為軟件工程實(shí)踐提供了新的視角。然而,軟件開發(fā)是一個(gè)社會(huì)性(“人”)和技術(shù)性(“軟件”)匯聚的過(guò)程,很多已有研究只是從技術(shù)層面出發(fā),探索了軟件系統(tǒng)技術(shù)維度的復(fù)雜性與應(yīng)用。在軟件生命周期中,從需求獲取、到系統(tǒng)的設(shè)計(jì)與開發(fā),以及后期維護(hù)等階段都離不開人的參與,即軟件系統(tǒng)的社會(huì)屬性。軟件的結(jié)構(gòu)決定功能,而Conway定律指出系統(tǒng)的最終設(shè)計(jì)結(jié)構(gòu)等同于設(shè)計(jì)系統(tǒng)的組織成員之間的交互結(jié)構(gòu)。因此,一個(gè)軟件系統(tǒng)既是一個(gè)技術(shù)依賴的制品,也涉及一個(gè)社會(huì)交互的群體,其網(wǎng)絡(luò)模型可抽象為一個(gè)社會(huì)-技術(shù)網(wǎng)絡(luò)。

  軟件系統(tǒng)在不斷適應(yīng)環(huán)境和需求變化的過(guò)程中持續(xù)演化,軟件演化作為一種技術(shù),主要關(guān)心對(duì)軟件進(jìn)行修改的方法;作為一種現(xiàn)象,主要關(guān)心誰(shuí)驅(qū)動(dòng)的演化以及演化效果如何。基于社會(huì)-技術(shù)網(wǎng)絡(luò)模型,本文嘗試從軟件演化分析角度探討社會(huì)-技術(shù)網(wǎng)絡(luò)中的協(xié)同演化問(wèn)題,彌補(bǔ)已有研究工作只從單一網(wǎng)絡(luò)層面審視軟件的演化過(guò)程。本文采用類依賴關(guān)系描述軟件網(wǎng)絡(luò),任務(wù)參與關(guān)系描述開發(fā)者網(wǎng)絡(luò),基于復(fù)雜網(wǎng)絡(luò)度量研究與驗(yàn)證開源軟件系統(tǒng)版本演化過(guò)程中存在的規(guī)律。本文的主要工作為:構(gòu)建開源軟件系統(tǒng)的社會(huì)-技術(shù)網(wǎng)絡(luò)模型,統(tǒng)計(jì)開源軟件系統(tǒng)中軟件網(wǎng)絡(luò)與開發(fā)者網(wǎng)絡(luò)的網(wǎng)絡(luò)規(guī)模、平均度、最短路徑、聚類系數(shù)、社區(qū)結(jié)構(gòu)網(wǎng)絡(luò)度量指標(biāo)等;依次對(duì)比分析兩類網(wǎng)絡(luò)在10個(gè)軟件版本中網(wǎng)絡(luò)指標(biāo)的演化趨勢(shì),發(fā)掘它們演化規(guī)律的一致性與差異。

  1 相關(guān)工作

  Valverde等首次將復(fù)雜網(wǎng)絡(luò)方法引入軟件結(jié)構(gòu)分析中,將軟件系統(tǒng)的類圖用無(wú)向網(wǎng)絡(luò)來(lái)表示,分析軟件網(wǎng)絡(luò)中的復(fù)雜網(wǎng)絡(luò)特性(如“小世界”和“無(wú)標(biāo)度”),認(rèn)為軟件開發(fā)中局部?jī)?yōu)化過(guò)程可能是導(dǎo)致軟件網(wǎng)絡(luò)呈現(xiàn)這些特性的原因。Valverde等還考慮了類之間的有向性,構(gòu)建有向網(wǎng)絡(luò)對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行研究,發(fā)現(xiàn)除了以上特性外,軟件網(wǎng)絡(luò)同時(shí)具有層次性和模塊性。隨后,一些研究者從不同方面(開發(fā)語(yǔ)言、項(xiàng)目規(guī)模、分析粒度等)再次驗(yàn)證了軟件網(wǎng)絡(luò)的諸多特性并成功應(yīng)用于工程實(shí)踐。在軟件生命周期中,軟件處在一個(gè)不斷變化的環(huán)境(新需求、新應(yīng)用環(huán)境、性能改進(jìn)等)中,為適應(yīng)環(huán)境軟件系統(tǒng)必須不斷演化。Jenkins等對(duì)軟件包之間的關(guān)系進(jìn)行建模,分析一系列版本中軟件架構(gòu)圖的結(jié)構(gòu)穩(wěn)定性。Wang等獲取了Linux kernel模塊233個(gè)版本的類調(diào)用網(wǎng)絡(luò),研究軟件網(wǎng)絡(luò)的演化特性。李兵等將復(fù)雜網(wǎng)絡(luò)與演化算法相結(jié)合,提出一種新的軟件網(wǎng)絡(luò)演化模型,發(fā)現(xiàn)該方法能夠很好地刻畫實(shí)際軟件系統(tǒng)復(fù)雜網(wǎng)絡(luò)特性的涌現(xiàn)過(guò)程。潘偉豐等更是從包、類和方法3個(gè)粒度分析了軟件網(wǎng)絡(luò)中節(jié)點(diǎn)度、聚類系數(shù)、最短路徑等指標(biāo)的演化特性。Businge等研究了Eclipse系統(tǒng)及相關(guān)插件的演化規(guī)律,發(fā)現(xiàn)結(jié)果基本滿足Lehman的8項(xiàng)目演化定律。

  軟件開發(fā)團(tuán)隊(duì)的演化對(duì)軟件質(zhì)量也會(huì)帶來(lái)很大影響,研究開發(fā)者網(wǎng)絡(luò)的演化有助于更好地理解團(tuán)隊(duì)成員在參與開發(fā)過(guò)程中的改變。Ngamkajornwiwat等使用社會(huì)網(wǎng)絡(luò)分析方法研究了KOffice項(xiàng)目開發(fā)者社區(qū)的演化。Hong等討論分析了開發(fā)者合作網(wǎng)絡(luò)中冪律分布、模塊性和社區(qū)大小等屬性的演化。Datta等在IBM提供的Jazz平臺(tái)上,將開發(fā)者合作網(wǎng)絡(luò)的平均最短路徑、聚集系數(shù)、巨型組件大小和平均度等指標(biāo)與科學(xué)家合作網(wǎng)絡(luò)進(jìn)行時(shí)間序列的演化對(duì)比。Kumar等研究了貢獻(xiàn)者數(shù)、社區(qū)大小、聚類系數(shù)等6個(gè)指標(biāo)的演化。此外,Cataldo等、Lim等、Sharma等應(yīng)用社會(huì)網(wǎng)絡(luò)分析方法分別分析了分布式項(xiàng)目、合作網(wǎng)絡(luò)與涉眾投入關(guān)系、項(xiàng)目測(cè)試階段團(tuán)隊(duì)的演化。

  以上研究工作存在一個(gè)主要的不足:局限于單個(gè)網(wǎng)絡(luò)層面分析軟件系統(tǒng)中的演化問(wèn)題,忽略了軟件系統(tǒng)的社會(huì)-技術(shù)一致性,以及開發(fā)者合作網(wǎng)絡(luò)與軟件網(wǎng)絡(luò)之間的相互影響。軟件是由人開發(fā)的,現(xiàn)實(shí)中,由于人員的動(dòng)態(tài)調(diào)整,尤其是核心成員的變動(dòng),可能使得原有的設(shè)計(jì)方案受到影響,最后導(dǎo)致軟件結(jié)構(gòu)發(fā)生變化。針對(duì)此類情況,僅從軟件網(wǎng)絡(luò)或開發(fā)者網(wǎng)絡(luò)的演化分析并不能全面反應(yīng)實(shí)際軟件系統(tǒng)的演化問(wèn)題。

  2 研究方法

  本文的研究主要分為3部分,首先利用我們團(tuán)隊(duì)開發(fā)的聚焦爬蟲工具從Sourcforge.net網(wǎng)站爬取開源項(xiàng)目Vuze的郵件列表信息,并結(jié)合使用TortoiseSVN工具導(dǎo)出該項(xiàng)目的版本日志信息;根據(jù)網(wǎng)上提供的項(xiàng)目版本信息,使用Dependencyfinder工具解析源代碼構(gòu)建軟件網(wǎng)絡(luò),再根據(jù)所獲取的項(xiàng)目歷史信息構(gòu)建開發(fā)者網(wǎng)絡(luò);基于所得的軟件網(wǎng)絡(luò)與開發(fā)者網(wǎng)絡(luò),進(jìn)行協(xié)同演化分析。

  1) 數(shù)據(jù)獲取。我們的工作需要具備獲取項(xiàng)目源代碼和修改日志相關(guān)信息的權(quán)限,所以選取開源軟件為實(shí)

  驗(yàn)對(duì)象。開源軟件Vuze(原名Azureus)是一款知名的采用BitTorrent協(xié)議的P2P文件共享客戶端軟件,可用于查找/下載種子文件。該軟件項(xiàng)目的開發(fā)信息都公開部署在開源平臺(tái)Sourceforge.net上,任何感興趣的開發(fā)者都可以為項(xiàng)目提供個(gè)人的貢獻(xiàn)。通常一個(gè)成功的開源軟件在其生命周期中都會(huì)有一系列版本,本文選取從版本4.3.1.0開始的10個(gè)連續(xù)版本作為演化分析對(duì)象,為便于描述,我們將版本V4310標(biāo)記為1,依此類推版本V4502標(biāo)記為10。

  針對(duì)每個(gè)目標(biāo)版本,我們先編譯源代碼并將編譯后的壓縮文件.zip導(dǎo)入dependencyFinder中,得到.xml解析文件;然后利用自行開發(fā)的工具分析.xml解析文件,獲取類之間的依賴關(guān)系并保存為.net網(wǎng)絡(luò)格式;最后利用網(wǎng)絡(luò)可視化工具Gephi即可呈現(xiàn)對(duì)應(yīng)的軟件網(wǎng)絡(luò)。另外,我們根據(jù)對(duì)應(yīng)版本的提交時(shí)間,有選擇地爬取項(xiàng)目的郵件列表信息與提交日志。我們先對(duì)開發(fā)者信息進(jìn)行去重,例如Paul Gardner與P.Gardner實(shí)際上是指同一個(gè)開發(fā)者;以往在對(duì)郵件列表信息處理時(shí),會(huì)發(fā)現(xiàn)同一個(gè)開發(fā)者使用多個(gè)郵箱進(jìn)行交互的情況,而本次處理過(guò)程中并未發(fā)現(xiàn)此類情況。最后我們把在同一個(gè)線程出現(xiàn)和修改了同一個(gè)類文件的開發(fā)者間視為有一條合作連邊,構(gòu)建無(wú)向非加權(quán)開發(fā)者網(wǎng)絡(luò)。

  2) 網(wǎng)絡(luò)模型。軟件網(wǎng)絡(luò)模型:根據(jù)選取的粒度不同,常用的軟件網(wǎng)絡(luò)有包級(jí)軟件網(wǎng)絡(luò)、類級(jí)軟件網(wǎng)絡(luò)和方法級(jí)軟件網(wǎng)絡(luò)。考慮到包級(jí)粒度過(guò)于粗糙而方法級(jí)粒度一定程度上太細(xì)會(huì)加重?cái)?shù)據(jù)處理負(fù)擔(dān),本文所使用的網(wǎng)絡(luò)是基于類之間依賴關(guān)系的軟件網(wǎng)絡(luò)(Software Dependency Network,簡(jiǎn)稱SDN),定義為:Gc=(Vc,Ec),其中Vc為節(jié)點(diǎn)集,即為開源軟件中所有的類和接口;Ec為節(jié)點(diǎn)對(duì)之間的邊集,即為對(duì)象之間的關(guān)聯(lián)關(guān)系。在CDN中,4種情況下類A與類B之間被視為存在關(guān)聯(lián)關(guān)系:類A與類B之間有繼承關(guān)系;類A與接口B之間有實(shí)現(xiàn)關(guān)系;類A中有類B的變量;類A中的方法調(diào)用了類B對(duì)象。在軟件實(shí)現(xiàn)中,類之間的依賴關(guān)系是有向的,而考慮到開發(fā)者合作的相互性,我們的軟件網(wǎng)絡(luò)為無(wú)向非加權(quán)網(wǎng)絡(luò),即類A與類B之間只有存在以上4種關(guān)系中的至少一種便有eab=1,否則eab=0。關(guān)于軟件網(wǎng)絡(luò)的詳細(xì)介紹,推薦感興趣的讀者參考我們之前的工作。

  開發(fā)者網(wǎng)絡(luò)模型:開源軟件社區(qū)中的開發(fā)者大部分是來(lái)自世界各地的志愿者,他們加入一個(gè)開源軟件的開發(fā)主要是為了增加開發(fā)經(jīng)驗(yàn)和體檢虛擬團(tuán)隊(duì)合作的樂(lè)趣,通過(guò)知識(shí)共享、信息交互體現(xiàn)群體智慧在軟件開發(fā)過(guò)程中的作用。開發(fā)者可以通過(guò)各種交互渠道,如郵件列表、版本控制工具CVS/SVN/Git、Bug庫(kù)和論壇等,來(lái)實(shí)現(xiàn)交互。在構(gòu)建開發(fā)者合作網(wǎng)絡(luò)(Developer Collaboration Network,簡(jiǎn)稱DCN)過(guò)程中,用Gd=(Vd,Ed)表示一個(gè)開發(fā)者網(wǎng)絡(luò),其中Vd代表參與項(xiàng)目的開發(fā)者,Ed為開發(fā)者之間的合作,即若開發(fā)者C 與開發(fā)者D 參與了同一任務(wù)(包括bug修復(fù),功能改進(jìn))則被視為存在一條合作連邊ecd=1,否則ecd=0。本文沒(méi)有考慮兩個(gè)開發(fā)者間的合作次數(shù)。

  3 演化分析

  3.1 節(jié)點(diǎn)與邊的協(xié)同演化

  網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)與邊數(shù)直接反映了一個(gè)網(wǎng)絡(luò)的規(guī)模,一個(gè)開源軟件系統(tǒng)的軟件網(wǎng)絡(luò)節(jié)點(diǎn)代表系統(tǒng)中類的個(gè)數(shù),而邊代表類之間的依賴關(guān)系,功能越多類越多,邊越多系統(tǒng)越復(fù)雜。因此,軟件網(wǎng)絡(luò)規(guī)模的變化能夠體現(xiàn)軟件系統(tǒng)內(nèi)部結(jié)構(gòu)復(fù)雜性的變化。與軟件網(wǎng)絡(luò)相對(duì)應(yīng),開源社區(qū)開發(fā)者合作網(wǎng)絡(luò)中節(jié)點(diǎn)代表參與的社區(qū)開發(fā)者,開源社區(qū)中的開發(fā)者可自由選擇感興趣的項(xiàng)目,因此節(jié)點(diǎn)規(guī)模間接反映項(xiàng)目的受歡迎程度;開發(fā)者間的合作緊密程度可通過(guò)網(wǎng)絡(luò)的連邊進(jìn)行體現(xiàn),邊越多表示開發(fā)者間合作越緊密,加權(quán)網(wǎng)絡(luò)中邊的權(quán)重還可表示合作的頻率。已有研究關(guān)注開發(fā)者潛在合作同行的推薦,以緩解合作的稀疏性。

  為分析兩類網(wǎng)絡(luò)節(jié)點(diǎn)與邊的演化情況,分別給出了它們?cè)?0個(gè)版本中的變化趨勢(shì),其中橫軸表示每個(gè)版本對(duì)應(yīng)的版本序列號(hào)(1-10),縱軸表示對(duì)應(yīng)的指標(biāo)值。顯示SDN網(wǎng)絡(luò)與DCN網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)均隨時(shí)間不斷增多,只是增長(zhǎng)趨勢(shì)有所不同。SDN網(wǎng)絡(luò)中節(jié)點(diǎn)與邊的增長(zhǎng)在一定周期內(nèi)幅度很小,之后存在一個(gè)大的增加,隨后又保持相對(duì)穩(wěn)定,如版本1-3,4-7,8-10這3個(gè)階段增長(zhǎng)幅度很少,可能的解釋是這些階段主要負(fù)責(zé)系統(tǒng)的維護(hù)工作,無(wú)新的功能添加;而3-4,7-8之間卻有一個(gè)大幅度的增長(zhǎng),分別增加了90和98個(gè)類文件,說(shuō)明在這兩個(gè)階段版本間有新的功能添加。SDN網(wǎng)絡(luò)規(guī)模的演化也表明大致3-4個(gè)版本周期后會(huì)有一次大的更新。

  雖然同樣呈增長(zhǎng)趨勢(shì),但DCN網(wǎng)絡(luò)與SDN網(wǎng)絡(luò)的演化趨勢(shì)明顯存在差異。首先,開發(fā)者數(shù)量線性增長(zhǎng)更明顯,不存在周期性增長(zhǎng)的現(xiàn)象,其中一個(gè)主要原因可能與開源社區(qū)的零散、自由的松耦合合作方式有關(guān),感興趣的開發(fā)者任何時(shí)刻都可以參與項(xiàng)目提供貢獻(xiàn),這種自愿性使得項(xiàng)目成員隨時(shí)間一直增長(zhǎng),經(jīng)歷10個(gè)版本,開發(fā)者數(shù)由原來(lái)的38人增加到144人。其次,DCN 網(wǎng)絡(luò)中邊的'增長(zhǎng)幅度相對(duì)更緩慢,說(shuō)明合作并不緊密;在版本6-9期間,網(wǎng)絡(luò)的合作僅增加了18。需要注意的是,DCN網(wǎng)絡(luò)中開發(fā)者既可以自由加入,同樣可以隨時(shí)離開,所以這里的增長(zhǎng)都是相對(duì)前一個(gè)時(shí)間段而言。

  實(shí)驗(yàn)結(jié)果表明:DCN網(wǎng)絡(luò)與SDN網(wǎng)絡(luò)的規(guī)模隨時(shí)間均滿足持續(xù)增長(zhǎng)規(guī)律,只是SDN網(wǎng)絡(luò)節(jié)點(diǎn)與邊的增長(zhǎng)趨勢(shì)表現(xiàn)出一定的周期性,而DCN網(wǎng)絡(luò)的線性增長(zhǎng)趨勢(shì)更明顯,但節(jié)點(diǎn)與邊增長(zhǎng)不同步。

  4 討論

  很明顯,DCN網(wǎng)絡(luò)與SDN網(wǎng)絡(luò)的規(guī)模差別甚大,他們的演化方式也不同。一個(gè)成型的軟件系統(tǒng)在維護(hù)過(guò)程中僅需修改少量的模塊,而開發(fā)人員變化可能更大。開源社區(qū)中開發(fā)者往往分布在世界各地,不受時(shí)間、地域和文化等因素的約束,任何有能力的個(gè)人都可以提供問(wèn)題的解決方案,甚至一些開發(fā)者只是在某一個(gè)版本中做出貢獻(xiàn),在以后的版本中都不加參與。這種“低門檻”正是為什么DCN網(wǎng)絡(luò)節(jié)點(diǎn)呈明顯的線性增長(zhǎng)的一個(gè)主要原因。軟件系統(tǒng)的每個(gè)版本并不會(huì)一直有新的功能添加,有些版本只是修改上一版本中存在的缺陷問(wèn)題,這種修復(fù)工作一般不會(huì)導(dǎo)致網(wǎng)絡(luò)規(guī)模的明顯變化。另外,SDN網(wǎng)絡(luò)規(guī)模與DCN網(wǎng)絡(luò)規(guī)模并不成正比,表明開發(fā)團(tuán)隊(duì)的壯大并不會(huì)直接影響系統(tǒng)內(nèi)部結(jié)構(gòu)的復(fù)雜性。

  平均度〈k〉可反映一個(gè)網(wǎng)絡(luò)中節(jié)點(diǎn)的平均連接程度,在軟件工程實(shí)踐中,SDN網(wǎng)絡(luò)〈k〉有助于項(xiàng)目負(fù)責(zé)人根據(jù)需要對(duì)新建與維護(hù)的工作量進(jìn)行成本預(yù)測(cè),DCN網(wǎng)絡(luò)〈k〉可為評(píng)估項(xiàng)目完成時(shí)間與團(tuán)隊(duì)協(xié)調(diào)代價(jià)提供參考;加上SDN網(wǎng)絡(luò)與DCN網(wǎng)絡(luò)最短路徑均小于6,聚類系數(shù)較大且隨時(shí)間還有不同程度的增大,說(shuō)明在STN網(wǎng)絡(luò)中,盡管SDN網(wǎng)絡(luò)與DCN網(wǎng)絡(luò)的一些指標(biāo)增長(zhǎng)并不同步,但隨著時(shí)間的變化,兩類網(wǎng)絡(luò)中節(jié)點(diǎn)的直接或間接的關(guān)聯(lián)關(guān)系會(huì)越來(lái)越明顯。根據(jù)開發(fā)者的開發(fā)歷史信息與DCN網(wǎng)絡(luò)的“小世界”特性,一個(gè)修改任務(wù)可以很快分配到具備完成任務(wù)能力的人手中。

  隨著需求的變動(dòng)與運(yùn)行環(huán)境的改變,軟件系統(tǒng)的結(jié)構(gòu)會(huì)相應(yīng)變動(dòng),而模塊度的波動(dòng)是最直觀的體現(xiàn)。SDN網(wǎng)絡(luò)模塊度的演化可用于軟件重構(gòu),例如兩個(gè)版本間的模塊度大幅度下降意味著存在重構(gòu)點(diǎn)。相對(duì)于SDN網(wǎng)絡(luò),DCN網(wǎng)絡(luò)的抱團(tuán)現(xiàn)象不明顯且波動(dòng)較大,說(shuō)明社區(qū)開發(fā)者更多的是小范圍的局部合作,整體上合作比較稀疏。眾所周知,這種合作不利于知識(shí)的傳播,所以可根據(jù)DCN網(wǎng)絡(luò)中模塊度的變化對(duì)社區(qū)成員合作進(jìn)行協(xié)調(diào),提供更多的交互渠道,建立開發(fā)者推薦和激勵(lì)方法。

  通過(guò)對(duì)比STN網(wǎng)絡(luò)中DCN網(wǎng)絡(luò)與SDN網(wǎng)絡(luò)在一些指標(biāo)上的演化,我們得到了一些有趣的發(fā)現(xiàn),但本文也存在一些不足之處:首先,10個(gè)版本的時(shí)間跨度并不相等,我們僅以網(wǎng)上提供的提交時(shí)間為劃分基準(zhǔn),雖然在數(shù)據(jù)處理過(guò)程中不可避免會(huì)引入一些偏差,但實(shí)驗(yàn)結(jié)果表明,這些小的偏差并沒(méi)有影響最終的演化分析,所以,文中的發(fā)現(xiàn)具有一定的代表性。其次,開發(fā)者的歷史信息只考慮了郵件列表和提交日期,針對(duì)開發(fā)者間的合作,我們假設(shè)參與同一個(gè)任務(wù)的開發(fā)者間存在合作,且構(gòu)建的DCN網(wǎng)絡(luò)為無(wú)權(quán)網(wǎng)絡(luò),無(wú)法呈現(xiàn)他們之間的合作次數(shù)。雖然DCN網(wǎng)絡(luò)的定義比較狹隘,但很多已有研究工作采用了這種基于“共事”關(guān)系構(gòu)建DCN網(wǎng)絡(luò)的方法,并證實(shí)了這種DCN網(wǎng)絡(luò)的有效性。

  5 總結(jié)與展望

  隨軟件版本的更新,軟件網(wǎng)絡(luò)與開發(fā)者合作網(wǎng)絡(luò)的規(guī)模不斷增大,軟件網(wǎng)絡(luò)以3-4個(gè)版本為周期有規(guī)律地增長(zhǎng),而開發(fā)者合作網(wǎng)絡(luò)呈明顯的線性增長(zhǎng);兩類網(wǎng)絡(luò)的平均度均滿足近似線性增長(zhǎng),但整體上增長(zhǎng)并不一致;它們均有“小世界”特性,且最短路徑都表現(xiàn)為階段性下降,但開發(fā)者間局部合作更明顯;它們的社區(qū)結(jié)構(gòu)都不斷地變化,且整體上模塊度呈下降趨勢(shì),但開發(fā)者合作網(wǎng)絡(luò)的變化更大。總之,我們的工作發(fā)現(xiàn)開源軟件系統(tǒng)的社會(huì)-技術(shù)網(wǎng)絡(luò)模型中兩類網(wǎng)絡(luò)既有共性又有差異,一定程度上既相互促進(jìn)又相互影響。

  我們的下一步工作將主要關(guān)注兩個(gè)方面:引入更多的版本,考慮不同語(yǔ)言(除Java之外)、不同規(guī)模的軟件系統(tǒng)作為研究對(duì)象,進(jìn)一步驗(yàn)證并豐富我們的結(jié)論;軟件網(wǎng)絡(luò)中類之間的依賴實(shí)際是有向帶權(quán)重的,開發(fā)者合作網(wǎng)絡(luò)中合作的次數(shù)也會(huì)對(duì)結(jié)果產(chǎn)生一定影響,因此,考慮邊的方向與權(quán)重,能使結(jié)論更貼近現(xiàn)實(shí)和更具一般性。

【開源軟件系統(tǒng)中社會(huì)技術(shù)網(wǎng)絡(luò)的協(xié)同演化探析論文】相關(guān)文章:

開源軟件聲明范本10-25

軟件技術(shù)專業(yè)論文致謝(通用8篇)04-20

軟件系統(tǒng)維護(hù)服務(wù)合同04-25

供電企業(yè)生產(chǎn)信息管理系統(tǒng)軟件的開發(fā)相關(guān)問(wèn)題論文02-17

《離騷》中“澤”字注釋的探析11-11

管理軟件系統(tǒng)買賣合同05-28

軟件系統(tǒng)維護(hù)服務(wù)合同范本04-24

軟件管理系統(tǒng)買賣合同(6篇)04-02

軟件技術(shù)委托開發(fā)合同09-25

物業(yè)管理自考工作的探析論文09-23