如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity

i042416發表於2018-04-06

程式碼的環複雜度(Cyclomatic complexity,有的地方又翻譯成圈複雜度)是一種程式碼複雜度的衡量標準,在1976年由Thomas J. McCabe, Sr. 提出。

在軟體測試的概念裡,圈複雜度用來衡量一個模組判定結構的複雜程度,數量上表現為獨立線性路徑條數,即合理的預防錯誤所需測試的最少路徑條數。圈複雜度大說明程式程式碼可能質量低且難於測試和維護。

如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity

計算公式

環複雜度 = E ? N + 2

E = 程式控制流圖中邊的個數

N = 程式控制流圖中點的個數

看個具體的例子。下面這段ABAP程式碼的環複雜度根據公式計算為3.

 DATA: lv_value TYPE i VALUE 1. IF lv_value = 1. WRITE: / 'always happend'. ELSEIF lv_value = 2. WRITE: / 'not possible'. ELSE. 
    WRITE: / 'even not possible'. ENDIF. 

先把程式碼的程式流圖畫出來:

如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity

在ABAP裡用Code inspector這個工具測量程式碼的環複雜度:

如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity

具體步驟參考我的ABAP部落格:

而Java可以用一個叫做SourceMonitor的工具測量環複雜度:

如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity
如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity

詳細使用參考我的部落格Use SourceMonitor to monitor your java code complexity

如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:

如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity
如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexity

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2152636/,如需轉載,請註明出處,否則將追究法律責任。

相關文章