めんどくさがりダイアリー

へっぽこプログラマの備忘録

モジュール凝集度の話

調べてみた。

定義

凝集度(ぎょうしゅうど、コヒージョン、cohesion)とは、情報工学においてモジュール内のソースコードが特定の機能を提供すべく如何に協調しているかを表す度合いである。(Wikipediaから引用)

分類

  1. 機能的凝集
    一番良い。モジュールは1つの機能を実行する。
    機能を一言で説明できる。単一データを参照する
  2. 逐次的凝集
    モジュールは2つ以上の機能を実行する。
    実行順序に必然性がある。単一データを参照する
  3. 通信的凝集
    モジュールは2つ以上の機能を実行する。
    実行順序に必然性はない。単一データを参照する
  4. 手順的凝集
    一筆書き。ただ処理を並べただけ。複数のデータを参照する
  5. 一時的凝集
    あるタイミングで必要な処理をまとめたもの(初期化処理やエラー処理)
    複数のデータを参照する
  6. 論理的凝集
    if文/switch文で場合分けするもの。フラグで場合分けするもの。
  7. 偶発的凝集
    一番悪い。関連性のない処理を並べただけ。

備考

  • 逐次的凝集と通信的凝集と手順的凝集のコードの見た目は一緒。
    単一データを参照するかどうか、実行される機能に関連性があるかどうかで分類分けされる

参照