タグ

循環的複雑度に関するyutaka_kinjyoのブックマーク (3)

  • テストやレビューのプロになるために -- 計測力と洞察力強化のコツ・ノウハウ --

    JaSST 2009 Hokkaido ソフトウェアテストシンポジウム2009 北海道 テストやレビューのプロになるために -- 計測力と洞察力強化のコツ・ノウハウ -- Nobuhiro Hosokawa (carvin@jp.ibm.com) Quality Assurance, Services Quality. IBM Japan Ltd. JaSST 2009 Hokkaido Takeaways � 計測は力なり – メトリクス計測と産業 – メトリクス・データ – 定量可視化技術 – …で、測ってどうするのですか? • データ測定することの意味 � プロの洞察力・集中力 – 事例 - 問題意識 – 集中と没頭 � プロの発想力・創造力 JaSST 2009 Hokkaido メトリクス計測と産業 JaSST 2009 Hokkaido テスト技術者に必要な資質とは? × In

  • 経路の総数、ネストの深さ、循環的複雑度の特徴 - マイナー・マイナー

    コードの複雑性を定量評価する尺度(メトリクス)には経路の総数、ネストの深さ、循環的複雑度(サイクロマティック複雑度)があります。しかし、経路の総数とネストの深さはフローの構造に依存するブレが大きく、循環的複雑度はそのブレが小さいことが、いくつかのコードを見ていて思いました。ここでは、その具体例と、それらのメトリクスの特徴について考察しました。 循環的複雑度については前回の循環的複雑度でフローの複雑性を把握するで解説しています。循環的複雑度は、簡単にいうと、エッジとノードで囲まれた領域の数です. 具体例 テストの点数を与えると、その評価を返すメソッドevaluationXを考えます。評価は次の通りです。 100点 優 80点〜99点 良 60点〜79点 可 0点〜59点 不可 簡単のため、与える点数は必ず0以上100以下と仮定します。 上記の機能を実装したメソッドを3つ考えます。 例1 『深

    経路の総数、ネストの深さ、循環的複雑度の特徴 - マイナー・マイナー
  • 循環的複雑度でフローの複雑性を把握する - マイナー・マイナー

    業務でコードの静的解析について調べていたら循環的複雑度(サイクロマティック複雑度:Cyclomatic Complexity)という「フローの複雑度」を評価する尺度に出会いました。コードの複雑さの比較性に優れた尺度だと感じてワクワクしたので紹介します。 定義 循環的複雑度の定義はいろいろありますが、そのうちのひとつは次のように定義されています。(wikipediaを参照しました) グラフの終点ノードと始点ノードを結んだとき、循環的複雑度は、 ここで、 : グラフのエッジ数 : グラフのノード数 : 連結成分 簡単にいうと、エッジとノードで囲まれた領域の数です。 具体例 例1 『分岐1回』 if (c1) { t = 1; } 循環的複雑度 = 5 - 4 + 1 = 2 例2 『分岐先で分岐』 if (c1) { if (c2) { t = 2; } } 循環的複雑度 = 7 - 5 +

  • 1