摘要:代碼的環(huán)復(fù)雜度,有的地方又翻譯成圈復(fù)雜度是一種代碼復(fù)雜度的衡量標(biāo)準(zhǔn),在年由提出。圈復(fù)雜度大說明程序代碼可能質(zhì)量低且難于測試和維護(hù)。
代碼的環(huán)復(fù)雜度(Cyclomatic complexity,有的地方又翻譯成圈復(fù)雜度)是一種代碼復(fù)雜度的衡量標(biāo)準(zhǔn),在1976年由Thomas J. McCabe, Sr. 提出。
在軟件測試的概念里,圈復(fù)雜度用來衡量一個模塊判定結(jié)構(gòu)的復(fù)雜程度,數(shù)量上表現(xiàn)為獨(dú)立線性路徑條數(shù),即合理的預(yù)防錯誤所需測試的最少路徑條數(shù)。圈復(fù)雜度大說明程序代碼可能質(zhì)量低且難于測試和維護(hù)。
計算公式環(huán)復(fù)雜度 = E ? N + 2
E = 程序控制流圖中邊的個數(shù)
N = 程序控制流圖中點(diǎn)的個數(shù)
看個具體的例子。下面這段ABAP代碼的環(huán)復(fù)雜度根據(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.
先把代碼的程序流圖畫出來:
在ABAP里用Code inspector這個工具測量代碼的環(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可以用一個叫做SourceMonitor的工具測量環(huán)復(fù)雜度:
詳細(xì)使用參考我的博客Use SourceMonitor to monitor your java code complexity
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/68973.html
摘要:代碼的環(huán)復(fù)雜度,有時也翻譯成圈復(fù)雜度是一種代碼復(fù)雜度的衡量標(biāo)準(zhǔn),在年由提出。好消息是,有一款名為的免費(fèi)軟件,能夠幫我們來度量代碼的環(huán)復(fù)雜度。很快就將我們指定的文件的環(huán)復(fù)雜度計算完畢。 代碼的環(huán)復(fù)雜度(Cyclomatic complexity,有時也翻譯成圈復(fù)雜度)是一種代碼復(fù)雜度的衡量標(biāo)準(zhǔn),在1976年由Thomas J. McCabe, Sr. 提出。 來看看計算公式。 代碼環(huán)復(fù)雜...
摘要:本文屬于系列三當(dāng)中的一篇。編碼實(shí)現(xiàn)在下面的類當(dāng)中,關(guān)鍵點(diǎn)是定義了一個字段,用來記錄當(dāng)前與其它之間的關(guān)聯(lián)關(guān)系。第二點(diǎn),修改方法,記錄之間的關(guān)聯(lián)關(guān)系。注意,這里拋出異常下面的類的方法的復(fù)雜度是。第二點(diǎn),代碼示例,如何使用實(shí)現(xiàn)計算。 本文屬于Java ASM系列三:Tree API當(dāng)中的一篇。1. Cyclomati...
摘要:天生缺乏邏輯性的問題導(dǎo)致了預(yù)處理器的出現(xiàn)。這會導(dǎo)致圈復(fù)雜度問題。圈復(fù)雜度對于來說可能是一種比較高階的原則,但如果我們通過它來考量那些蘊(yùn)含在我們寫的選擇器中的邏輯性,那我們也許就能寫出更加優(yōu)秀的代碼。 本文在征得原作者 @csswizardry 同意的情況下,翻譯自他博客中的文章:Cyclomatic Complexity: Logic in CSS。最初發(fā)布于我的個人博客:咀嚼之...
摘要:原文來自如果說你想知道一個項(xiàng)目的代碼復(fù)雜度是什么樣子的,我推薦你可以使用和來檢測一下。安裝也是可以直接全局安裝安裝完畢之后,可以這樣來運(yùn)行命令分析代碼復(fù)雜度等待運(yùn)行結(jié)束,用打開就可以查看相對應(yīng)的結(jié)果,大概是這個樣子 原文來自:https://www.codecasts.com/blo... 如果說你想知道一個 PHP 項(xiàng)目的代碼復(fù)雜度是什么樣子的,我推薦你可以使用 phploc 和 P...
閱讀 891·2023-04-26 01:37
閱讀 3368·2021-09-02 15:40
閱讀 955·2021-09-01 10:29
閱讀 2887·2019-08-29 17:05
閱讀 3418·2019-08-28 18:02
閱讀 1181·2019-08-28 18:00
閱讀 1484·2019-08-26 11:00
閱讀 2603·2019-08-26 10:27