タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

ITとProgrammingとRefactoringに関するmasa8aurumのブックマーク (2)

  • 凝集度と結合度:このコードのどこが悪いのか?:@IT

    前編「ソフトウェアの品質を数値化して確かめる」では結合度について少し触れましたが、今回は結合度とともにソフトウェア設計において古くから知られている凝集度についても紹介し、ソフトウェアメトリクスの解説をしていきます。 抽象的な話だけになってしまうと、具体的なイメージがつかみにくいので、実際のプログラムコードを示し、何が良くて、何が悪いのかを明確にしていきます。理論的な話も重要ですが、メトリクスの測定が実際にどう評価されるかを理解して、良いプログラムを作れるようになる手助けになれば幸いです。 それでは、メトリクスの詳細を見ていきます。 1. 凝集度と結合度 1.1. 凝集度とは? 凝集度とは、クラスやパッケージ内の機能要素と情報要素間の関連性の強さを表す指標です。互いに関連する機能や情報があちこちに分散していると、仕様変更が生じた場合の影響範囲が広くなってしまいます。これらの機能や情報が局所化

    凝集度と結合度:このコードのどこが悪いのか?:@IT
  • 循環的複雑度 ( Cyclomatic Complexity ) とは何ぞや

    注意:この記事だけアクセスが多くて逆に不安になっております。 不正確な記述が含まれる可能性が大なので、必ずほかの記事も当たっていただければと思います。 今回は、循環的複雑度(Cyclomatic Complexity)について書きます。 これは、ソースコードのメトリクス(定量的に評価した値)の一つです。 条件複雑度(Conditional Complexity)とも呼ばれます。 簡単なメトリクスとしては、関数の行数やコメント行数など単純なものもありますが、 循環的複雑度はもう少し"プログラムの内容を考慮した"メトリクスです。 循環的複雑度とは、一言で言うと、 "あるひとつの関数がどれだけ複雑か"度 です。もう少し詳しく言えば、 "あるひとつの関数について、どれぐらい分岐があるか" 度 を表す数値です。 プログラムの中の各関数について、この複雑度の数値が計算されます。 Wikipediaに書

    masa8aurum
    masa8aurum 2013/12/19
    関数の循環的複雑度 = 1 + 関数の中に以下のものが出てきた回数: if、while、for、foreach、case、default、continue、goto、&&、||、catch、?: (三項演算子)、??  つまり "デフォルトの複雑度は 1 で、分岐が発生するたびに 1 増やす"
  • 1