1. 程式人生 > >如何計算並測量ABAP及Java代碼的環復雜度Cyclomatic complexity

如何計算並測量ABAP及Java代碼的環復雜度Cyclomatic complexity

ABAP SAP Netweaver 環復雜度 圈復雜度

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

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

技術分享圖片

計算公式

環復雜度 = 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裏用Code inspector這個工具測量代碼的環復雜度:

技術分享圖片

具體步驟參考我的ABAP博客:

  • A Small tip to get all transparent tables used in ABAP code

  • Useful tips regarding ABAP code inspector that you may not know

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

技術分享圖片

技術分享圖片

詳細使用參考我的博客Use SourceMonitor to monitor your java code complexity

技術分享圖片


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

技術分享圖片

技術分享圖片

如何計算並測量ABAP及Java代碼的環復雜度Cyclomatic complexity