サイクロマティック複雑度

更新日:

用語解説

サイクロマティック複雑度は、プログラムの制御フローグラフに存在する線形独立な経路の数を表し、分岐構造の複雑さと、全分岐を通す基底経路テストの目安を定量化する尺度です。

■ 試験で押さえるポイント

  • 制御フローグラフの辺数をE、節点数をN、連結成分数をPとすると、一般にM=EN+2PM=E-N+2Pで求めます。一つの連結した手続ならM=EN+2M=E-N+2です。

  • 単一入口・単一出口の構造化プログラムでは、二分岐の判定節点数+1\text{判定節点数}+1でも求められます。複合条件をどう節点へ分解するかは計数規則を統一します。

  • M個の線形独立経路を選ぶ基底経路テストは分岐網羅の設計に役立ちますが、全ての実行経路やデータ組合せを網羅することを意味しません。

  • 値が高いモジュールは理解・試験・保守が難しくなる傾向があるため分割候補になります。ただし複雑度だけで欠陥数や品質を断定せず、規模や凝集度も併せて評価します。

■ 選択肢での判断ポイント

EN+2PE-N+2P、又は判定節点数+1\text{判定節点数}+1を使います。独立経路数は単なるソース行数や実行可能な全経路数とは異なります。

例: 一つの手続にif文とwhile文という二つの二分岐判定がある場合、M=2+1=3M=2+1=3で、基底となる独立経路は3本です。

同じ分野の用語