結合度を理解する

結合度はモジュール間の依存の強さを示す。一般に、必要データだけを引数で渡すような弱い結合が望ましく、相手の内部へ直接入り込む依存は避ける。

この単元で学ぶこと

  • データ結合の意味と役割を説明できる
  • スタンプ結合の意味と役割を説明できる
  • 制御結合の意味と役割を説明できる
  • モジュール間の情報受渡しから結合度の強弱を判断できる

本文解説

代表例ではデータ結合は弱く、内容結合は非常に強い。共有大域データや制御フラグへの依存も変更影響を広げやすい。

データ結合 必要な単純データを引数として渡す弱い結合。 明確なインタフェースで連携する。

スタンプ結合 複合データ構造全体を渡し、その一部を利用する結合。 不要部分も共有するためデータ結合より依存が強い。

制御結合 呼出し側がフラグ等を渡して相手の処理分岐を制御する結合。 相手内部ロジックへの依存が増える。

共通結合 複数モジュールが共通のグローバルデータを参照する結合。 変更影響が広がりやすい。

内容結合 一方が他方の内部データや処理へ直接依存する強い結合。 独立性が低い。

「何を渡すか」「相手の内部をどこまで知るか」を見る。必要データだけなら弱く、内部へ踏み込むほど強い。

関数へ必要な数値だけ渡すデータ結合は、共有グローバル変数を直接読む共通結合より独立性が高い。

図解

モジュール結合度の強弱
必要データ受渡しから内部直接依存まで、依存の強さを比較する。

重要ポイント

  • データ結合: 必要な単純データを引数として渡す弱い結合。
  • スタンプ結合: 複合データ構造全体を渡し、その一部を利用する結合。
  • 制御結合: 呼出し側がフラグ等を渡して相手の処理分岐を制御する結合。
  • 共通結合: 複数モジュールが共通のグローバルデータを参照する結合。
  • 結合度は低いほど一般に望ましく、内容結合は避けるべき強い依存。

間違えやすい点

  • データ結合を強い結合と逆に覚えない。
  • 構造体全体を渡すことを必要データだけの結合とみなさない。
  • 共有変数利用を疎結合と考えない。

用語解説

データ結合
必要な単純データを引数として渡す弱い結合。
スタンプ結合
複合データ構造全体を渡し、その一部を利用する結合。
制御結合
呼出し側がフラグ等を渡して相手の処理分岐を制御する結合。
共通結合
複数モジュールが共通のグローバルデータを参照する結合。
内容結合
一方が他方の内部データや処理へ直接依存する強い結合。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。