摘 要:軟件的網(wǎng)絡(luò)化互聯(lián)網(wǎng)軟件領(lǐng)域的一場巨大革命,大眾用戶可以通過網(wǎng)絡(luò)獲得了各種其資源的應(yīng)用服務(wù),軟件也成為了一種全局性的資源,這也帶來了軟件的盈利模式、產(chǎn)品形態(tài)、應(yīng)用模式和計算模式的轉(zhuǎn)變。這也使得網(wǎng)絡(luò)化的軟件系統(tǒng)成為了一個復(fù)雜系統(tǒng),軟件系統(tǒng)的開發(fā)受到了網(wǎng)絡(luò)的影響。本文對軟件系統(tǒng)的復(fù)雜網(wǎng)絡(luò)研究進展進行了簡要的分析。
關(guān)鍵詞:軟件系統(tǒng);復(fù)雜網(wǎng)絡(luò);研究進展;
文章編號:1674-3520(2015)-07-00-01
由于互聯(lián)網(wǎng)的普及和軟件技術(shù)的發(fā)展,軟件系統(tǒng)也變得越來越復(fù)雜,軟件產(chǎn)品的質(zhì)量難以得到保障,這就需要對軟件的復(fù)雜性進行管理、度量、認識和控制。軟件系統(tǒng)的可靠性、性能和其它功能都受到系統(tǒng)拓撲結(jié)構(gòu)的影響。因此要合理有效的量化軟件結(jié)構(gòu),把握軟件的本質(zhì)。
一、軟件系統(tǒng)具有復(fù)雜性
摩爾定律是計算機硬件性能發(fā)展中的一個穩(wěn)定定律,這也使得硬件的體積越來越小,價格也不斷的降低。然而對于軟件來說,其發(fā)展卻具有復(fù)雜性。例如微軟公司開發(fā)的windows軟件,在九年時間內(nèi)從windows3.1發(fā)展到了windows2000,卻只有九倍左右的源代碼行數(shù)增長。這也造成了資源要求和軟件系統(tǒng)的實際性能提升不成比例。由于軟件這較高的硬件配置要求,而且經(jīng)常出現(xiàn)安全漏洞,造成了軟件系統(tǒng)的復(fù)雜性[1]。
軟件的復(fù)雜性包括構(gòu)建軟件過程中認知的復(fù)雜性、認知方式造成的翻譯復(fù)雜性、軟件系統(tǒng)本身多元素和多狀態(tài)的復(fù)雜性,以及與描述問題域的復(fù)雜性。復(fù)雜性會隨著時間的推移而增加,對軟件的二次開發(fā)、維護和過程管理造成影響,甚至成為軟件錯誤的主要原因。
二、復(fù)雜網(wǎng)絡(luò)造成的軟件的復(fù)雜系統(tǒng)
隨著互聯(lián)網(wǎng)的發(fā)展,出現(xiàn)了超大規(guī)模的軟件系統(tǒng),在改變?nèi)藗兊墓ぷ魃罘绞降耐瑫r也改變了軟件的形態(tài)。從單一的軟件系統(tǒng)工作發(fā)展為群體軟件之間的協(xié)同與交互,從為系統(tǒng)服務(wù)向為網(wǎng)絡(luò)服務(wù)轉(zhuǎn)變。在這種趨勢下,網(wǎng)絡(luò)軟件不斷融合,軟件的盈利模式、產(chǎn)品形態(tài)、應(yīng)用模式和計算模式都發(fā)生了改變。需要對軟件系統(tǒng)的復(fù)雜性進行有效的控制。由于可以用網(wǎng)絡(luò)拓撲來表示軟件的自身結(jié)構(gòu),因此在軟件的維護、運行和開發(fā)中可以使用可度量、規(guī)范化、系統(tǒng)化的方法[2]。當(dāng)然軟件工程并非以物理定律和基本物理量的測度為依據(jù),因此要對網(wǎng)絡(luò)工程化進行優(yōu)化、預(yù)測和評價,就必須對軟件和刻畫軟件屬性的量化方法進行理解。
當(dāng)前對軟件系統(tǒng)和復(fù)雜網(wǎng)絡(luò)理論的研究主要是開放源代碼系統(tǒng),也就是從程序代碼出發(fā),到系統(tǒng)類圖,再到網(wǎng)絡(luò)模型,這也是一種反向的研究途徑??梢詫M織結(jié)構(gòu)進行分析,發(fā)現(xiàn)其中的網(wǎng)絡(luò)復(fù)雜特性。
三、分析軟件系統(tǒng)的拓撲結(jié)構(gòu)
2002年在軟件系統(tǒng)拓撲結(jié)構(gòu)分析中引進了復(fù)雜網(wǎng)絡(luò)方法。其研究對象為軟件系統(tǒng)中的類圖,將軟件系統(tǒng)的結(jié)構(gòu)用無向網(wǎng)絡(luò)來表示,也就是網(wǎng)絡(luò)模型中的節(jié)點代表類。在2003年,有關(guān)專家對原軟件進行分析和研究中也發(fā)現(xiàn)了無標(biāo)度的現(xiàn)象。這也說明系統(tǒng)中的控制流可以通過軟件系統(tǒng)模塊之間的調(diào)用和協(xié)作來得到反映,網(wǎng)絡(luò)中邊的方向具有意義,在刻畫軟件系統(tǒng)結(jié)構(gòu)時不能僅使用無向網(wǎng)絡(luò)模型[3]。因此,在本次研究中建立了軟件系統(tǒng)的有向網(wǎng)絡(luò)模型,并對六個開放源代碼的軟件系統(tǒng)進行了分析,其中面向?qū)ο筌浖念悈f(xié)作圖有三個,結(jié)構(gòu)化程序設(shè)計軟件調(diào)用圖有三個。在該研究中,不僅發(fā)現(xiàn)了無標(biāo)度和小世界的特性同樣在軟件有向網(wǎng)絡(luò)中存在,而且還指出了在面向?qū)ο筌浖到y(tǒng)中軟件網(wǎng)絡(luò)的出路堵密率分布的冪指數(shù)存在差別。也就是路途分布函數(shù)的冪指數(shù)小于初度分布函數(shù)的冪指數(shù)。在軟件網(wǎng)絡(luò)的節(jié)點中,出度分布函數(shù)的冪指數(shù)與入度分布函數(shù)的冪指數(shù)存在負相關(guān)的關(guān)系,也就是入度較小的節(jié)點出度大,出度較小的節(jié)點入度大。
總而言之,當(dāng)前國內(nèi)外已經(jīng)將軟件網(wǎng)絡(luò)模型建立起來,并且對一些軟件網(wǎng)絡(luò)的普遍拓撲特性進行了一定的解釋。然而現(xiàn)有的軟件網(wǎng)絡(luò)模型仍然不夠完善,不能提供軟件的完整視圖,也沒有體現(xiàn)軟件組成元素之間的關(guān)系。例如已有的軟件模型中就沒有體現(xiàn)面向?qū)ο筌浖蓄愔g的依賴關(guān)系存在的不同。在軟件的重用指標(biāo)中依賴關(guān)系非常重要,要對面向?qū)ο筌浖到y(tǒng)的拓撲結(jié)構(gòu)進行描述可以使用加權(quán)有向網(wǎng)絡(luò)。與此同時,當(dāng)前一般使用無權(quán)有向或者無向的網(wǎng)絡(luò)模型來標(biāo)識軟件系統(tǒng),一定程度上忽視了網(wǎng)絡(luò)中的節(jié)點屬性。因此必須深入地研究軟件系統(tǒng)的拓撲結(jié)構(gòu)。
四、形成將系統(tǒng)復(fù)雜網(wǎng)絡(luò)特性的機理
對真實系統(tǒng)的網(wǎng)絡(luò)模型的刻畫是復(fù)雜網(wǎng)絡(luò)研究的一個重要領(lǐng)域,將網(wǎng)絡(luò)模型創(chuàng)建出來,能夠使人們更好地理解網(wǎng)絡(luò)特性產(chǎn)生的原因。在工程領(lǐng)域、生物領(lǐng)域、社會網(wǎng)絡(luò)、商業(yè)領(lǐng)域的都發(fā)現(xiàn)了復(fù)雜網(wǎng)絡(luò)的特性,也就是無標(biāo)度和小世界。無標(biāo)度指的是遵循冪率分布來進行節(jié)點的度的分布,而小世界指的是網(wǎng)絡(luò)中具有較大的平均聚集系數(shù)和較小的平均最短路徑。
有研究認為形成無標(biāo)度網(wǎng)絡(luò)的主要原因使優(yōu)先連接機制和生長性,也就是網(wǎng)絡(luò)在不斷的生長。該研究用適應(yīng)性競爭模型、節(jié)點加速增長模型、非線性擇優(yōu)連接模型等對無標(biāo)度網(wǎng)絡(luò)進行解釋。其他研究者還提出了最優(yōu)化設(shè)計機制、層次增長機制,用來對網(wǎng)絡(luò)的演化進行解釋。然而現(xiàn)有的研究還是沒有對軟件系統(tǒng)的開發(fā)設(shè)計中的組織原則進行深入的分析,因此仍然還有一些復(fù)雜網(wǎng)絡(luò)特性的軟件系統(tǒng)難以得到解釋。
五、結(jié)語
本文對軟件系統(tǒng)的復(fù)雜網(wǎng)絡(luò)研究進展進行了簡要的分析,在最新的研究成果中,對軟件的復(fù)雜性進行了分析。盡管對軟件系統(tǒng)的復(fù)雜網(wǎng)絡(luò)研究的數(shù)量較多,然而當(dāng)前的研究中也仍然存在一些問題和不足,需要研究者對其繼續(xù)進行深入的研究,從而使人們能夠?qū)浖膹?fù)雜性本質(zhì)進行深入的理解。
參考文獻:
[1]方錦清.迅速發(fā)展的復(fù)雜網(wǎng)絡(luò)研究與面臨的挑戰(zhàn)[J]. 自然雜志. 2012(05)
[2]鄧丹,李南,田慧敏. 基于小世界網(wǎng)絡(luò)的NPD團隊交流網(wǎng)絡(luò)分析[J]. 研究與發(fā)展管理. 2011(04)
[3]王林,戴冠中. 復(fù)雜網(wǎng)絡(luò)中的社區(qū)發(fā)現(xiàn)——理論與應(yīng)用[J]. 科技導(dǎo)報. 2012(08)