圈複雜度評價及工具

2021-08-26 11:06:47 字數 624 閱讀 9831

圈複雜度用來評價**複雜度,以函式為單位,數值越大表示**的邏輯分支越多,理解起來也更複雜。圈複雜度可以成為編碼及重構的重要參考指標,以指導撰寫可讀性高的**。有關圈複雜度的定義,可以自行搜尋。《**大全》有如下的定義:

計算子程式中決策點數量的技術(**大全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 的數量來衡量複雜度。圈複雜度用來評價 複雜度,以函式為單位,數值越大表示 的邏輯分支越多,理解起來也更複雜。圈複雜度可以成為編碼及重構的重要參考指...