圈複雜度用來評價**複雜度,以函式為單位,數值越大表示**的邏輯分支越多,理解起來也更複雜。圈複雜度可以成為編碼及重構的重要參考指標,以指導撰寫可讀性高的**。有關圈複雜度的定義,可以自行搜尋。《**大全》有如下的定義:
計算子程式中決策點數量的技術(**大全2,19章p458)
1.由1
計數,一直往下通過程式。
2.一旦遇到以下關鍵字,或者其同類的詞,就加1:
if, while, repeat, for, and, or
3. 給case(switch)語句中的每一種情況都加1.
作者也給了處理複雜度度量結果的建議:
這些數字和策略都不是絕對的,正如作者所言至少應當視其為警示。0-5: 子程式可能還不錯
6-20: 得想辦法簡化子程式了
10+ 把子程式的某一部分拆分成另乙個子程式並呼叫它。
也有工具可以幫我們完成複雜度的統計工作:cyclo (支援c/c++)
– 對windows平台,可以使用mingw編譯。
使用時,指定要進行統計的檔案就可以了。
軟體複雜度評價
在應用軟體和嵌入式產品 包括硬體 嵌入式軟體 的可靠性設計中,有一條基本原則就是 簡單可靠 分析軟體複雜度,可以支援對軟體的質量檢查 應用分析 以及評估後續維護成本,方便查明那些可能導致錯誤的 比如開展圈複雜度分析技術,對軟體進行結構測試。以軟體複雜度測量的數目為基礎,幫助工程師識別難於測試和維護的...
圈複雜度計算
一 公式 vg m n p vg m n 2p g 代表強連通有向圖,m 代表強連通有向圖的弧數,n 代表強連通有向圖的節點數,p 是g中分離部分的數目,預設是1 m和n都很清晰,當我們要用公式計算的時候p的值不固定,很難計算。為什麼會出現p和2p的情況呢 如圖所示,這是乙個控制流圖,入度是2,出度...
複雜度及圈複雜介紹介紹
軟體複雜度衡量方法有許多種 對於軟體複雜度最著名的可能就是tom mccabe的方法了。該方法通過計算子程式中的 決策點 decision points 的數量來衡量複雜度。圈複雜度用來評價 複雜度,以函式為單位,數值越大表示 的邏輯分支越多,理解起來也更複雜。圈複雜度可以成為編碼及重構的重要參考指...