開(kāi)源軟件系統中社會(huì )技術(shù)網(wǎng)絡(luò )的協(xié)同演化探析論文
引言
近十多年來(lái),復雜網(wǎng)絡(luò )理論研究逐漸得到深入和推廣,其應用非常廣泛,涉及社會(huì )學(xué)、生物、計算機等領(lǐng)域。在軟件工程領(lǐng)域,軟件系統尤其是大型軟件系統規模的持續增長(cháng)引發(fā)系統復雜性的質(zhì)變,許多大型軟件系統在內部結構、外部交互、演化方式等維度上表現出新特性。從結構方面,由于規模變大,從局部度量系統內部結構復雜性變得越來(lái)越困難,網(wǎng)絡(luò )思想有助于從全局的角度解決這一問(wèn)題。根據軟件系統內部實(shí)體(如包,類(lèi)、方法、組件等)間的依賴(lài)關(guān)系,將軟件系統抽象為一個(gè)網(wǎng)絡(luò ),即軟件網(wǎng)絡(luò )。從參與者角度而言,軟件系統的開(kāi)發(fā)不再是單個(gè)精英團隊或專(zhuān)家所能完成,而是依靠大眾開(kāi)發(fā),利用群體智慧才能達到目標,是一個(gè)典型的“社會(huì )-技術(shù)”交融系統。技術(shù)層面分析主要是對已有軟件采用逆向工程方法抽象其組織結構,構建軟件網(wǎng)絡(luò );社會(huì )層面分析主要是根據社區群體交互采用社會(huì )網(wǎng)絡(luò )分析方法,挖掘群體行為。復雜網(wǎng)絡(luò )與軟件工程的交叉研究,已引起了眾多學(xué)者的關(guān)注與認可,如李兵等基于軟件網(wǎng)絡(luò )的拓撲結構度量開(kāi)源軟件系統的復雜性,提高軟件設計質(zhì)量;Bhattachary等根據軟件網(wǎng)絡(luò )中節點(diǎn)的重要性進(jìn)行缺陷預測,為測試人員提供檢測優(yōu)先順序;鑒于軟件拓撲結構的多粒度性,潘偉豐等分別從軟件包、類(lèi)和方法3個(gè)粒度研究了開(kāi)源軟件系統的演化特性。
軟件網(wǎng)絡(luò )的研究結合了復雜網(wǎng)絡(luò )和軟件工程理論,它以軟件系統的結構特征為切入點(diǎn),將復雜網(wǎng)絡(luò )的理論應用到軟件工程領(lǐng)域。持續演化是計算機軟件的固有特性,了解和發(fā)現軟件演化規律,有助于提高軟件產(chǎn)品質(zhì)量,降低軟件開(kāi)發(fā)和維護成本。針對軟件演化問(wèn)題,Lehman提出8個(gè)典型的定律,涉及軟件的規模、質(zhì)量、復雜度、生產(chǎn)率與開(kāi)發(fā)過(guò)程等。目前,隨著(zhù)軟件的網(wǎng)絡(luò )化趨勢越來(lái)越明顯,軟件與網(wǎng)絡(luò )的關(guān)系更加密不可分,用網(wǎng)絡(luò )的觀(guān)點(diǎn)來(lái)分析軟件演化,為軟件工程實(shí)踐提供了新的視角。然而,軟件開(kāi)發(fā)是一個(gè)社會(huì )性(“人”)和技術(shù)性(“軟件”)匯聚的過(guò)程,很多已有研究只是從技術(shù)層面出發(fā),探索了軟件系統技術(shù)維度的復雜性與應用。在軟件生命周期中,從需求獲取、到系統的設計與開(kāi)發(fā),以及后期維護等階段都離不開(kāi)人的參與,即軟件系統的社會(huì )屬性。軟件的結構決定功能,而Conway定律指出系統的最終設計結構等同于設計系統的組織成員之間的交互結構。因此,一個(gè)軟件系統既是一個(gè)技術(shù)依賴(lài)的制品,也涉及一個(gè)社會(huì )交互的群體,其網(wǎng)絡(luò )模型可抽象為一個(gè)社會(huì )-技術(shù)網(wǎng)絡(luò )。
軟件系統在不斷適應環(huán)境和需求變化的過(guò)程中持續演化,軟件演化作為一種技術(shù),主要關(guān)心對軟件進(jìn)行修改的方法;作為一種現象,主要關(guān)心誰(shuí)驅動(dòng)的演化以及演化效果如何;谏鐣(huì )-技術(shù)網(wǎng)絡(luò )模型,本文嘗試從軟件演化分析角度探討社會(huì )-技術(shù)網(wǎng)絡(luò )中的協(xié)同演化問(wèn)題,彌補已有研究工作只從單一網(wǎng)絡(luò )層面審視軟件的演化過(guò)程。本文采用類(lèi)依賴(lài)關(guān)系描述軟件網(wǎng)絡(luò ),任務(wù)參與關(guān)系描述開(kāi)發(fā)者網(wǎng)絡(luò ),基于復雜網(wǎng)絡(luò )度量研究與驗證開(kāi)源軟件系統版本演化過(guò)程中存在的規律。本文的主要工作為:構建開(kāi)源軟件系統的社會(huì )-技術(shù)網(wǎng)絡(luò )模型,統計開(kāi)源軟件系統中軟件網(wǎng)絡(luò )與開(kāi)發(fā)者網(wǎng)絡(luò )的網(wǎng)絡(luò )規模、平均度、最短路徑、聚類(lèi)系數、社區結構網(wǎng)絡(luò )度量指標等;依次對比分析兩類(lèi)網(wǎng)絡(luò )在10個(gè)軟件版本中網(wǎng)絡(luò )指標的演化趨勢,發(fā)掘它們演化規律的一致性與差異。
1 相關(guān)工作
Valverde等首次將復雜網(wǎng)絡(luò )方法引入軟件結構分析中,將軟件系統的類(lèi)圖用無(wú)向網(wǎng)絡(luò )來(lái)表示,分析軟件網(wǎng)絡(luò )中的復雜網(wǎng)絡(luò )特性(如“小世界”和“無(wú)標度”),認為軟件開(kāi)發(fā)中局部?jì)?yōu)化過(guò)程可能是導致軟件網(wǎng)絡(luò )呈現這些特性的原因。Valverde等還考慮了類(lèi)之間的有向性,構建有向網(wǎng)絡(luò )對系統結構進(jìn)行研究,發(fā)現除了以上特性外,軟件網(wǎng)絡(luò )同時(shí)具有層次性和模塊性。隨后,一些研究者從不同方面(開(kāi)發(fā)語(yǔ)言、項目規模、分析粒度等)再次驗證了軟件網(wǎng)絡(luò )的諸多特性并成功應用于工程實(shí)踐。在軟件生命周期中,軟件處在一個(gè)不斷變化的環(huán)境(新需求、新應用環(huán)境、性能改進(jìn)等)中,為適應環(huán)境軟件系統必須不斷演化。Jenkins等對軟件包之間的關(guān)系進(jìn)行建模,分析一系列版本中軟件架構圖的結構穩定性。Wang等獲取了Linux kernel模塊233個(gè)版本的類(lèi)調用網(wǎng)絡(luò ),研究軟件網(wǎng)絡(luò )的演化特性。李兵等將復雜網(wǎng)絡(luò )與演化算法相結合,提出一種新的軟件網(wǎng)絡(luò )演化模型,發(fā)現該方法能夠很好地刻畫(huà)實(shí)際軟件系統復雜網(wǎng)絡(luò )特性的涌現過(guò)程。潘偉豐等更是從包、類(lèi)和方法3個(gè)粒度分析了軟件網(wǎng)絡(luò )中節點(diǎn)度、聚類(lèi)系數、最短路徑等指標的演化特性。Businge等研究了Eclipse系統及相關(guān)插件的演化規律,發(fā)現結果基本滿(mǎn)足Lehman的8項目演化定律。
軟件開(kāi)發(fā)團隊的演化對軟件質(zhì)量也會(huì )帶來(lái)很大影響,研究開(kāi)發(fā)者網(wǎng)絡(luò )的演化有助于更好地理解團隊成員在參與開(kāi)發(fā)過(guò)程中的改變。Ngamkajornwiwat等使用社會(huì )網(wǎng)絡(luò )分析方法研究了KOffice項目開(kāi)發(fā)者社區的演化。Hong等討論分析了開(kāi)發(fā)者合作網(wǎng)絡(luò )中冪律分布、模塊性和社區大小等屬性的演化。Datta等在IBM提供的Jazz平臺上,將開(kāi)發(fā)者合作網(wǎng)絡(luò )的平均最短路徑、聚集系數、巨型組件大小和平均度等指標與科學(xué)家合作網(wǎng)絡(luò )進(jìn)行時(shí)間序列的演化對比。Kumar等研究了貢獻者數、社區大小、聚類(lèi)系數等6個(gè)指標的演化。此外,Cataldo等、Lim等、Sharma等應用社會(huì )網(wǎng)絡(luò )分析方法分別分析了分布式項目、合作網(wǎng)絡(luò )與涉眾投入關(guān)系、項目測試階段團隊的演化。
以上研究工作存在一個(gè)主要的不足:局限于單個(gè)網(wǎng)絡(luò )層面分析軟件系統中的演化問(wèn)題,忽略了軟件系統的社會(huì )-技術(shù)一致性,以及開(kāi)發(fā)者合作網(wǎng)絡(luò )與軟件網(wǎng)絡(luò )之間的相互影響。軟件是由人開(kāi)發(fā)的,現實(shí)中,由于人員的動(dòng)態(tài)調整,尤其是核心成員的變動(dòng),可能使得原有的設計方案受到影響,最后導致軟件結構發(fā)生變化。針對此類(lèi)情況,僅從軟件網(wǎng)絡(luò )或開(kāi)發(fā)者網(wǎng)絡(luò )的演化分析并不能全面反應實(shí)際軟件系統的演化問(wèn)題。
2 研究方法
本文的研究主要分為3部分,首先利用我們團隊開(kāi)發(fā)的聚焦爬蟲(chóng)工具從Sourcforge.net網(wǎng)站爬取開(kāi)源項目Vuze的郵件列表信息,并結合使用TortoiseSVN工具導出該項目的版本日志信息;根據網(wǎng)上提供的項目版本信息,使用Dependencyfinder工具解析源代碼構建軟件網(wǎng)絡(luò ),再根據所獲取的項目歷史信息構建開(kāi)發(fā)者網(wǎng)絡(luò );基于所得的軟件網(wǎng)絡(luò )與開(kāi)發(fā)者網(wǎng)絡(luò ),進(jìn)行協(xié)同演化分析。
1) 數據獲取。我們的工作需要具備獲取項目源代碼和修改日志相關(guān)信息的權限,所以選取開(kāi)源軟件為實(shí)
驗對象。開(kāi)源軟件Vuze(原名Azureus)是一款知名的采用BitTorrent協(xié)議的P2P文件共享客戶(hù)端軟件,可用于查找/下載種子文件。該軟件項目的開(kāi)發(fā)信息都公開(kāi)部署在開(kāi)源平臺Sourceforge.net上,任何感興趣的開(kāi)發(fā)者都可以為項目提供個(gè)人的貢獻。通常一個(gè)成功的開(kāi)源軟件在其生命周期中都會(huì )有一系列版本,本文選取從版本4.3.1.0開(kāi)始的10個(gè)連續版本作為演化分析對象,為便于描述,我們將版本V4310標記為1,依此類(lèi)推版本V4502標記為10。
針對每個(gè)目標版本,我們先編譯源代碼并將編譯后的壓縮文件.zip導入dependencyFinder中,得到.xml解析文件;然后利用自行開(kāi)發(fā)的工具分析.xml解析文件,獲取類(lèi)之間的依賴(lài)關(guān)系并保存為.net網(wǎng)絡(luò )格式;最后利用網(wǎng)絡(luò )可視化工具Gephi即可呈現對應的軟件網(wǎng)絡(luò )。另外,我們根據對應版本的提交時(shí)間,有選擇地爬取項目的郵件列表信息與提交日志。我們先對開(kāi)發(fā)者信息進(jìn)行去重,例如Paul Gardner與P.Gardner實(shí)際上是指同一個(gè)開(kāi)發(fā)者;以往在對郵件列表信息處理時(shí),會(huì )發(fā)現同一個(gè)開(kāi)發(fā)者使用多個(gè)郵箱進(jìn)行交互的情況,而本次處理過(guò)程中并未發(fā)現此類(lèi)情況。最后我們把在同一個(gè)線(xiàn)程出現和修改了同一個(gè)類(lèi)文件的開(kāi)發(fā)者間視為有一條合作連邊,構建無(wú)向非加權開(kāi)發(fā)者網(wǎng)絡(luò )。
2) 網(wǎng)絡(luò )模型。軟件網(wǎng)絡(luò )模型:根據選取的粒度不同,常用的軟件網(wǎng)絡(luò )有包級軟件網(wǎng)絡(luò )、類(lèi)級軟件網(wǎng)絡(luò )和方法級軟件網(wǎng)絡(luò )?紤]到包級粒度過(guò)于粗糙而方法級粒度一定程度上太細會(huì )加重數據處理負擔,本文所使用的網(wǎng)絡(luò )是基于類(lèi)之間依賴(lài)關(guān)系的軟件網(wǎng)絡(luò )(Software Dependency Network,簡(jiǎn)稱(chēng)SDN),定義為:Gc=(Vc,Ec),其中Vc為節點(diǎn)集,即為開(kāi)源軟件中所有的類(lèi)和接口;Ec為節點(diǎn)對之間的邊集,即為對象之間的關(guān)聯(lián)關(guān)系。在CDN中,4種情況下類(lèi)A與類(lèi)B之間被視為存在關(guān)聯(lián)關(guān)系:類(lèi)A與類(lèi)B之間有繼承關(guān)系;類(lèi)A與接口B之間有實(shí)現關(guān)系;類(lèi)A中有類(lèi)B的變量;類(lèi)A中的方法調用了類(lèi)B對象。在軟件實(shí)現中,類(lèi)之間的依賴(lài)關(guān)系是有向的,而考慮到開(kāi)發(fā)者合作的相互性,我們的軟件網(wǎng)絡(luò )為無(wú)向非加權網(wǎng)絡(luò ),即類(lèi)A與類(lèi)B之間只有存在以上4種關(guān)系中的至少一種便有eab=1,否則eab=0。關(guān)于軟件網(wǎng)絡(luò )的詳細介紹,推薦感興趣的讀者參考我們之前的工作。
開(kāi)發(fā)者網(wǎng)絡(luò )模型:開(kāi)源軟件社區中的開(kāi)發(fā)者大部分是來(lái)自世界各地的志愿者,他們加入一個(gè)開(kāi)源軟件的開(kāi)發(fā)主要是為了增加開(kāi)發(fā)經(jīng)驗和體檢虛擬團隊合作的樂(lè )趣,通過(guò)知識共享、信息交互體現群體智慧在軟件開(kāi)發(fā)過(guò)程中的作用。開(kāi)發(fā)者可以通過(guò)各種交互渠道,如郵件列表、版本控制工具CVS/SVN/Git、Bug庫和論壇等,來(lái)實(shí)現交互。在構建開(kāi)發(fā)者合作網(wǎng)絡(luò )(Developer Collaboration Network,簡(jiǎn)稱(chēng)DCN)過(guò)程中,用Gd=(Vd,Ed)表示一個(gè)開(kāi)發(fā)者網(wǎng)絡(luò ),其中Vd代表參與項目的開(kāi)發(fā)者,Ed為開(kāi)發(fā)者之間的合作,即若開(kāi)發(fā)者C 與開(kāi)發(fā)者D 參與了同一任務(wù)(包括bug修復,功能改進(jìn))則被視為存在一條合作連邊ecd=1,否則ecd=0。本文沒(méi)有考慮兩個(gè)開(kāi)發(fā)者間的合作次數。
3 演化分析
3.1 節點(diǎn)與邊的協(xié)同演化
網(wǎng)絡(luò )的節點(diǎn)數與邊數直接反映了一個(gè)網(wǎng)絡(luò )的規模,一個(gè)開(kāi)源軟件系統的軟件網(wǎng)絡(luò )節點(diǎn)代表系統中類(lèi)的個(gè)數,而邊代表類(lèi)之間的依賴(lài)關(guān)系,功能越多類(lèi)越多,邊越多系統越復雜。因此,軟件網(wǎng)絡(luò )規模的變化能夠體現軟件系統內部結構復雜性的變化。與軟件網(wǎng)絡(luò )相對應,開(kāi)源社區開(kāi)發(fā)者合作網(wǎng)絡(luò )中節點(diǎn)代表參與的社區開(kāi)發(fā)者,開(kāi)源社區中的開(kāi)發(fā)者可自由選擇感興趣的項目,因此節點(diǎn)規模間接反映項目的受歡迎程度;開(kāi)發(fā)者間的合作緊密程度可通過(guò)網(wǎng)絡(luò )的連邊進(jìn)行體現,邊越多表示開(kāi)發(fā)者間合作越緊密,加權網(wǎng)絡(luò )中邊的權重還可表示合作的頻率。已有研究關(guān)注開(kāi)發(fā)者潛在合作同行的推薦,以緩解合作的稀疏性。
為分析兩類(lèi)網(wǎng)絡(luò )節點(diǎn)與邊的演化情況,分別給出了它們在10個(gè)版本中的變化趨勢,其中橫軸表示每個(gè)版本對應的版本序列號(1-10),縱軸表示對應的指標值。顯示SDN網(wǎng)絡(luò )與DCN網(wǎng)絡(luò )的節點(diǎn)數均隨時(shí)間不斷增多,只是增長(cháng)趨勢有所不同。SDN網(wǎng)絡(luò )中節點(diǎn)與邊的增長(cháng)在一定周期內幅度很小,之后存在一個(gè)大的增加,隨后又保持相對穩定,如版本1-3,4-7,8-10這3個(gè)階段增長(cháng)幅度很少,可能的解釋是這些階段主要負責系統的維護工作,無(wú)新的功能添加;而3-4,7-8之間卻有一個(gè)大幅度的增長(cháng),分別增加了90和98個(gè)類(lèi)文件,說(shuō)明在這兩個(gè)階段版本間有新的功能添加。SDN網(wǎng)絡(luò )規模的演化也表明大致3-4個(gè)版本周期后會(huì )有一次大的更新。
雖然同樣呈增長(cháng)趨勢,但DCN網(wǎng)絡(luò )與SDN網(wǎng)絡(luò )的演化趨勢明顯存在差異。首先,開(kāi)發(fā)者數量線(xiàn)性增長(cháng)更明顯,不存在周期性增長(cháng)的現象,其中一個(gè)主要原因可能與開(kāi)源社區的零散、自由的松耦合合作方式有關(guān),感興趣的開(kāi)發(fā)者任何時(shí)刻都可以參與項目提供貢獻,這種自愿性使得項目成員隨時(shí)間一直增長(cháng),經(jīng)歷10個(gè)版本,開(kāi)發(fā)者數由原來(lái)的38人增加到144人。其次,DCN 網(wǎng)絡(luò )中邊的'增長(cháng)幅度相對更緩慢,說(shuō)明合作并不緊密;在版本6-9期間,網(wǎng)絡(luò )的合作僅增加了18。需要注意的是,DCN網(wǎng)絡(luò )中開(kāi)發(fā)者既可以自由加入,同樣可以隨時(shí)離開(kāi),所以這里的增長(cháng)都是相對前一個(gè)時(shí)間段而言。
實(shí)驗結果表明:DCN網(wǎng)絡(luò )與SDN網(wǎng)絡(luò )的規模隨時(shí)間均滿(mǎn)足持續增長(cháng)規律,只是SDN網(wǎng)絡(luò )節點(diǎn)與邊的增長(cháng)趨勢表現出一定的周期性,而DCN網(wǎng)絡(luò )的線(xiàn)性增長(cháng)趨勢更明顯,但節點(diǎn)與邊增長(cháng)不同步。
4 討論
很明顯,DCN網(wǎng)絡(luò )與SDN網(wǎng)絡(luò )的規模差別甚大,他們的演化方式也不同。一個(gè)成型的軟件系統在維護過(guò)程中僅需修改少量的模塊,而開(kāi)發(fā)人員變化可能更大。開(kāi)源社區中開(kāi)發(fā)者往往分布在世界各地,不受時(shí)間、地域和文化等因素的約束,任何有能力的個(gè)人都可以提供問(wèn)題的解決方案,甚至一些開(kāi)發(fā)者只是在某一個(gè)版本中做出貢獻,在以后的版本中都不加參與。這種“低門(mén)檻”正是為什么DCN網(wǎng)絡(luò )節點(diǎn)呈明顯的線(xiàn)性增長(cháng)的一個(gè)主要原因。軟件系統的每個(gè)版本并不會(huì )一直有新的功能添加,有些版本只是修改上一版本中存在的缺陷問(wèn)題,這種修復工作一般不會(huì )導致網(wǎng)絡(luò )規模的明顯變化。另外,SDN網(wǎng)絡(luò )規模與DCN網(wǎng)絡(luò )規模并不成正比,表明開(kāi)發(fā)團隊的壯大并不會(huì )直接影響系統內部結構的復雜性。
平均度〈k〉可反映一個(gè)網(wǎng)絡(luò )中節點(diǎn)的平均連接程度,在軟件工程實(shí)踐中,SDN網(wǎng)絡(luò )〈k〉有助于項目負責人根據需要對新建與維護的工作量進(jìn)行成本預測,DCN網(wǎng)絡(luò )〈k〉可為評估項目完成時(shí)間與團隊協(xié)調代價(jià)提供參考;加上SDN網(wǎng)絡(luò )與DCN網(wǎng)絡(luò )最短路徑均小于6,聚類(lèi)系數較大且隨時(shí)間還有不同程度的增大,說(shuō)明在STN網(wǎng)絡(luò )中,盡管SDN網(wǎng)絡(luò )與DCN網(wǎng)絡(luò )的一些指標增長(cháng)并不同步,但隨著(zhù)時(shí)間的變化,兩類(lèi)網(wǎng)絡(luò )中節點(diǎn)的直接或間接的關(guān)聯(lián)關(guān)系會(huì )越來(lái)越明顯。根據開(kāi)發(fā)者的開(kāi)發(fā)歷史信息與DCN網(wǎng)絡(luò )的“小世界”特性,一個(gè)修改任務(wù)可以很快分配到具備完成任務(wù)能力的人手中。
隨著(zhù)需求的變動(dòng)與運行環(huán)境的改變,軟件系統的結構會(huì )相應變動(dòng),而模塊度的波動(dòng)是最直觀(guān)的體現。SDN網(wǎng)絡(luò )模塊度的演化可用于軟件重構,例如兩個(gè)版本間的模塊度大幅度下降意味著(zhù)存在重構點(diǎn)。相對于SDN網(wǎng)絡(luò ),DCN網(wǎng)絡(luò )的抱團現象不明顯且波動(dòng)較大,說(shuō)明社區開(kāi)發(fā)者更多的是小范圍的局部合作,整體上合作比較稀疏。眾所周知,這種合作不利于知識的傳播,所以可根據DCN網(wǎng)絡(luò )中模塊度的變化對社區成員合作進(jìn)行協(xié)調,提供更多的交互渠道,建立開(kāi)發(fā)者推薦和激勵方法。
通過(guò)對比STN網(wǎng)絡(luò )中DCN網(wǎng)絡(luò )與SDN網(wǎng)絡(luò )在一些指標上的演化,我們得到了一些有趣的發(fā)現,但本文也存在一些不足之處:首先,10個(gè)版本的時(shí)間跨度并不相等,我們僅以網(wǎng)上提供的提交時(shí)間為劃分基準,雖然在數據處理過(guò)程中不可避免會(huì )引入一些偏差,但實(shí)驗結果表明,這些小的偏差并沒(méi)有影響最終的演化分析,所以,文中的發(fā)現具有一定的代表性。其次,開(kāi)發(fā)者的歷史信息只考慮了郵件列表和提交日期,針對開(kāi)發(fā)者間的合作,我們假設參與同一個(gè)任務(wù)的開(kāi)發(fā)者間存在合作,且構建的DCN網(wǎng)絡(luò )為無(wú)權網(wǎng)絡(luò ),無(wú)法呈現他們之間的合作次數。雖然DCN網(wǎng)絡(luò )的定義比較狹隘,但很多已有研究工作采用了這種基于“共事”關(guān)系構建DCN網(wǎng)絡(luò )的方法,并證實(shí)了這種DCN網(wǎng)絡(luò )的有效性。
5 總結與展望
隨軟件版本的更新,軟件網(wǎng)絡(luò )與開(kāi)發(fā)者合作網(wǎng)絡(luò )的規模不斷增大,軟件網(wǎng)絡(luò )以3-4個(gè)版本為周期有規律地增長(cháng),而開(kāi)發(fā)者合作網(wǎng)絡(luò )呈明顯的線(xiàn)性增長(cháng);兩類(lèi)網(wǎng)絡(luò )的平均度均滿(mǎn)足近似線(xiàn)性增長(cháng),但整體上增長(cháng)并不一致;它們均有“小世界”特性,且最短路徑都表現為階段性下降,但開(kāi)發(fā)者間局部合作更明顯;它們的社區結構都不斷地變化,且整體上模塊度呈下降趨勢,但開(kāi)發(fā)者合作網(wǎng)絡(luò )的變化更大?傊,我們的工作發(fā)現開(kāi)源軟件系統的社會(huì )-技術(shù)網(wǎng)絡(luò )模型中兩類(lèi)網(wǎng)絡(luò )既有共性又有差異,一定程度上既相互促進(jìn)又相互影響。
我們的下一步工作將主要關(guān)注兩個(gè)方面:引入更多的版本,考慮不同語(yǔ)言(除Java之外)、不同規模的軟件系統作為研究對象,進(jìn)一步驗證并豐富我們的結論;軟件網(wǎng)絡(luò )中類(lèi)之間的依賴(lài)實(shí)際是有向帶權重的,開(kāi)發(fā)者合作網(wǎng)絡(luò )中合作的次數也會(huì )對結果產(chǎn)生一定影響,因此,考慮邊的方向與權重,能使結論更貼近現實(shí)和更具一般性。
【開(kāi)源軟件系統中社會(huì )技術(shù)網(wǎng)絡(luò )的協(xié)同演化探析論文】相關(guān)文章:
開(kāi)源軟件聲明范本10-25
軟件技術(shù)專(zhuān)業(yè)論文致謝(通用8篇)04-20
軟件系統維護服務(wù)合同04-25
供電企業(yè)生產(chǎn)信息管理系統軟件的開(kāi)發(fā)相關(guān)問(wèn)題論文02-17
《離騷》中“澤”字注釋的探析11-11
管理軟件系統買(mǎi)賣(mài)合同05-28
軟件系統維護服務(wù)合同范本04-24
物業(yè)管理自考工作的探析論文09-23