(1)流圖中的區域數等於環形複雜度。
(2)流圖g的環形複雜度v(g)=e-n+2,其中,e是流圖中邊的條數,n是結點數。
(3)流圖g的環形複雜度v(g)=p+1,其中,p是流圖中判定結點的數目。
推薦使用方法三,是萬能的。不用考慮自環是否涉及到程式。
這裡就通過網上流傳的最多的例子,也是具有代表性的例子來說明
方法一:區域數就是平面分成了幾部分,如圖
這裡就出現了e的自環算上了乙個區域,而g 的自環不算乙個區域
而同樣在方法二中計算邊時,下圖中g的自環邊不計算在邊數中
上半年:e-n+2=8-7+2=3
下半年:e-n+2=9-7+2=4
方法三很完美,只需要看判定結點數目,判定結點就是出去有分支的
結點(出度》=2)。
上半年:c分支成了d,e,是判定結點;e分支了e,f,是判定結點。
下半年:c分支成了d,e,是判定結點;d分支了g,f,是判定結點;e分支了e,f,是判定結點。
g只指向g,不算判定結點,這也和前面g的自環不計算為區域數和邊數吻合
*
McCabe環路複雜度計算方法
軟考的mccabe這種題型來說幾乎每次都考,那麼我來講講如何計算以及題型的分類 形複雜度定量度量程式的邏輯複雜度 描繪程式控制流的流圖之後,可以用下述3種方法中的任何一種來計算環形複雜度。1 流圖中的區域數等於環形複雜度。2 流圖g的環形複雜度v g e n 2,其中,e是流圖中邊的條數,n是結點數...
軟體複雜度評價
在應用軟體和嵌入式產品 包括硬體 嵌入式軟體 的可靠性設計中,有一條基本原則就是 簡單可靠 分析軟體複雜度,可以支援對軟體的質量檢查 應用分析 以及評估後續維護成本,方便查明那些可能導致錯誤的 比如開展圈複雜度分析技術,對軟體進行結構測試。以軟體複雜度測量的數目為基礎,幫助工程師識別難於測試和維護的...
軟體複雜度與分而治之
軟體技術發展的使命之一就是控制複雜度 complexity 從高階語言的產生,到結構化程式設計,再到物件導向程式設計 元件化程式設計等等。關於複雜度的定義並不一致,想要詳細了解的可以讀讀the many faces of complexity in software design.英文中comple...