田 鶴,趙 海
1.遼寧科技學(xué)院 工程實踐中心,遼寧 本溪 117004
2.東北大學(xué) 計算機科學(xué)與工程學(xué)院,沈陽 110004
我國的水力資源豐富,水電作為可再生資源具有綜合開發(fā)利用效益,水電產(chǎn)業(yè)的發(fā)展異軍突起。水力發(fā)電豐滿水電站是中國最早建成的大型水電站,作為東北電網(wǎng)的中流砥柱,被譽為“中國水電之母”。實驗室自主研發(fā)的水電運行仿真系統(tǒng)Wemade[1]已在中國豐滿水力發(fā)電站投入使用。目前,水電運行仿真系統(tǒng)Wemade2.0版本是豐滿水電技術(shù)學(xué)校和豐滿水電廠的教學(xué)和培訓(xùn)的輔助工具,用于學(xué)生的實踐學(xué)習(xí)和員工的技能實訓(xùn)。水電運行仿真軟件的開發(fā)應(yīng)用,不但能夠發(fā)現(xiàn)一些在實際水電運行中的問題,研究那些觸發(fā)成本極高的情況,同時為發(fā)掘水電運行時所有可能存在的缺陷,并為預(yù)測實際系統(tǒng)的運行狀態(tài)提供了一個良好的計算平臺,從而使水電站的自動化管理得到進(jìn)一步的完善和推廣。
Wemade通過仿真模型真實地描述了水電廠中各種操作控制流程以及系統(tǒng)機電設(shè)備的運行情況,這也決定了這樣的軟件系統(tǒng)模型非常復(fù)雜,是一個龐大的工程。水電站的運行情況常常不可預(yù)測,這就需要精確而健壯的監(jiān)控運行設(shè)備來維護(hù)水電站的日常工作。對水電運行仿真系統(tǒng)結(jié)構(gòu)的度量來指導(dǎo)軟件結(jié)構(gòu)的再設(shè)計勢在必行。
隨著信息技術(shù)的迅猛發(fā)展,各學(xué)科理論的滲透融合成為一種趨勢。自“小世界”效應(yīng)[2]和“無標(biāo)度”特性[3]開創(chuàng)復(fù)雜網(wǎng)絡(luò)的新紀(jì)元以來,復(fù)雜網(wǎng)絡(luò)理論已經(jīng)成為當(dāng)前網(wǎng)絡(luò)科學(xué)的前沿,包括對網(wǎng)絡(luò)中節(jié)點特性[4]、二分網(wǎng)絡(luò)[5]以及網(wǎng)絡(luò)傳播[6]等熱點問題,且廣泛應(yīng)用到社會學(xué)[7]、生物學(xué)[8]和管理學(xué)[9]等領(lǐng)域科學(xué)。將復(fù)雜網(wǎng)絡(luò)和軟件工程理論交叉研討,結(jié)合面向?qū)ο蟮能浖治龇椒?,把開源軟件的類級軟件結(jié)構(gòu)抽象成軟件網(wǎng)絡(luò)模型[10-11],利用網(wǎng)絡(luò)拓?fù)涮卣鲄?shù)研究軟件結(jié)構(gòu)是軟件度量體系的又一分支,抽取出來的軟件網(wǎng)絡(luò)可以更加清晰地了解軟件結(jié)構(gòu)的特性,在此基礎(chǔ)上能更有效地對軟件進(jìn)行更新和重構(gòu),從而提高軟件質(zhì)量。
本文通過軟件網(wǎng)絡(luò)模型,利用軟件網(wǎng)絡(luò)拓?fù)涮卣鲄?shù)來分析水電運行仿真系統(tǒng)Wemade的結(jié)構(gòu)特性,結(jié)合軟件內(nèi)部結(jié)構(gòu)來分析各個單元模塊的設(shè)計是否合理,對不足之處還需在后續(xù)版本中作進(jìn)一步更改。分析水電運行仿真系統(tǒng)的現(xiàn)有版本的特性,評估軟件系統(tǒng)的性能,旨在對軟件進(jìn)化過程中優(yōu)化軟件結(jié)構(gòu)。
水電運行仿真軟件系統(tǒng)從整體結(jié)構(gòu)來看分為兩大部分,一是硬件部分,如盤臺、計算機等硬件設(shè)備,二是計算機軟件部分[12-13]。由硬件和一些通用設(shè)備組成仿真機,用軟件通過界面操作控制流程。將整個水電站的控制中心仿真成后臺,現(xiàn)場的硬件設(shè)備仿真成前臺,傳感器信息采集功能同樣用相應(yīng)軟件模塊仿真,通過I/O接口實現(xiàn)后臺與前臺的對接,利用通信進(jìn)程來獲取和發(fā)送后臺對前臺的監(jiān)控過程中的數(shù)據(jù)。如圖1所示為水電運行仿真系統(tǒng)的平面圖。
圖1 水電運行仿真系統(tǒng)的平面圖
整個軟件系統(tǒng)的開發(fā)目標(biāo)就是要真實地模擬水電的運行情況,監(jiān)控運行環(huán)境,實時調(diào)試系統(tǒng)的運行,這就需要用軟件把全部功能仿真出來。水電運行仿真軟件系統(tǒng)有7大部分功能系統(tǒng)模塊組成,包括主機系統(tǒng)、前臺系統(tǒng)、多媒體播放系統(tǒng)、教學(xué)輔助系統(tǒng)、故障事故系統(tǒng)、電氣系統(tǒng)和輔機系統(tǒng)。每個系統(tǒng)模塊由許多分支功能模塊組成,各個模塊系統(tǒng)協(xié)作調(diào)度共同實現(xiàn)仿真運行功能。
水電運行仿真系統(tǒng)的源文件以及各類文檔都比較完整,文檔質(zhì)量也比較高。在軟件得到廣泛應(yīng)用的同時,仍然是一個典型的軟件網(wǎng)絡(luò)研究平臺,實驗室繼續(xù)在這個平臺上探索著大規(guī)模軟件網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的特征規(guī)律和軟件度量方法,適時地度量和修改使Wemade軟件系統(tǒng)能更好地進(jìn)化生長[14],適應(yīng)實際的應(yīng)用需求。
將面向?qū)ο蟮拈_源軟件的源代碼文件作為研究對象[15-16],提取過程如下:
步驟1將源代碼解析成XML文件。首先獲取開源軟件的源代碼,然后利用Doxygen軟件進(jìn)行解析,得到一些關(guān)于源代碼中的類、結(jié)構(gòu)體和接口的XML文件,XML文件中包含了類名、變量和各類之間的關(guān)系等信息。
步驟2解析XML文件。利用XMLParser解析器從XML文件中解析出軟件的類、結(jié)構(gòu)體和接口以及它們之間的關(guān)系,把它們分別看作網(wǎng)絡(luò)中的節(jié)點和連接邊,并保存到數(shù)據(jù)庫中。
步驟3生成.net文件。從數(shù)據(jù)庫中獲取軟件網(wǎng)絡(luò)中節(jié)點和連接邊的相關(guān)信息,并保存到.net文件中。
步驟4根據(jù)得到的.net文件構(gòu)造軟件網(wǎng)絡(luò),建立類級軟件結(jié)構(gòu)的軟件網(wǎng)絡(luò)模型。
如圖2所示,這里*VerticesN表示總節(jié)點數(shù),下面記錄了所有節(jié)點的序號、名稱和類型,*Arcs下面記錄了節(jié)點間的作用邊。用這樣的方法同樣可以抽取水電運行仿真軟件網(wǎng)絡(luò)模型,以此分析軟件結(jié)構(gòu)特征。
圖2 軟件網(wǎng)絡(luò)結(jié)構(gòu)文件
定義1(平均最短路徑[17])指網(wǎng)絡(luò)中連接兩個節(jié)點的最短路徑的邊數(shù)的平均值,用公式表示為:
定義2(結(jié)構(gòu)洞[18])表示網(wǎng)絡(luò)中間連接的、擁有互補資源或信息的個體之間所存在的空隙,通常用約束系數(shù)來量化,說明網(wǎng)絡(luò)中某個節(jié)點與其他節(jié)點的依賴程度,計算公式為:
pij是節(jié)點i與j之間的最短路徑長度同i與其所有相鄰節(jié)點最短路徑長度總和之比。k是節(jié)點i的鄰接節(jié)點。約束系數(shù)越小,結(jié)構(gòu)洞越多,節(jié)點間依賴性越小[19]。
定義3(中心度[20-21])指某節(jié)點與網(wǎng)絡(luò)中所有其他節(jié)點最短路徑之和的倒數(shù)與節(jié)點總數(shù)N-1的乘積,用公式表示為:
其中dij是節(jié)點i到節(jié)點j的最短路徑長度。
定義4(同配系數(shù))描述網(wǎng)絡(luò)中一條邊的兩端節(jié)點的度分布特性的匹配混合性。計算公式為:
其中ji和ki分別是第i條邊的兩個頂點的度,E為網(wǎng)絡(luò)中邊的數(shù)目。這里-1≤r≤1。若同配系數(shù)r>0,則是同配網(wǎng)絡(luò);若r<0,則為異配網(wǎng)絡(luò);若r=0,則為隨機網(wǎng)絡(luò)[22]。
大型水電仿真軟件是一個復(fù)雜的開源軟件系統(tǒng),相應(yīng)的被抽象出來的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)也具有復(fù)雜網(wǎng)絡(luò)的一些特征。以Wemade2.0版本為例,計算其軟件網(wǎng)絡(luò)拓?fù)涮卣髦担瑢嶒灁?shù)據(jù)如表1所示。
表1 Wemade2.0版本的軟件網(wǎng)絡(luò)拓?fù)淙痔卣?/p>
表1中,N為節(jié)點數(shù),M為邊數(shù),D為網(wǎng)絡(luò)直徑,<d>為網(wǎng)絡(luò)平均最短路徑長度,<E>為軟件網(wǎng)絡(luò)的平均聚集系數(shù),<k>為網(wǎng)絡(luò)節(jié)點的平均度值,γ為度分布系數(shù)(冪率分布)。從表中數(shù)據(jù)看到Wemade三個版本的軟件網(wǎng)絡(luò)的平均路徑長度都非常小,相對于軟件規(guī)模來說網(wǎng)絡(luò)聚集系數(shù)遠(yuǎn)遠(yuǎn)大于O(N-1),說明Wemade軟件網(wǎng)絡(luò)具有較小的平均路徑長度和較大的網(wǎng)絡(luò)聚集系數(shù),展現(xiàn)出復(fù)雜網(wǎng)絡(luò)的“小世界”特性。度分布系數(shù)2<γ<3,且P(k)~k-r,服從冪律分布[23],具有無尺度特性。Wemade軟件網(wǎng)絡(luò)呈現(xiàn)的“小世界、無尺度”特征說明其軟件網(wǎng)絡(luò)具有復(fù)雜網(wǎng)絡(luò)特征。軟件網(wǎng)絡(luò)是一種典型的復(fù)雜網(wǎng)絡(luò)。
將Wemade軟件系統(tǒng)抽象出網(wǎng)絡(luò)拓?fù)鋱D,如圖3所示。從圖中可直觀地看出Wemade軟件網(wǎng)絡(luò)具有明顯的復(fù)雜網(wǎng)絡(luò)特征。網(wǎng)絡(luò)中節(jié)點具有很強的聚類性,密切地集中在一定區(qū)域,這是由軟件特性決定的,整個軟件系統(tǒng)大約有100多個基本的計算單元類、電器元件類和機械元件類等,其他功能類通過引用這些基本單元來實現(xiàn)相應(yīng)的功能。軟件網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)決定著網(wǎng)絡(luò)所擁有的特性,而網(wǎng)絡(luò)特征參數(shù)的屬性可以準(zhǔn)確地反映軟件的結(jié)構(gòu)特征。
圖3 水電運行仿真軟件網(wǎng)絡(luò)拓?fù)渖蓤D
3.2.1 結(jié)構(gòu)洞的特征
自“結(jié)構(gòu)洞”一詞從社會學(xué)中提出以來,在社會網(wǎng)絡(luò)中很好地解釋了人際關(guān)系的復(fù)雜性,即關(guān)系越親密,越不容易得到異質(zhì)信息[24],而在流行病傳播的復(fù)雜網(wǎng)絡(luò)中,感染個體總是感染它們的鄰居,通常容易聚集成大群體[25],造成網(wǎng)絡(luò)分布不均勻,使網(wǎng)絡(luò)中的節(jié)點“組團”并伴隨結(jié)構(gòu)洞的產(chǎn)生。然而,個體增加傳播速度卻可使網(wǎng)絡(luò)傳播趨向均勻[26],這又不同于一般的復(fù)雜網(wǎng)絡(luò)。軟件網(wǎng)絡(luò)作為復(fù)雜網(wǎng)絡(luò)的實例,同樣存在著大量的結(jié)構(gòu)洞,在信息傳播的過程中主要考慮節(jié)點傳播信息的能力和效率,以此來分析節(jié)點間的關(guān)聯(lián)程度和調(diào)用方式。與社交網(wǎng)絡(luò)和生物網(wǎng)絡(luò)不同,軟件網(wǎng)絡(luò)中的信息傳播并不會發(fā)生均勻傳播現(xiàn)象,也不會隨機傳播,節(jié)點有自身的屬性和作用關(guān)系,度指標(biāo)刻畫了一個節(jié)點與其相鄰節(jié)點的連接性,度值的大小反映了與此節(jié)點直接相連的節(jié)點數(shù)目的多少。結(jié)構(gòu)洞反映了節(jié)點間的依賴程度,結(jié)構(gòu)洞越少,某個節(jié)點對其他節(jié)點的依賴性越強。研究節(jié)點度與結(jié)構(gòu)洞關(guān)系能夠說明局部區(qū)域網(wǎng)絡(luò)中節(jié)點間的連接程度,指導(dǎo)軟件系統(tǒng)內(nèi)部結(jié)構(gòu)的設(shè)計。
以Wemade2.0為研究對象,去掉孤立節(jié)點并進(jìn)行曲線擬合,圖4為雙對數(shù)坐標(biāo)下結(jié)構(gòu)洞與節(jié)點度的相關(guān)性。
圖4 Wemade2.0軟件網(wǎng)絡(luò)的節(jié)點度與約束系數(shù)的分布
在雙對數(shù)據(jù)坐標(biāo)下,節(jié)點度與約束系數(shù)能夠擬合成直線。說明節(jié)點度與結(jié)構(gòu)洞呈冪律相關(guān),擬合的冪函數(shù)曲線方程為:
其中X為節(jié)點度的值。也就是說,在水電運行仿真軟件網(wǎng)絡(luò)中,隨著節(jié)點度值的變大,約束系數(shù)變小,結(jié)構(gòu)洞增多。節(jié)點度值的增大會使局部網(wǎng)絡(luò)連接增多,節(jié)點產(chǎn)生的結(jié)構(gòu)洞會很多,如果這些節(jié)點的約束系數(shù)很小,勢必會使網(wǎng)絡(luò)更加復(fù)雜,不符合軟件的設(shè)計原則。節(jié)點的度值無限逼近于0或為0的節(jié)點,其約數(shù)系數(shù)趨近于1或為1,這樣的現(xiàn)象說明了這些節(jié)點不存在結(jié)構(gòu)洞,它們是孤立節(jié)點,在軟件內(nèi)部模塊中不發(fā)生作用關(guān)系。度值為1和3的節(jié)點是封閉網(wǎng)絡(luò)結(jié)構(gòu),也不存在結(jié)構(gòu)洞。結(jié)構(gòu)洞的約束系數(shù)與度的冪律分布相關(guān)性充分說明了水電運行仿真軟件結(jié)構(gòu)的層次性和模塊化特征。
3.2.2 中心度的特征
中心度是用來衡量網(wǎng)絡(luò)中節(jié)點的中心化程度,展現(xiàn)中心節(jié)點的位置,反映了節(jié)點在網(wǎng)絡(luò)中的影響力。研究節(jié)點度與中心度的關(guān)系,有助于從全局的角度來分析軟件結(jié)構(gòu)的復(fù)雜性。同樣以Wemade2.0軟件版本為例,如圖5所示。
圖5 Wemade2.0軟件網(wǎng)絡(luò)的節(jié)點度與中心度的分布
從圖5中可以看到,水電運行仿真軟件網(wǎng)絡(luò)中節(jié)點度與中心度并沒有明顯的相關(guān)性,圖中呈現(xiàn)出來的分布關(guān)系與其他開源軟件有很大不同。在一個比較小的范圍內(nèi),有一部分節(jié)點的中心度隨著度值的增大而急劇變大,但相應(yīng)的度值并不一定很大,另有一部分節(jié)點度值很小,中心度也不高,這些節(jié)點大多數(shù)分布在網(wǎng)絡(luò)的邊緣。對于中心度高的節(jié)點,說明它們是中心節(jié)點,支撐著整個網(wǎng)絡(luò),這樣的中心節(jié)點一般都非常少,分布圖中恰好說明了這點。
基于軟件網(wǎng)絡(luò)拓?fù)涮卣鲄?shù)的定義,以及對水電運行仿真系統(tǒng)Wemade2.0軟件網(wǎng)絡(luò)中特征值的分析,可以用度指標(biāo)來度量水電運行仿真軟件結(jié)構(gòu)局部類模塊的連接情況,研究類模塊間直接調(diào)用關(guān)系。結(jié)構(gòu)洞從節(jié)點之間依賴程度的角度來分析類模塊間的作用關(guān)系,彌補度指標(biāo)在軟件結(jié)構(gòu)度量中的不足。但是它們都不能體現(xiàn)重要節(jié)點的位置,中心度指標(biāo)能準(zhǔn)確地予以指出,并且從全局來度量軟件結(jié)構(gòu)。
在水電運行仿真系統(tǒng)Wemade2.0軟件內(nèi)共有312個類,對應(yīng)軟件網(wǎng)絡(luò)中共有312個節(jié)點。針對Wemade2.0軟件網(wǎng)絡(luò)特征參數(shù)的分析,查找提取出來的開源軟件.net文件里各類節(jié)點的序號、名稱,進(jìn)一步對水電運行仿真軟件系統(tǒng)結(jié)構(gòu)進(jìn)行有效地評估。
(1)研究節(jié)點度與結(jié)構(gòu)洞的關(guān)系可以說明網(wǎng)絡(luò)中節(jié)點間的局部連通性和依賴關(guān)系。度值越小越靠近網(wǎng)絡(luò)的邊緣,度值為0的節(jié)點不存在結(jié)構(gòu)洞,也就是孤立節(jié)點。查找源代碼數(shù)據(jù)文件分析發(fā)現(xiàn)Wemade2.0軟件網(wǎng)絡(luò)內(nèi)孤立節(jié)點大多為Windows的線程、消息等系統(tǒng)級調(diào)用以及在軟件的調(diào)試、維護(hù)時添加的冗余類或失效類。當(dāng)節(jié)點度值很大時,節(jié)點的復(fù)用性很高,節(jié)點間具有很強的依賴性,網(wǎng)絡(luò)出現(xiàn)的結(jié)構(gòu)洞會很多,在水電運行仿真軟件系統(tǒng)結(jié)構(gòu)內(nèi),復(fù)用頻繁的類是RD類、XJ類、LP類,度值排在前三名,它們分別是熔斷器、信號繼電器、聯(lián)片。這些類都是一些基本控制類模塊,同時也是組成子控制回路和機械控制的最小單元。在仿真系統(tǒng)中各個基類被大量調(diào)用,這是由系統(tǒng)功能和應(yīng)用領(lǐng)域決定的。系統(tǒng)總線模塊中的通信和數(shù)據(jù)處理類CCmanddatap的結(jié)構(gòu)洞非常大,此類通常連接各個收發(fā)數(shù)據(jù)模塊和數(shù)據(jù)庫等。仿真系統(tǒng)通常采用分布式結(jié)構(gòu),數(shù)據(jù)通過連接在系統(tǒng)傳遞交換。但是CCmanddatap類有明確的分工,該類只處理前臺和后臺的數(shù)據(jù),這樣廣泛的依賴關(guān)系使它的結(jié)構(gòu)洞很大,但在系統(tǒng)最大協(xié)作模塊中并不是關(guān)鍵類。
(2)研究節(jié)點度和中心度的相關(guān)性有助于分析軟件內(nèi)各類模塊的復(fù)雜性。Wemade2.0軟件網(wǎng)絡(luò)的特別之處也體現(xiàn)在節(jié)點度與中心度的分布關(guān)系上。中心節(jié)點往往承擔(dān)著軟件的主要功能的實現(xiàn)。水電運行仿真軟件系統(tǒng)內(nèi)部各類模塊間的聯(lián)系比較密切,軟件系統(tǒng)主要通過共享變量空間相互作用,由節(jié)點度與中心度分布關(guān)系圖說明軟件工程中的單元復(fù)用性高于單元復(fù)雜性的特點在Wemade2.0軟件結(jié)構(gòu)內(nèi)并不明顯,大多數(shù)節(jié)點都不與其相似度值的節(jié)點相連接,說明了Wemade2.0軟件結(jié)構(gòu)中層次較少。這也暴露了Wemade2.0軟件版本的缺陷,需要對軟件結(jié)構(gòu)內(nèi)一部分類模塊修改和重新布局,平衡各類單元模塊的復(fù)雜度和重用度。
分布關(guān)系圖中展現(xiàn)了一部分度和中心度都較小的節(jié)點,說明這些節(jié)點在整個軟件網(wǎng)絡(luò)中處于邊緣地帶。如果對Wemade2.0軟件結(jié)構(gòu)內(nèi)各類模塊修改,可以在適當(dāng)?shù)某潭壬显黾舆@些類模塊的復(fù)雜性。
開發(fā)至今,根據(jù)實際需求的變化,水電運行仿真軟件系統(tǒng)已更新三個版本。研究軟件的進(jìn)化有助于認(rèn)識和理解軟件結(jié)構(gòu)的變化過程,指導(dǎo)開發(fā)人員對軟件進(jìn)行重構(gòu)和維護(hù)。
分析水電運行仿真軟件Wemade三個版本的同配系數(shù)(r)、平均最短路徑長度(<d>)、網(wǎng)絡(luò)中心度(<c>)、網(wǎng)絡(luò)約束系數(shù)(<h>)和判定系數(shù)(R),如圖6所示。
圖6 Wemade軟件網(wǎng)絡(luò)進(jìn)化中的特征值
基于Wemade在進(jìn)化過程中的一些網(wǎng)絡(luò)拓?fù)涮卣髦档淖兓?,進(jìn)一步討論對Wemade軟件系統(tǒng)的影響。
(1)同配系數(shù)大于0說明水電運行仿真軟件網(wǎng)絡(luò)是同配網(wǎng)絡(luò),即網(wǎng)絡(luò)中節(jié)點傾向與自身節(jié)點類型相似的其他節(jié)點優(yōu)先連接。隨著軟件的進(jìn)化,Wemade軟件網(wǎng)絡(luò)的同配系數(shù)逐漸變大,平均最短路徑逐漸減小,說明在Wemade十余年的開發(fā)過程中,軟件系統(tǒng)結(jié)構(gòu)內(nèi)模塊化程度越來越高。然而,軟件結(jié)構(gòu)的模塊化并不是越高越好,高度模塊化勢必會使模塊的內(nèi)聚性過高,這樣軟件結(jié)構(gòu)會變得復(fù)雜。因此,在Wemade的后續(xù)版本的改進(jìn)過程中要綜合考量軟件系統(tǒng)的模塊內(nèi)聚性和模塊間的耦合性。
(2)Wemade三個版本的軟件網(wǎng)絡(luò)中心度呈上升趨勢,說明在軟件進(jìn)化過程中加入的新增節(jié)點優(yōu)先連接高中心度的節(jié)點,這樣網(wǎng)絡(luò)的中心節(jié)點區(qū)域越來越密集,新增節(jié)點的中心性相對較高。而中心度高的節(jié)點通常密切關(guān)聯(lián)著軟件的核心結(jié)構(gòu),實現(xiàn)軟件的主要功能,對中心節(jié)點的不斷補充說明軟件的核心結(jié)構(gòu)還不夠成熟,需要在進(jìn)化過程中不斷地修改和完善。
(3)隨著Wemade軟件的進(jìn)化,結(jié)構(gòu)洞與度的判定系數(shù)逐漸增大,冪律相關(guān)性越來越明顯。但是,判定系數(shù)并沒有很大跨度,即使變化也是很小的,說明每一次的軟件版本的更新,只是對軟件內(nèi)局部結(jié)構(gòu)功能擴充,或者對內(nèi)部模塊函數(shù)的改動不多,程序的協(xié)作關(guān)系并沒有被破壞。軟件進(jìn)化過程中的網(wǎng)絡(luò)約數(shù)系數(shù)雖然有所增加,但變化不大,說明整個軟件網(wǎng)絡(luò)的結(jié)構(gòu)洞有所減少,節(jié)點間的連接性較強,同時還要考慮軟件規(guī)模和復(fù)雜度的情況而分析是否對影響網(wǎng)絡(luò)結(jié)構(gòu),如果結(jié)構(gòu)洞變化呈上下波動且非常小,那么軟件的內(nèi)核并沒有變動。
水電運行仿真軟件系統(tǒng)是對水電站實時運行的模擬,測量并計算各個分支系統(tǒng)的參數(shù),在監(jiān)控臺上顯示所有機組中的實時數(shù)據(jù)、分析數(shù)據(jù)和生成圖等,通過界面可以對各種系統(tǒng)模塊操作,具有與實際水電站一樣的邏輯功能。為了有效地度量軟件,使Wemade能穩(wěn)定的在水電站運作,對Wemade維護(hù)和改進(jìn)十分必要。
本文首先介紹了水電運行仿真系統(tǒng)Wemade的組成及設(shè)計結(jié)構(gòu)。在此基礎(chǔ)上結(jié)合軟件網(wǎng)絡(luò)相關(guān)知識,將Wemade軟件結(jié)構(gòu)抽象成網(wǎng)絡(luò),利用軟件網(wǎng)絡(luò)拓?fù)涮卣鲄?shù)對水電運行仿真軟件Wemade的結(jié)構(gòu)特性進(jìn)行度量及分析,得到在Wemade軟件網(wǎng)絡(luò)中,節(jié)點度和結(jié)構(gòu)洞呈冪律相關(guān),而節(jié)點度與中心度卻沒有明顯的相關(guān)性,說明了Wemade軟件結(jié)構(gòu)具有模塊性,同時軟件結(jié)構(gòu)層次較少。
水電運行仿真軟件系統(tǒng)Wemade已更新了三個版本,在彌補之前版本不足的同時Wemade并沒有進(jìn)化到完美。通過對三個版本的軟件網(wǎng)絡(luò)拓?fù)涮卣鞯牧炕瘜Ρ确治龅贸觯和湎禂?shù)的增大和最短路徑長度的減小說明網(wǎng)絡(luò)的同配性和聚集性不斷增強;網(wǎng)絡(luò)中心度的值相對來看有上升趨勢,說明模塊之間相互關(guān)聯(lián)過于緊密使軟件結(jié)構(gòu)非常復(fù)雜,不利于軟件的更新和再設(shè)計;結(jié)構(gòu)洞與度的冪律相關(guān)性雖有微小的增大幅度,開發(fā)人員依然傾向模塊化設(shè)計。綜合分析來看,對Wemade的后續(xù)研究中,要適當(dāng)?shù)匕盐漳K間的聚類和耦合。
[1]趙海,韓敘東,宋純賀,等.水電仿真系統(tǒng)中故障處理的規(guī)則引擎實現(xiàn)[J].東北大學(xué)學(xué)報:自然科學(xué)版,2008,29(6):811-814.
[2]Wattts D J,Strongatz S H.Collective dynamics of‘smallworld’networks[J].Nature,1998,393(6684):440-442.
[3]Barabási A L,Albert R.Emergence of scaling in random networks[J].Science,1999,286(5439):509-512.
[4]Wang X Y,Qin X M.Asymmetric intimacy and algorithm for detecting communities in bipartite networks[J].Physica A,2016,462(15):569-578.
[5]Cui Y Z,Wang X Y.Detecting one-mode communities in bipartite networks by bipartite clustering triangular[J].Physica A,2016,457(1):307-315.
[6]Zhou W J,Wang X Y.Inhomogeneity of epidemic spreading with entropy-based infected clusters[J].Chaos,2013,23(4):755-764.
[7]許文文,時鵬,于留寶,等.一種在線社交網(wǎng)絡(luò)的自適應(yīng)觀點引導(dǎo)模型及實現(xiàn)[J].電子學(xué)報,2016,44(7):1714-1720.
[8]Wang X Y,Zhao T F,Qin X M.Model of epidemic control based on quarantine and message delivery[J].Physica A,2016,458(15):168-178.
[9]孫軍艷,傅衛(wèi)平,王雯.基于復(fù)雜網(wǎng)絡(luò)理論的B2C電商供應(yīng)鏈網(wǎng)絡(luò)分析[J].西安理工大學(xué)學(xué)報,2015,31(4):385-393.
[10]Li H,Zhao H,Cai W,et al.A modular attachment mechanism for software network evolution[J].Physica A,2013,392(9):2025-2037.
[11]張錫哲,羅實,印瑩,等.面向軟件執(zhí)行網(wǎng)絡(luò)的行為拓?fù)浞治鲅芯縖J].計算機科學(xué),2011,38(10A):242-248.
[12]張浩華,趙海,趙明.大型水電仿真系統(tǒng)的模型驅(qū)動架構(gòu)設(shè)計[J].計算機工程與應(yīng)用,2009,45(4):72-75.
[13]蔡巍,趙海.軟件總線研究及其在水電仿真系統(tǒng)中的應(yīng)用[J].系統(tǒng)仿真學(xué)報,2007,19(12):2710-2715.
[14]Lin Z P.Understanding and simulating software evolution[C]//The 2013 International Conference on Software,2013:1411-1414.
[15]Li P,Zhao H,Qiao Y,et al.A platform of software network measurement design and implement[C]//The 2nd IEEE International Conference on Advanced Computer Control,2010,27(2):334-337.
[16]Benjamin D,Vinitha H S,Joseph E,et al.Formal specification for real-time object oriented systems with UML design[J].International Journal of Digital Information and Wireless,2012,2(4):53-65.
[17]韓言妮,李德毅,陳桂生.軟件網(wǎng)絡(luò)的多粒度拓?fù)涮匦苑治黾皯?yīng)用[J].計算機學(xué)報,2013,39(5):243-247.
[18]蘇曉萍,宋玉蓉.利用領(lǐng)域”結(jié)構(gòu)洞”尋找社會網(wǎng)絡(luò)中最具影響力節(jié)點[J].物理學(xué)報,2015,64(2):1-11.
[19]Li H,Zhang H.Research on structural holes and closenessofmulti-granularity software networks[J].Journal of Software,2013,8(2):337-343.
[20]陳國強,陳亮.一種基于資源分配策略的復(fù)雜網(wǎng)絡(luò)中心性測度[J].計算機科學(xué),2011,38(8):42-52.
[21]張慧.多粒度軟件網(wǎng)絡(luò)的特性研究與演化分析[D].沈陽:沈陽工業(yè)大學(xué),2013.
[22]李靜,張洪欣,王小娟,等.確定度分布條件下可變同配系數(shù)的算法構(gòu)造與影響分析[J].物理學(xué)報,2016,65(9):168-177.
[23]Gu Qing,Xiong Shijie,Chen Daoxu.Correlations between characteristics of maximum influence and degree distributions in software network[J].Science China:Information Sciences,2014,57(7):1-12.
[24]Li B,Zhao H,Cai W,et al.A new metric methodimproved structural holes researches on software networks[C]//The International Conference on Software and Intelligent Information,2012.
[25]Liu Z Z,Wang X Y,Wang M G.Inhomogeneity of epidemic spreading[J].Chaos,2010,20(2):023128.
[26]Ren G M,Wang X Y.Epidemic spreading in time-varying community networks[J].Chaos,2014,24(2):023116.