郭長江
摘 要:互聯(lián)網(wǎng)的出現(xiàn)帶來了顯著的變化,軟件趨于網(wǎng)絡(luò)化,這一趨勢(shì)讓軟件以全局性資源的身份,依托網(wǎng)絡(luò)面向公眾提供豐富的資源。軟件的計(jì)算和應(yīng)用模式等也均出現(xiàn)了顯著變化。網(wǎng)絡(luò)化軟件已變成銜接網(wǎng)絡(luò)和數(shù)據(jù)資源的關(guān)鍵,與此同時(shí),網(wǎng)絡(luò)化系統(tǒng)將更加復(fù)雜,但復(fù)雜性亦為質(zhì)量不能保證的重點(diǎn)。文章將依照理論實(shí)踐成果,深入研究復(fù)雜網(wǎng)絡(luò)。
關(guān)鍵詞:軟件系統(tǒng);復(fù)雜網(wǎng)絡(luò);數(shù)據(jù)資源
軟件技術(shù)的不斷發(fā)展與互聯(lián)網(wǎng)的高度普及,促使軟件系統(tǒng)規(guī)模逐步擴(kuò)大,復(fù)雜度也日益增加,基于此,軟件開發(fā)時(shí)常陷入失控狀態(tài),無法保障產(chǎn)品質(zhì)量。為此,如何辨識(shí)、評(píng)判與管控軟件復(fù)雜性便成為軟件工程的主要挑戰(zhàn)內(nèi)容。軟件產(chǎn)品本是智能化系統(tǒng),且系統(tǒng)的結(jié)構(gòu)關(guān)乎著功能、性能等基本指標(biāo)。為對(duì)系統(tǒng)復(fù)雜性展開進(jìn)一步探究,則一定要詳細(xì)描述軟件的結(jié)構(gòu),合理量化,但結(jié)構(gòu)信息度量長期以來都不理想。經(jīng)過長期探索發(fā)現(xiàn),從復(fù)雜網(wǎng)絡(luò)層面著手探究軟件,有利于軟件復(fù)雜性量化。
1 復(fù)雜網(wǎng)絡(luò)的內(nèi)涵
從網(wǎng)絡(luò)的角度來描述客觀世界最早出現(xiàn)在1736年。其中復(fù)雜網(wǎng)絡(luò)研究的最大不同便是站在統(tǒng)計(jì)角度考量網(wǎng)絡(luò)內(nèi)部的大規(guī)模節(jié)點(diǎn)和對(duì)應(yīng)連接性質(zhì)。在復(fù)雜網(wǎng)絡(luò)中,主要性質(zhì)與參數(shù)是度、度分析以及介數(shù)等。一般將網(wǎng)絡(luò)節(jié)點(diǎn)界定成該節(jié)點(diǎn)包含的連接邊的具體數(shù)目,且網(wǎng)絡(luò)內(nèi)部節(jié)點(diǎn)分布大多通過函數(shù)來表示,基本定義是某節(jié)點(diǎn)恰巧對(duì)應(yīng)的概率。聚集系數(shù)主要用來描述網(wǎng)絡(luò)內(nèi)部節(jié)點(diǎn)的實(shí)際聚集情況。節(jié)點(diǎn)聚集系數(shù)主要指代整體鄰居連邊數(shù)目在最大連邊數(shù)目中所占的比例,而網(wǎng)絡(luò)聚集系數(shù)是各個(gè)節(jié)點(diǎn)聚集系數(shù)均值,兩節(jié)點(diǎn)距離是連接兩者最短路徑所對(duì)應(yīng)邊的數(shù)目,網(wǎng)絡(luò)直徑是任意兩點(diǎn)對(duì)應(yīng)的最大距離。介數(shù)包含邊介數(shù)與節(jié)點(diǎn)介數(shù)這兩種,代表節(jié)點(diǎn)或邊的實(shí)際影響。
2 軟件系統(tǒng)復(fù)雜網(wǎng)絡(luò)剖析
基于互聯(lián)網(wǎng)的作用,大規(guī)模和超大規(guī)模軟件現(xiàn)已問世。個(gè)人電腦剛剛普及時(shí),軟件主要依托PC平臺(tái);但在互聯(lián)網(wǎng)正式出現(xiàn)后,促使桌面應(yīng)用開始朝著網(wǎng)絡(luò)應(yīng)用過渡,無論是日常生活,還是工作均發(fā)生了較大的轉(zhuǎn)變,與此同時(shí),軟件形態(tài)也不斷改變。軟件形成于網(wǎng)絡(luò)環(huán)境中,由最初的服務(wù)系統(tǒng)至服務(wù)網(wǎng)絡(luò),且軟件行為也由單一軟件工作轉(zhuǎn)換到群體有機(jī)協(xié)作,軟件應(yīng)用由為我所有至為我所用,不管是個(gè)人的日常應(yīng)用,還是企業(yè)的基本應(yīng)用,軟件網(wǎng)絡(luò)化走向均較為明顯。隨著軟件和網(wǎng)絡(luò)的逐步融合,其計(jì)算和應(yīng)用模式等均發(fā)生了顯著變化,基本規(guī)模、用戶的實(shí)際數(shù)量和單元交互等均呈現(xiàn)出數(shù)量級(jí)增長,和傳統(tǒng)軟件相比,已演變成具有網(wǎng)絡(luò)化特性的復(fù)雜系統(tǒng)?;诖?,如何尋求統(tǒng)一、可行的方式來理解與調(diào)控系統(tǒng)復(fù)雜性亟待攻克。
解決該問題的主要出路是網(wǎng)絡(luò),這是因?yàn)檐浖慕Y(jié)構(gòu)可經(jīng)由網(wǎng)絡(luò)拓?fù)鋪沓尸F(xiàn)。軟件工程即把系統(tǒng)化與可檢驗(yàn)的方法融入到軟件開發(fā)以及運(yùn)行維護(hù)中。無論對(duì)哪一個(gè)硬件工程均較為顯著,但軟件工程并非形成于物理量測(cè)度以及物理定律基礎(chǔ)之上,為此,幫助認(rèn)識(shí)軟件與描述軟件屬性的基本量化方法便成為預(yù)估、完善軟件工程的重點(diǎn)。
復(fù)雜網(wǎng)路研究主要是利用把研究對(duì)象轉(zhuǎn)換成節(jié)點(diǎn)和邊共同構(gòu)建形成的網(wǎng)絡(luò)形式,隨即探索真實(shí)世界網(wǎng)絡(luò)的主要特點(diǎn)。軟件系統(tǒng)內(nèi)部的拓?fù)浣Y(jié)構(gòu)可通過網(wǎng)絡(luò)來展現(xiàn),從不同標(biāo)度而言,軟件系統(tǒng)主要包含服務(wù)、模塊和子系統(tǒng)等不同元素,利用元素交互達(dá)成計(jì)算功能。站在軟件網(wǎng)絡(luò)模型層面來說,節(jié)點(diǎn)主要是各個(gè)組成元素,而邊指代組成元素內(nèi)部的利用關(guān)系,例如,數(shù)據(jù)交換和消息傳遞等?,F(xiàn)下,利用復(fù)雜網(wǎng)絡(luò)理論開展的研究活動(dòng)主要面向開放源代碼系統(tǒng)。具體是通過逆向工程方法獲取組織結(jié)構(gòu)再分析,明確復(fù)雜網(wǎng)絡(luò)特征,最終得到整體性質(zhì)。
當(dāng)下復(fù)雜網(wǎng)絡(luò)研究和軟件工程學(xué)互相整合的探索工作正處于初級(jí)階段,利用軟件系統(tǒng)結(jié)構(gòu)屬性剖析為著手點(diǎn),通過對(duì)軟件系統(tǒng)內(nèi)部的拓?fù)浣Y(jié)構(gòu)與系統(tǒng)形成機(jī)理、復(fù)雜性評(píng)測(cè)探究,在此獲得了顯著的成果。
3 依托于復(fù)雜網(wǎng)絡(luò)形成的軟件復(fù)雜性評(píng)測(cè)
復(fù)雜系統(tǒng)理論要求從整體層面把控系統(tǒng),并非僅僅關(guān)注局部。大多情況下,復(fù)雜系統(tǒng)通常在整體上表現(xiàn)出全新特征,該特征僅僅存在于系統(tǒng)層次,并非系統(tǒng)開發(fā)人員特意為之。探究這些特征有利于軟件系統(tǒng)復(fù)雜性剖析,另外,復(fù)雜網(wǎng)絡(luò)相關(guān)理論知識(shí)與方法均能較好展現(xiàn)軟件系統(tǒng)的具體行為與基本結(jié)構(gòu),填補(bǔ)原有度量方法的空白,例如,強(qiáng)調(diào)微觀設(shè)計(jì),不具備內(nèi)部屬性與外部整體特征的有效映射等。為此,軟件工程領(lǐng)域現(xiàn)有研究人員開始嘗試將相關(guān)方法整合到軟件度量學(xué)層面。
Vasa等依照軟件網(wǎng)絡(luò)邊數(shù)與節(jié)點(diǎn)數(shù)對(duì)應(yīng)的關(guān)系探究系統(tǒng)結(jié)構(gòu)的實(shí)際變化,以此來預(yù)估軟件的基本規(guī)模和搭建該系統(tǒng)需付出的代價(jià)。在此之后,提出了一套全新的度量指標(biāo),以此來檢測(cè)和評(píng)判開發(fā)活動(dòng)中軟件結(jié)構(gòu)的實(shí)際穩(wěn)定性變化,同時(shí),找到類的規(guī)模與復(fù)雜性分布依照時(shí)間推移呈現(xiàn)的變化,但那些存在較大入度的類強(qiáng)調(diào)被修改,這有利于系統(tǒng)開發(fā)工作的進(jìn)行。Liu等將軟件系統(tǒng)比成軟件耦合網(wǎng)絡(luò)來進(jìn)行研究。
近幾年,研究者強(qiáng)調(diào)把復(fù)雜網(wǎng)絡(luò)方法與具體的程序整合到一起,以此來科學(xué)評(píng)判系統(tǒng)與編寫的代碼。Melton等剖析了81個(gè)開源系統(tǒng)類內(nèi)部的依賴關(guān)系,得出其他類訪問對(duì)應(yīng)的非私有成員內(nèi)部的類極有可能形成依賴環(huán),以此來增加系統(tǒng)復(fù)雜性,降低穩(wěn)定性,促進(jìn)程序編寫。Zhao等把社會(huì)網(wǎng)分析整合到軟件網(wǎng)絡(luò)自身結(jié)構(gòu)復(fù)雜性剖析問題上,獲得靜態(tài)結(jié)構(gòu)復(fù)雜性研究和形成于k-score之上的結(jié)構(gòu)定性這兩種分析方法,上述度量指標(biāo)有效性經(jīng)由開源軟件系統(tǒng)得到驗(yàn)證,這有利于系統(tǒng)設(shè)計(jì)工作的進(jìn)行,并提供了理論指導(dǎo)。
復(fù)雜網(wǎng)絡(luò)和軟件工程之間的交叉探索正處于初級(jí)階段,雖然取得了顯著的成果,但現(xiàn)下大部分研究主要停滯在發(fā)現(xiàn)與解釋內(nèi)容上,具體是探索軟件網(wǎng)絡(luò)結(jié)構(gòu)整體特性和主要形成機(jī)制,這和工程實(shí)踐存在差距。度量方面的探索雖然從工程層面著手,然而,其實(shí)用性亟待進(jìn)一步探索。換而言之,即便提出某些度量方法,卻零散,缺少一定的工具支撐,無法進(jìn)行有效的檢驗(yàn)與綜合應(yīng)用,不能合理指導(dǎo)開發(fā)活動(dòng),在未來需深入商討與探究,最終將其解決。
4 結(jié)束語
軟件結(jié)構(gòu)與軟件開發(fā)緊密相關(guān),軟件結(jié)構(gòu)自身的復(fù)雜性決定著軟件開發(fā)成本,軟件工程旨在通過軟件結(jié)構(gòu)探究來研制出高質(zhì)量軟件。但因不能直接分析與全面把控軟件外部特性,一般利用結(jié)構(gòu)改進(jìn)來實(shí)現(xiàn)設(shè)計(jì)優(yōu)良軟件的目的。目前,復(fù)雜網(wǎng)絡(luò)研究已積累了一定的經(jīng)驗(yàn)成果,這為大規(guī)模軟件系統(tǒng)探究提供了重要保障,并將不斷成熟和完善。
參考文獻(xiàn)
[1]閆棟,祁國寧.大規(guī)模軟件系統(tǒng)的無標(biāo)度特性與演化模型[J].物理學(xué)報(bào),2016,55(8):3799-3804.
[2]秦懷斌,郭理.基于用例圖的軟件系統(tǒng)復(fù)雜網(wǎng)絡(luò)特性度量[J].微電子學(xué)與計(jì)算機(jī),2015,29(7):72-75,80.
[3]楊峰.基于復(fù)雜網(wǎng)絡(luò)的軟件系統(tǒng)設(shè)計(jì)的研究[D].湖南師范大學(xué),2015.
[4]韓言妮,李德毅,陳桂生,等.軟件網(wǎng)絡(luò)的多粒度拓?fù)涮匦苑治黾捌鋺?yīng)用[J].計(jì)算機(jī)學(xué)報(bào),2016,32(9):1711-1721.
[5]劉曉林.基于復(fù)雜網(wǎng)絡(luò)理論的軟件測(cè)試技術(shù)研究[D].南京理工大學(xué),2015.