≪ Today I learned. RSS購読
公開日
タグ
Programming
著者
ダーシノ(@bc_rikko)

循環的複雑度(サイクロマティック複雑度)

チーム全員で共有できる客観的指標として循環的複雑度を使うのはありかも。

循環的複雑度(Cyclomatic Complexity: CC)は、客観的尺度を提供するために設計されたコードレベルのメトリクスだ。

ソフトウェアアーキテクチャの基礎 p.81

コードの行数を確認するだけで、コードの品質をだいたい予測できます。 関数内のコード行が多いほど、エラーが発生する可能性が高くなるという考え方は一部実証されています。 ただし、サイクロマティック複雑度とコード行を組み合わせると、エラーの可能性をより明確に把握できます。

https://learn.microsoft.com/ja-jp/visualstudio/code-quality/code-metrics-cyclomatic-complexity?view=vs-2022

注意

循環的複雑度を指標にする際の注意点も同時に述べられている。

本質的な複雑さ(基礎となる問題が複雑であることから生じる複雑さ)と偶発的な複雑さ(コードが本来よりも複雑であることから生じる複雑さ)を区別できない。

ソフトウェアアーキテクチャの基礎 p.48