2016-11-07 2 views
0

青い線が正しい場所にあるかどうかを確認しようとしていますが、正しいかどうかわからない9つのエッジがあることがわかります。Cyclomatic Complexity edges

コード

public int getResult(int p1, int p2) { 
int result = 0; // 1 
if (p1 == 0) { // 2 
    result += 1; //3 
} else {  
    result += 2; //4 
} 
if (p2 == 0) { //5 
    result += 3; //6 
} else { 
    result += 4; //7 
} 
    return result; //8 exit node 
} 

そう8つのノードとそれが正しい9つのエッジを有していなければなりませんか?私は正しいことをしましたか?

enter image description here

答えて

1

3行目の後に、あなたのプログラムは、第5行にジャンプしようとしているので、はい、青のラインが正しく配置されます。次のように任意のフロー図を描画せずにサイクロマティック複雑さを計算する 最も簡単な方法は次のとおりです。

  1. 行う-しばらく、一方で、プログラム中のすべてのループをカウントし、場合。各ループに1の値を割り当てます。それ以外はここではカウントしないでください。
  2. 各スイッチケースに値1を割り当てます。デフォルトケースはここではカウントしないでください。
  3. サイクロマティック複雑=ループならば、あなたのプログラムでループ+ 1 の総数は、2がありますので、循環的複雑度は、あなたが標準でそれをクロスチェックすることができます3(2 + 1)

だろう以下のようにしているだけでなく、利用可能な式: C = E-N + 2(9-8 + 2 = 3)

OR

C =閉領域の数+ 1(2 + 1 = 3)

+0

、感謝します。 – t1ms0n

0

wikipedia

M = E - N + 2P、

場合

E =グラフのエッジの数。 N =グラフのノード数。 P =接続されたコンポーネントの数。そう

ただ、青線が正しく配置されたかどうかを知るために必要な

9 - 8 + 2*1 = 3

関連する問題