如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity
代碼的環(huán)復(fù)雜度(Cyclomatic complexity,有的地方又翻譯成圈復(fù)雜度)是一種代碼復(fù)雜度的衡量標(biāo)準(zhǔn),在1976年由Thomas J. McCabe, Sr. 提出。
在軟件測(cè)試的概念里,圈復(fù)雜度用來(lái)衡量一個(gè)模塊判定結(jié)構(gòu)的復(fù)雜程度,數(shù)量上表現(xiàn)為獨(dú)立線性路徑條數(shù),即合理的預(yù)防錯(cuò)誤所需測(cè)試的最少路徑條數(shù)。圈復(fù)雜度大說(shuō)明程序代碼可能質(zhì)量低且難于測(cè)試和維護(hù)。
計(jì)算公式
環(huán)復(fù)雜度 = E ? N + 2
E = 程序控制流圖中邊的個(gè)數(shù)
N = 程序控制流圖中點(diǎn)的個(gè)數(shù)
看個(gè)具體的例子。下面這段ABAP代碼的環(huán)復(fù)雜度根據(jù)公式計(jì)算為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.先把代碼的程序流圖畫(huà)出來(lái):
在ABAP里用Code inspector這個(gè)工具測(cè)量代碼的環(huán)復(fù)雜度:
具體步驟參考我的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可以用一個(gè)叫做SourceMonitor的工具測(cè)量環(huán)復(fù)雜度:
詳細(xì)使用參考我的博客Use SourceMonitor to monitor your java code complexity
要獲取更多Jerry的原創(chuàng)技術(shù)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 苹果服务器再出故障:iCloud、iMe
- 下一篇: 丰田开发出全球首个“可发光的毫米波雷达车