摘要:通過特征分析,提出了利用網絡拓撲特征提高軟件魯棒性、改善軟件系統的設計、開發和測試方告,這些結果對提高軟件質量具有有益的啟示和指導意義。
關鍵詞:網絡化軟件 魯棒性與脆弱性 軟件質量
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1002-2422(2010)02-0031-02
1 復雜網絡的特征參數
圖論和統計學為定量研究復雜網絡提供了理論基礎。圖論由瑞典數學家歐拉于18世紀開創,主要研究那些規模小而且結構規則的網絡。20世紀50年代,Erdes和Renyi把概率統計引入到圖論中,創立了隨機圖理論,并認為無人工設計而自然形成的。復雜網絡符合隨機圖模型,這種觀點一直持續到上個世紀末。近幾年,隨著計算機處理能力的提高和應用范圍的拓展,各個學科領域都收集到了大量真實復雜網絡的數據并能夠以定量的方式分析這些數據。研究表明,現實中的復雜網絡具有完全不同于隨機圖模型的三個特性:無尺度特征、小世界現象和脆弱性/魯棒性并存Ⅲ。為了定量地分析這些基本特征,可以引入三個基本統計參數來研究其特性,即節點的度分布、平均距離和集聚系數。節點的度為其所鄰接邊的數目,度分布p(k)表示網絡中度值為5的節點出現的概率,度分布特性反映了網絡拓撲的連接情況。1999年,Barab6si和Albert指出現實世界中許多復雜網絡的度分布具有冪律形式。由于冪律分布沒有標志性的特征長度,因而該類網絡稱為無尺度網絡。研究表明,現實世界的大多數復雜網絡,如www網絡、Internet網絡、電影演員合作網絡、科學引文網絡、語言網絡等等,都具有無尺度特征。網絡中兩個節點之間的最小連接數為這兩個節點間的距離,網絡中所有節點間距離的平均值就是網絡的平均距離。確定了網絡中任一對節點間的最有代表性的路徑長度,規模大的復雜網絡,其平均距離不一定大,相反,現實中多數復雜網絡的平均距離都相對較小。這構成了復雜網絡的小世界現象,也就是任何兩個看似沒有聯系的節點,可以通過較短的連接把它們關聯在一起。實驗表明,多數復雜網絡的平均距離都比較小。
2 網絡化軟件的基本特征
(1)小世界特性。研究表明,現實世界中的復雜網絡幾乎都具有小世界特性。由網絡化軟件構成的復雜網絡,其拓撲結構具有高集聚程度和短平均距離。過去,人們直觀地認為網絡中的資源非常多,相互之間的作用關系也非常復雜,所以直接調用某個具體的軟件資源時,需要經過復雜的路徑。通過對復雜網絡直徑的統計分析,在龐大的資源拓撲中,各個資源之間是一個“小世界”,協同和聯系可由少數的中間路徑而達到。利用這種“長程連接”特性重新設計資源調度算法,為高效利用資源提供基礎。因此,網絡化軟件拓撲中的小世界特性可以為資源的使用提供新的方法。
(2)無尺度特性。由網絡化軟件構成的復雜網絡,節點度分布不同于隨機網絡中的泊松分布,而遵循冪律分布。按照冪律分布的特點,網絡化軟件網絡的系統的行為主要是由少數關鍵節點所主控,即絕大部分冪律分布節點只有少數幾個連結,而少數節點卻擁有與其他節點的大量連結。這些具有大量連結的節點稱為“集散節點”。冪律分布在雙對數坐標系下呈直線,斜率為定值,無固定長度,其分布和網絡的規模尺度無關,因此被稱為無尺度網絡。網絡化軟件復雜系統資源拓撲是一個具有多種屬性的復雜網絡,是在個體與個體之間、社會與自然環境之間、技術與非技術之間、人工設計與自然演化等多種因素影響下形成的,其度分布、資源的容量、資源的可服務能力等都服從冪律分布,為在這種復雜無序的網絡中尋找規律性提供了便捷的途徑。
(3)不均勻性。從直觀的感覺和技術層面上看。在網絡化軟件的自然演化過程中,每個個體都會出于多種因素對網絡進行作用。由無尺度網絡特性可以看出,網絡化軟件的連接程度是不均勻的。網絡化軟件復雜系統中的各節點的作用和地位并不相同。根據80/20定律中不均勻性的描述,網絡化軟件中80%的服務是由20%資源提供的。利用這個規律優先設計其中20%的服務資源,可以最大程度提高網絡化軟件的開發速度和使用效率,網絡化軟件的不均勻性還表現在,網絡化軟件拓撲結構中各節點具有稱之為“抱團特性”的集聚趨勢。從層次結構的角度出發,網絡化軟件拓撲結構通常可以看做是由不同的社區(集團)組成,社區內部相互作用緊密而且頻繁,社區之間的長程連接較少但是非常重要。
3 網絡化軟件特征分析對軟件質量的指導意義
(1)軟件節點之間耦合關系控制策略從復雜網絡的時間演化觀點來看,網絡化軟件系統的整個生命周期是一個自適應和自組織的進化過程:模塊化的軟件個體,在保證自身的封裝性和松散耦合的基礎上,通過繼承和聚合等方式有選擇地與其他個體發生交互作用,形成一個靈活的局部網絡組織,通過與環境的交互作用和自身調整,在功能上和結構上不斷進化和變異。用戶需求的多樣性、使用過程的持續變化以及軟件環境的多元化,導致網絡化軟件的結構和行為都非常復雜,迫切需要復雜網絡理論指導系統開發、使用與維護策略。現實世界人工復雜網絡中,種群優化的遺傳變異過程表明,一方面節點數量不斷增加,網絡規模也不斷擴大,與此同時,新增加節點與原來節點之間的聯系,通常以某種特定的偏好優先依附方式進行選擇,如節點度優先依附、介數優先依附以及抱團結構質量優先依附等,進而形成具有特定統計規律的復雜網絡拓撲結構,這種結構經過一定時間的演化,通過自組織和適應性變異,形成與環境相依存的合理組織方式。因此,網絡化軟件作為人工設計和實現的復雜網絡系統,可以借鑒和使用這種進化模式和網絡結構,通過使用規則和控制的方式組織對象之間交互關系,避免由于系統內部的緊耦合約束而導致軟件難以進化的問題,合理使用經過仔細設計的各種設計模式,按照無尺度網絡拓撲特性協調系統的自然進化和人工控制的關系,并從復雜網絡的觀點控制軟件的開發方法和過程,最終形成靈活可用的軟件系統,從而解決軟件開發與維護過程中的隨意性而導致的各種不可預測的問題,使得網絡化軟件可以在松散耦合策略控制下以較小的系統內部約束方式靈活地實現“進化”和交互作用,增強對網絡化軟件適應性、可重用性以及魯棒性的有效控制。
(2)軟件維護與測試時的節點覆蓋策略。在現代軟件工程中,軟件測試是保證軟件質量和可靠性的關鍵環節。但是隨著軟件規模的不斷擴展和復雜程度的不斷提高,以及面向對象程序設計方法和工具平臺的使用,使得軟件測試的難度也進一步提高,質量更加難以度量。同時,在技術快速變化和競爭激烈的時代,軟件程序的生命周期是進化的,軟件整體功能和性能隨著分階段演化而發生整體躍遷,這意味著軟件測試的時間周期越來越短,其階段針對性也越來越強,測試人員必須盡可能利用有限的資源進行軟件測試,使軟件質量達到預期水平。在資源受到約束的測試項目環境中,資源分配策略至關重要。傳統的做法是,首先由測試人員理解業務過程,設計測試路徑,進而定制測試序列,形成基于業務過程的測試策略。在這一過程中,人為主觀因素較多,測試過程中邊界的設定、用例的選擇、結果的可解釋性等不確定性較大。其次是利用數據挖掘的方法,分析應用程序單元之間的內在關系,提取出業務邏輯關系,據此制定測試策略,減少測試所投入的人力物力。但數據挖掘本身的依據和規則,也存在很大的不確定性,導致難以得到實際可用的、收斂的挖掘結果。如前所述,基于復雜網絡特征分析,可以依據網絡化軟件缺陷及其影響程度的統計分布規律,為軟件維護和測試時的節點覆蓋定制實施策略。依據20/80定律,網絡化軟件中80%的缺陷和失效是由20%的代碼資源導致的,同時,被用戶80%使用的功能,往往是由20%的少數重要的“集散節點”代碼決定的,因此,網絡化軟件系統中蘊涵著的無尺度和小世界等特征,可以指導軟件測試人員了解具體軟件中類或功能模塊之間的拓撲關系結構,在把握其特征規律的基礎上發現和識別重要的集散節點,即重要的代碼片斷或功能模塊,從而為定制測試的優先策略、進而利用其拓撲結構特征進行有選擇性的測試提供科學依據,適應現代網絡化軟件的超大規模的、低成本、高效的維護與測試。
4 結束語
把網絡化軟件作為一個人工的復雜網絡,從復雜網絡的度分布,平均距離和集聚系數等統計特征參數出發,分析和討論了網絡化軟件的不均勻性、小世界特性、無尺度特性、魯棒性和脆弱性并存等基本特征,研究發現,在人為控制下形成的網絡化軟件系統也具有無尺度特征和小世界現象等復雜網絡特性,并闡明了如何利用這些拓撲特征增強軟件設計的魯棒性和提高軟件測試的效率。一方面,網絡化軟件的開發策略和過程管理會影響軟件網絡的拓撲特征,反之,利用網絡化軟件網絡的拓撲特征又可以指導軟件系統的設計、開發和測試策略,為提高網絡化軟件的健壯性提供了基礎,同時對于網絡化軟件工程的研究和探討也具有一定的指導意義。