• ベストアンサー

サイクロマチック數とはどういうものでしょうか?

Javaを利用してシステム開発をしております。最近Eclipseを使うようになり、今日Matricsプラグインで過去に開発したプログラムを分析しました。すると幾つかのプログラムで『サイクロマチック数』が閾値(4)を超えているのが判明しました。プログラムを修正したいのですが、サイクロマチック数とは何か判りません。もし、具体的にどうやって算出すればよいのか判れば教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • kacchann
  • ベストアンサー率58% (347/594)
回答No.1

ネットで調べた限りでは、 --- 単にソースコードの「通り道の数」みたいです。 分岐がないときは1。 if分岐が1つあれば2。 http://www.linkclub.or.jp/~tumibito/soft-an/metrics/mccabe.html http://en.wikipedia.org/wiki/Cyclomatic_complexity (※「Key Concept」の段落がわかりやすい) --- サイクロマティック数は ・ソースコードテストの量 ・ソースコードの複雑さの度合い などを表すと言えるみたいです。

kensato
質問者

お礼

kacchann樣、有難うございました。教えて戴いたサイトを読んだ後、私の作ったプログラムを手計算した数とMatricsが示しているサイクロマチック数が一致しました。 1つのメソッド内で同じレベルに沢山のif文をおくとサイクロマチック数が大きくなり、一方if文がネストして増える分にはさほどサイクロマチック数は増えないことが判りました。確かにサイクロマチック数が多いとテストケースが複雑になります。 プログラムを作るときは、なるべくメソッドを単機能にしておくことが大切ということを改めて理解出来ました。 大変助かりました。有難うございます。

関連するQ&A

専門家に質問してみよう