モジュール強度と結合度 — 良い設計の二大評価軸

強度 (高い方が良い) 7段階 と 結合度 (低い方が良い) 6段階の分類、SOLID との関係を整理。

モジュール強度 (cohesion) と結合度 (coupling) は AP 科目Aで必出。良い設計は『強度 高 + 結合度 低』が原則です。

鳴海 理央(普段) 鳴海 理央

モジュールの良し悪しを評価する2つの軸: ① 強度 (cohesion) = 1モジュール内の関連性の強さ、② 結合度 (coupling) = モジュール間の依存度の強さ。

砂原 ニコ(普段) 砂原 ニコ

強度って高いほうがいいの?

緒方 ナオミ 先生(笑顔) 緒方 ナオミ 先生

そうよ。
強度は『高い方が良い』。
機能的強度 (1モジュール = 1機能) が最強で、暗号的強度 (関係なく集めた) が最弱。
順番に: 機能的 > 情報的 > 連絡的 > 手順的 > 時間的 > 論理的 > 暗号的。

藤咲 まりあ(普段) 藤咲 まりあ

結合度は逆なんですかぁ?

鳴海 理央(普段) 鳴海 理央

はい、結合度は『低い方が良い』。
データ結合 (引数で値渡し) が最良で、内容結合 (他モジュールの内部を直接触る) が最悪。
順番に: データ結合 < スタンプ結合 < 制御結合 < 外部結合 < 共通結合 < 内容結合。

緒方 ナオミ 先生(普段) 緒方 ナオミ 先生

AP では『次の例はどの強度/結合度か』が頻出。
実例で覚えるのが一番。
たとえば: 全関数がグローバル変数 X を参照 → 共通結合、引数でフラグを渡して処理切替 → 制御結合、引数でデータのみ渡す → データ結合、というふうに。

砂原 ニコ(普段) 砂原 ニコ

これって実務でも使うの?

鳴海 理央(普段) 鳴海 理央

はい、SOLID原則の SRP (単一責任) と直結します。
SRP を守ると自然に強度が高く・結合度が低い設計になります。
良いコードレビューの観点でもあります。

確認クイズ

良いソフトウェアモジュール設計の原則として、最も適切な組合せはどれか。

  1. 強度: 低い方が良い / 結合度: 低い方が良い
  2. 強度: 高い方が良い / 結合度: 高い方が良い
  3. 強度: 高い方が良い / 結合度: 低い方が良い
  4. 強度: 低い方が良い / 結合度: 高い方が良い
こたえを見る

正解: 3. 強度: 高い方が良い / 結合度: 低い方が良い

良いモジュール設計は『強度 (cohesion) 高 + 結合度 (coupling) 低』。1モジュール内の関連性は強く、モジュール間の依存度は弱いほど、再利用性・保守性・テスト容易性が高くなります。SOLID の SRP・DIP の根底にある原則。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。