徐識溥,劉 勇,涂尾龍,杜慶峰,王運(yùn)圣*
溫室傳感網(wǎng)絡(luò)控制系統(tǒng)的軟件度量方法研究
徐識溥1,2,劉 勇1,涂尾龍3,杜慶峰2,王運(yùn)圣1*
(1上海市農(nóng)業(yè)科學(xué)院農(nóng)業(yè)科技信息研究所,上海 201403;2同濟(jì)大學(xué)軟件學(xué)院,上海 201804;3上海市農(nóng)業(yè)科學(xué)院畜牧獸醫(yī)研究所,上海 201106)
基于溫室傳感網(wǎng)絡(luò),提出了復(fù)雜網(wǎng)絡(luò)理論及軟件體系結(jié)構(gòu)復(fù)雜性度量思想,借助復(fù)雜網(wǎng)絡(luò)理論和用戶案例分析估算方法進(jìn)行復(fù)雜性度量,利用實(shí)際應(yīng)用案例進(jìn)行了驗(yàn)證。
溫室;無線傳感器網(wǎng)絡(luò);復(fù)雜網(wǎng)絡(luò);復(fù)雜性度量;案例分析
蔬菜溫室作為設(shè)施農(nóng)業(yè)的一種形式,它使得蔬菜生產(chǎn)能夠擺脫自然環(huán)境和傳統(tǒng)生產(chǎn)條件的束縛,為人們提供高產(chǎn)、優(yōu)質(zhì)、高效、安全的蔬菜。蔬菜溫室技術(shù)經(jīng)歷了小棚、中棚、塑料大棚、普通溫室、現(xiàn)代化溫室等發(fā)展階段,其科技含量和自動(dòng)化水平在不斷提高,如今溫室的大型化和自動(dòng)化已成發(fā)展趨勢。隨著無線傳感器網(wǎng)絡(luò)(Wireless sensor network,WSN)技術(shù)發(fā)展越來越成熟,傳感網(wǎng)絡(luò)控制系統(tǒng)在溫室環(huán)境中的應(yīng)用也愈加廣泛。因作物生長環(huán)境要求較高,網(wǎng)絡(luò)架構(gòu)的復(fù)雜度隨之提高。
復(fù)雜性科學(xué)是一門新興、交叉的學(xué)科,國內(nèi)外許多學(xué)者認(rèn)為,它是21世紀(jì)科學(xué)技術(shù)發(fā)展的前沿。復(fù)雜系統(tǒng)是具有中等數(shù)目基于局部信息做出行動(dòng)的智能性、自適應(yīng)性主體的系統(tǒng),是一個(gè)很難定義的系統(tǒng),它存在于這個(gè)世界的各個(gè)角落[1]。復(fù)雜網(wǎng)絡(luò)打破了線性、均衡、簡單系統(tǒng)的傳統(tǒng)模式,是具有自組織、自相似、吸引子、小世界、無標(biāo)度中部分或全部性質(zhì)的網(wǎng)絡(luò)[2-4]。鑒于此,本論文研究復(fù)雜網(wǎng)絡(luò)與軟件系統(tǒng)結(jié)構(gòu)的復(fù)雜性度量[5],通過理論與實(shí)際相結(jié)合的方式進(jìn)行軟件系統(tǒng)的復(fù)雜性度量,以此在更高的層次理解系統(tǒng)的復(fù)雜性。
復(fù)雜網(wǎng)絡(luò),即呈現(xiàn)高度復(fù)雜性的網(wǎng)絡(luò)。其復(fù)雜性主要表現(xiàn)在以下幾個(gè)方面:
1)結(jié)構(gòu)復(fù)雜,表現(xiàn)在節(jié)點(diǎn)數(shù)目巨大,網(wǎng)絡(luò)結(jié)構(gòu)呈現(xiàn)多種不同特征。
2)網(wǎng)絡(luò)進(jìn)化,表現(xiàn)在節(jié)點(diǎn)或連接的產(chǎn)生與消失。例如,網(wǎng)頁或鏈接隨時(shí)可能出現(xiàn)或斷開,導(dǎo)致網(wǎng)絡(luò)結(jié)構(gòu)不斷發(fā)生變化。
3)連接多樣性,節(jié)點(diǎn)之間的權(quán)重存在差異,且有可能存在方向性。
4)動(dòng)力學(xué)復(fù)雜性,節(jié)點(diǎn)集可能屬于非線性動(dòng)力學(xué)系統(tǒng)。例如,節(jié)點(diǎn)狀態(tài)隨時(shí)間發(fā)生復(fù)雜變化。
5)節(jié)點(diǎn)多樣性,復(fù)雜網(wǎng)絡(luò)中的節(jié)點(diǎn)可以代表任何事物。例如,人際關(guān)系構(gòu)成的復(fù)雜網(wǎng)絡(luò)節(jié)點(diǎn)代表單獨(dú)個(gè)體,萬維網(wǎng)組成的復(fù)雜網(wǎng)絡(luò)節(jié)點(diǎn)可以表示不同網(wǎng)頁。
6)多重復(fù)雜性融合,即以上多重復(fù)雜性相互影響,導(dǎo)致更為難以預(yù)料的結(jié)果。例如,設(shè)計(jì)一個(gè)電力供應(yīng)網(wǎng)絡(luò)需要考慮此網(wǎng)絡(luò)的進(jìn)化過程,其進(jìn)化過程決定網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。當(dāng)兩個(gè)節(jié)點(diǎn)之間頻繁進(jìn)行能量傳輸時(shí),他們之間的連接權(quán)重會(huì)隨之增加,通過不斷的學(xué)習(xí)與記憶逐步改善網(wǎng)絡(luò)性能[6-7]。
目前,復(fù)雜網(wǎng)絡(luò)研究的內(nèi)容主要包括:網(wǎng)絡(luò)的幾何性質(zhì),網(wǎng)絡(luò)的形成機(jī)制,網(wǎng)絡(luò)演化的統(tǒng)計(jì)規(guī)律,網(wǎng)絡(luò)上的模型性質(zhì),以及網(wǎng)絡(luò)的結(jié)構(gòu)穩(wěn)定性和網(wǎng)絡(luò)的演化動(dòng)力學(xué)機(jī)制等問題。其中在自然科學(xué)領(lǐng)域,網(wǎng)絡(luò)研究的基本測度包括:度及其分布特征,度的相關(guān)性,集聚程度及其分布特征,最短距離及其分布特征,介數(shù)及其分布特征,連通的規(guī)模分布[8-11]。
簇系數(shù)(Clustering coefficient)可以衡量復(fù)雜網(wǎng)絡(luò)集約化程度,該指標(biāo)指復(fù)雜網(wǎng)絡(luò)中節(jié)點(diǎn)之間的連通程度,或網(wǎng)絡(luò)節(jié)點(diǎn)的局部傳遞程度。平均路徑長度(Average path length)指復(fù)雜網(wǎng)絡(luò)中所有節(jié)點(diǎn)對之間的平均最短距離。最短距離是指從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)所經(jīng)過的邊的最小數(shù)目。大量研究表明,真實(shí)復(fù)雜網(wǎng)絡(luò)具有較大的簇系數(shù)和較小的平均路徑長度[12-13]。
2.1 軟件體系結(jié)構(gòu)復(fù)雜性
軟件體系結(jié)構(gòu)(Softarchitecture,SA)具有一定形式的結(jié)構(gòu)化元素,即構(gòu)件的集合,包括處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件。處理構(gòu)件負(fù)責(zé)對數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)構(gòu)件是被加工的信息,連接構(gòu)件把體系結(jié)構(gòu)的不同部分組合連接起來[14]。這一定義注重區(qū)分處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件,這一方法在其他的定義和方法中基本上得到保持。與最初的大型中央主機(jī)相適應(yīng),最初的軟件結(jié)構(gòu)體系也是主機(jī)結(jié)構(gòu),該結(jié)構(gòu)下客戶、數(shù)據(jù)和程序被集中在主機(jī)上,通常只有少量的圖形用戶界面(GUI),對遠(yuǎn)程數(shù)據(jù)庫的訪問比較困難[15]。隨著個(gè)人電腦(PC)的廣泛應(yīng)用,該結(jié)構(gòu)逐漸在應(yīng)用中淘汰。在80年代中期出現(xiàn)了Client/Server分布式計(jì)算結(jié)構(gòu),應(yīng)用程序的處理在PC(客戶端)和服務(wù)器(主機(jī)或服務(wù)端)之間分擔(dān);請求通常被關(guān)系型數(shù)據(jù)庫處理,PC機(jī)在接受到被處理的數(shù)據(jù)后實(shí)現(xiàn)顯示和業(yè)務(wù)邏輯;系統(tǒng)支持模塊化開發(fā),通常有GUI[16]。Client/Server結(jié)構(gòu)因?yàn)槠潇`活性得到了極其廣泛的應(yīng)用。
根據(jù)Garlan&Shaw的定義:SA={構(gòu)件,連接件,約束}。此定義認(rèn)為SA是超越計(jì)算過程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),系統(tǒng)是由構(gòu)件、連接件和約束構(gòu)成[16-17]。其中,構(gòu)件是一組代碼或一個(gè)獨(dú)立的程序,構(gòu)件相對獨(dú)立,僅通過接口與外部相互作用;連接件是構(gòu)件的粘合劑,把不同的構(gòu)件連接起來;約束是構(gòu)件與連接件連接時(shí)的規(guī)則,并指明構(gòu)件連接的勢態(tài)和條件。通過SA定義可知,SA的復(fù)雜性與構(gòu)件和連接件的連接有直接關(guān)系。同時(shí),構(gòu)件與連接件的連接存在方向性,并且連接件不存在長短問題,所以,可通過有向無權(quán)復(fù)雜網(wǎng)絡(luò)理論來度量SA的復(fù)雜性。在建立復(fù)雜網(wǎng)絡(luò)模型時(shí),構(gòu)件映射為復(fù)雜網(wǎng)絡(luò)的節(jié)點(diǎn),連接件映射為復(fù)雜網(wǎng)絡(luò)的邊,約束限定了節(jié)點(diǎn)與邊之間的連接。
2.2 復(fù)雜性的度量
在本文中利用SA的平均路徑和用戶案例點(diǎn)數(shù)(Use case points,UCP)估算方法,對基于WSN路由算法的溫室傳感網(wǎng)絡(luò)復(fù)雜性進(jìn)行度量。
2.2.1 軟件體系架構(gòu)的平均路徑
某個(gè)節(jié)點(diǎn)的平均路徑長度是指該節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑的平均,網(wǎng)絡(luò)的平均路徑長度是指網(wǎng)絡(luò)中所有節(jié)點(diǎn)對之間最短路徑的平均值,即任意兩個(gè)節(jié)點(diǎn)之間要經(jīng)過的邊的數(shù)目的平均值。定義SA的平均路徑長度:
其中,V表示節(jié)點(diǎn)(構(gòu)件)集合,N=|V|為節(jié)點(diǎn)總數(shù),d(u,v)表示節(jié)點(diǎn)u到節(jié)點(diǎn)v的最短距離[18]。
平均路徑長度表明了節(jié)點(diǎn)所代表的構(gòu)件在SA中的中心度。節(jié)點(diǎn)的平均距離越短,則該節(jié)點(diǎn)所代表的構(gòu)件與其他節(jié)點(diǎn)所代表的構(gòu)件所需要經(jīng)過的連接件越少,說明該節(jié)點(diǎn)所代表的構(gòu)件的中心度越高[19]。根據(jù)軟件工程思想,系統(tǒng)結(jié)構(gòu)層次不能太深,構(gòu)件盡量調(diào)用其緊鄰下層構(gòu)件,避免越級訪問,所以,SA所轉(zhuǎn)化的有向復(fù)雜網(wǎng)絡(luò)模型應(yīng)該具有較小的平均路徑長度。
2.2.2 UCP估算方法
Infosys公司采用的用例點(diǎn)方法是基于理性的做法,類似于功能點(diǎn)方法。這種方法在使用的情況下要求比較規(guī)范,基本步驟如下。
1)每個(gè)用例的等級分為簡單、中等和復(fù)雜。這種分類的基礎(chǔ)是一個(gè)用例的事物操作的數(shù)量。事務(wù)的定義是一個(gè)原子集合,要么是完全或者根本不執(zhí)行的活動(dòng)。一個(gè)簡單的例子有3個(gè)或更少的事務(wù),中等的用例有4到7個(gè)事務(wù),以及復(fù)雜的用例有多于7個(gè)事務(wù)。一個(gè)簡單用例的因子被分配為5,中等用例的因子分配為10,一個(gè)復(fù)雜用例的因子分配為15。表1給出了分類因子情況。
表1 分類與因子Table 1 Classification and factors
2)獲得未調(diào)整用例點(diǎn)(UUCPs)的總數(shù),這是用例因子的加權(quán)總和。也就是說,對于每三個(gè)復(fù)雜類,首先獲得的一個(gè)特別復(fù)雜的使用案例的數(shù)目和針對復(fù)雜的因子的乘積。三種類型的總和即為UUCPs。
3)根據(jù)項(xiàng)目的復(fù)雜性和類似項(xiàng)目的經(jīng)驗(yàn),調(diào)整原始UUCP值。根據(jù)表2給出的因素,評級每一個(gè)因子為0—5,0評級意味著該因素是無關(guān)的項(xiàng)目;5意味著它是必不可少的。對于每一個(gè)因素,從表中乘其評級由它的權(quán)重,加上這些數(shù)字因子。使用這個(gè)公式計(jì)算出技術(shù)復(fù)雜性因子(Technical complexity factor,TCF):TCF=0.6+0.01×TF(技術(shù)因子)。
表2 技術(shù)因素與權(quán)重Table 2 Technical factors and weights
4)同樣,根據(jù)表3,每個(gè)因子值從0到5,對于體驗(yàn)的相關(guān)因素計(jì)算環(huán)境因子(Environment factor,EF),0表示在這個(gè)問題沒有經(jīng)驗(yàn),5表示專家,而3則表示平均水平。對于動(dòng)機(jī),0意味著該項(xiàng)目沒有動(dòng)力,5表示積極性高,而3則表示平均水平。有關(guān)要求的穩(wěn)定性,0表示極不穩(wěn)定的要求,5是指不變的要求,而3則表示平均值。對于兼職員工,0表示沒有兼職技術(shù)人員,5是指所有兼職員工,而3則表示平均水平。用于編程語言困難,0意味著易于使用的編程語言,5指非常困難的編程語言,而3則表示平均值。加權(quán)和給出E值,EF由下面的公式得出:EF總=1.4+(-0.03)×EF。
5)使用這2個(gè)因子(TCF、EF),計(jì)算最終用例點(diǎn):UCP=UUCP×TCF×EF。對于工作量估算與分配,在整個(gè)生命周期里平均20人時(shí)每個(gè)UCP。當(dāng)然,這是一個(gè)粗略的估計(jì)。但是可以通過進(jìn)一步完善這個(gè)原則可以得出更為精確的估計(jì)。換句話說,每個(gè)UCP的范圍為20—28人時(shí),項(xiàng)目經(jīng)理可以決定的,這取決于各種因素。
表3 團(tuán)隊(duì)環(huán)境因素與權(quán)重Table 3 Environmental factors and weights
通過前期網(wǎng)絡(luò)技術(shù)和傳感器等硬件方面的研究,上海市農(nóng)業(yè)科學(xué)院數(shù)字農(nóng)業(yè)團(tuán)隊(duì)開發(fā)了一套基于WSN路由算法的溫室傳感網(wǎng)路控制系統(tǒng),該系統(tǒng)服務(wù)于農(nóng)科院所屬基地的實(shí)際生產(chǎn),服務(wù)對象為基地普通工人和相關(guān)技術(shù)人員,本系統(tǒng)包括對溫室大棚的溫濕度、光照、水肥一體化、生長模型自動(dòng)調(diào)節(jié)等4個(gè)子模塊。
3.1 利用軟件體系架構(gòu)的平均路徑進(jìn)行度量
由于本系統(tǒng)的結(jié)構(gòu)較單一,故選擇本系統(tǒng)中的生長模型自動(dòng)調(diào)節(jié)子模塊,該子模塊主要是根據(jù)已有的植物生長模型對溫室環(huán)境進(jìn)行自動(dòng)調(diào)節(jié)。該模塊的體系結(jié)構(gòu)如下圖1所示。
圖1 生長模型自動(dòng)調(diào)節(jié)子模塊功能結(jié)構(gòu)Fig.1 Functional configuration of grow th model’s self-ad justment submodule
圖2 形式化結(jié)構(gòu)圖Fig.2 Form alized structure diagram
通過分析,圖3中10個(gè)節(jié)點(diǎn)的度(節(jié)點(diǎn)入度與出度的和)分別
圖3 系統(tǒng)網(wǎng)絡(luò)圖Fig.3 System network diagram
3.2 利用UCP估算方法進(jìn)行度量
該系統(tǒng)主要用戶分為3類:普通工人、技術(shù)管理員和系統(tǒng)管理員,包含功能點(diǎn)見表4—6。
表4 普通工人的功能點(diǎn)Table 4 Function points of ordinary workers
表5 技術(shù)管理員的功能點(diǎn)Table 5 Function points of technical adm inistrators
表6 系統(tǒng)管理員的功能點(diǎn)Table 6 Function points of system administrators
根據(jù)表4—6得出,簡單S個(gè)數(shù):16,中等M個(gè)數(shù):14,復(fù)雜C:6。故UUCP=16×5+14×10+6×15=310。根據(jù)表2得出TCF=0.6+0.01×TF=0.6+0.01×45=1.05。根據(jù)表3得出EF總=1.4+(-0.03)× EF=1.4+(-0.03)×17=0.89。故UCP=UUCP×TCF×EF=310×1.05×0.89=289.695。
通過對本溫室傳感網(wǎng)絡(luò)控制系統(tǒng)進(jìn)行SA復(fù)雜性度量和UCP估算驗(yàn)證,發(fā)現(xiàn)該子系統(tǒng)復(fù)雜性與一般復(fù)雜網(wǎng)絡(luò)的特性相似。同時(shí),該子系統(tǒng)具有較合適的簇系數(shù)和較短的平均路徑,系統(tǒng)度分布比較合理,符合軟件工程開發(fā)思想。
本文使用了2種方法來進(jìn)行軟件的度量,第1種是利用復(fù)雜網(wǎng)絡(luò)理論和技術(shù),將SA轉(zhuǎn)化為有向復(fù)雜網(wǎng)絡(luò)模型,并通過節(jié)點(diǎn)的度與度分布、簇系數(shù)、平均路徑長度等屬性來度量復(fù)雜性。第2種方法是使用UCP估算方法對系統(tǒng)進(jìn)行精確定量分析。最后,通過基于WSN路由算法的溫室傳感網(wǎng)絡(luò)控制系統(tǒng)作為實(shí)例,驗(yàn)證了其SA的復(fù)雜性和UCP方法驗(yàn)證。實(shí)踐表明,這2種方法能較好地度量所開發(fā)系統(tǒng)的SA的復(fù)雜性,有效地提高所開發(fā)系統(tǒng)的質(zhì)量及可靠性。
[1]楊芙清.軟件工程技術(shù)發(fā)展思索[J].軟件學(xué)報(bào),2005,16(1):1-7.
[2]NIRMAN E F,SHARIL P.Softwaremetrics[M].2nd ed.Beijing:China Machine Press,1997.
[3]MCCABE T J.A complexitymeasurement[J].IEEE Transaction Software Engineering,1976,2(4):302-308.
[4]VALVERDE S,SOLE R V.Logarithmic growth dynamics in software networks[J].Europhysics Letters,2005,72(5):858-864.
[5]李兵,馬于濤,劉婧,等.軟件系統(tǒng)的復(fù)雜網(wǎng)絡(luò)研究進(jìn)展[J].力學(xué)進(jìn)展,2008,38(6):805-814.
[6]李麗萍,繆淮扣,錢忠勝.基于復(fù)雜網(wǎng)絡(luò)面向?qū)ο蠹蓽y試的研究[J].計(jì)算機(jī)科學(xué),2008,35(12):254-257.
[7]張大陸,王志曉,劉雯.基于復(fù)雜網(wǎng)絡(luò)的本體結(jié)構(gòu)分析[J].同濟(jì)大學(xué)學(xué)報(bào),2009,37(2):258-261.
[8]MYERSC.Software systems as complex networks:Structure,function,and evaluability of software collaboration graphs[J].Physical Review E,2003,68(4):046116.
[9]何克清,馬于濤,李兵,等.軟件網(wǎng)絡(luò)[M].北京:科學(xué)出版社,2008.
[10]閆棟,祁國寧.大規(guī)模軟件系統(tǒng)的無標(biāo)度特性與演化模型[J].物理學(xué)報(bào),2006,55(8):3799-3804.
[11]HALSTEAD M H.Elements of Software Science[M].New York:Elsevier North-Holland,1977.
[12]韓定定.復(fù)雜網(wǎng)絡(luò)的拓?fù)洹?dòng)力學(xué)行為及其實(shí)證研究[D].上海:華東師范大學(xué),2008.
[13]BRITO F,ABREU E.MOOD-metrics for object-oriented design[C]//OOPSLA'94Workshop on Pragmatic and Theoretical Directions in Object-Oriented Software Metrics.Portland:OR,1994.
[14]WEYUKER E.Evaluating software complexitymeasures[J].IEEE Transactions on Software Engineering,1988,14(9):1357-1365.
[15]CHIDAMBER SR,KEMERER CF.Ametrics suite for objectoriented design[J].IEEE Transactions on Software Engineering,1994,20(6):476-492.
[16]WATTSD J,STROGATZSH.Collective dynamics of small-world networks[J].Nature,1998,393:440-442.
[17]BATABASIA L,ALBERT R.Emergence of scaling in random networks[J].Science,1999,286:509-512.
[18]LIU B,LID,LIB.Mining representative nodes in scale-free networks[J].Dynamics of Continuous,Discrete and Impulsive Systems(Series B:Applications and Algorithms),2006,13(3):395-400.
[19]VALVERDE S,SOLER.Hierarchical small-worlds in software architecture:SFI/03-07-044[R].Waterloo,Canada:Santa Fe Institute,2003.
(責(zé)任編輯:程智強(qiáng))
Research on softwaremetrics of greenhouse sensor network controlling system
XU Shi-pu1,2,LIU Yong1,TUWei-long3,DU Qing-feng2,WANG Yun-sheng1*
(1Agriculturɑl Informɑtion Institute of Scienceɑnd Technology,Shɑnghɑi Acɑdemy of Agriculturɑl Sciences,Shɑnghɑi201403,Chinɑ;2Softwɑre Engineering School of Tongji University,Shɑnghɑi201804,Chinɑ;3Animɑl Husbɑndryɑnd Veterinɑry Reseɑrch Institute,Shɑnghɑi Acɑdemy of Agriculturɑl Sciences,Shɑnghɑi201106,Chinɑ)
On account of greenhouse wireless sensor network,this article proposes complex network theory and complexitymetrics thought of software architecture,carries out complexitymeasure bymeans of the complex network theory and user case analysis,and makes a verification according to an actual application case.
Greenhouse;Wireless sensor network;Complex network;Complexitymeasure;Case analysis
S625
A
1000-3924(2017)01-166-06
2016-01-25
上海市市級農(nóng)口系統(tǒng)青年人才成長計(jì)劃[滬農(nóng)青字(2015)第1-24號];上海市農(nóng)委科技攻關(guān)項(xiàng)目[滬農(nóng)科攻字(2015)第6-4-1號]
徐識溥(1986—),男,碩士,助理研究員,主要從事農(nóng)業(yè)物聯(lián)網(wǎng)及農(nóng)業(yè)信息化的研究。E-mail:xushipu39706879@163.com
*通信作者:王運(yùn)圣(1971—),男,博士,副研究員,研究方向:作物信息科學(xué)。Tel:021-37195791-512;E-mail:wysl88@163.com