Skip to the content.

最終更新日:2026年8月14日

まず結論

モジュール結合度とは、モジュール同士がどれだけ強く依存しているかを表す指標です。

基本情報技術者試験では、結合度は弱いほどよいと考えます。

弱い
↑
データ結合
スタンプ結合
制御結合
外部結合
共通結合
内容結合
↓
強い

最も弱いのはデータ結合、最も強いのは内容結合です。

直感的な説明

モジュール同士の関係は、人同士の仕事の頼み方にたとえると分かりやすいです。

必要な情報だけを渡して仕事を頼むなら、相手の内部事情をほとんど知らなくても済みます。

必要な値だけ渡す
→ 依存が少ない
→ 結合度が弱い

一方で、

相手の内部データを直接書き換える
→ 相手の内部構造に強く依存
→ 結合度が強い

となります。

つまり、

相手の内部をどこまで知る必要があるか

で考えると、結合度の強弱をイメージしやすくなります。

定義・仕組み

モジュール結合度は、モジュール間の情報の受け渡し方によって分類されます。

データ結合

データ結合は、処理に必要なデータ項目だけを引数として渡す結合です。

module_a(x, y)

のように、必要な値だけを渡します。

最も結合度が弱く、独立性が高い方式です。

判断キーワードは、

必要なデータだけ
引数
単純なデータ項目

です。

スタンプ結合

スタンプ結合は、構造体やレコードなど、まとまりのあるデータ構造を渡す結合です。

顧客データ一式
注文データ一式

のように、必要な項目だけでなく、複数項目を含むまとまりを渡します。

データ結合より依存が少し強くなります。

制御結合

制御結合は、相手モジュールの動作を決める制御情報を渡す結合です。

例えば、

mode = 1
→ 登録処理

mode = 2
→ 削除処理

のような制御フラグを渡します。

相手の処理内容を呼出し側が意識する必要があるため、結合度が強くなります。

外部結合

外部結合は、外部宣言されたデータや外部仕様を複数モジュールで共有する結合です。

例えば、

外部変数
外部ファイル形式
装置との共通インタフェース

などに依存します。

共通結合

共通結合は、共通領域に置かれたデータを複数モジュールから参照・更新する結合です。

いわゆる共有領域やグローバルな共通データに依存します。

共通領域
↓
モジュールA
モジュールB
モジュールC

複数モジュールが同じデータを共有するため、影響範囲が広がりやすくなります。

内容結合

内容結合は、あるモジュールが別のモジュールの内部を直接参照・変更する結合です。

例えば、

他モジュール内部の変数を直接変更
他モジュール内部へ直接分岐
内部処理を直接利用

などです。

最も結合度が強く、独立性が低い方式です。

科目Aでどう出る?

科目Aでは、説明文から結合の種類を選ぶ問題として出ます。

判断表

説明 結合
必要なデータ項目だけを引数で渡す データ結合
レコード・構造体などをまとめて渡す スタンプ結合
制御パラメータで相手の動作を決める 制御結合
外部宣言したデータを共有する 外部結合
共通領域のデータを複数モジュールで参照する 共通結合
他モジュールの内部を直接参照・変更する 内容結合

試験中の見分け方

迷ったら、まず「何を渡しているか」「どこまで共有しているか」を見ます。

必要な値だけ
→ データ結合

データ構造ごと
→ スタンプ結合

制御情報
→ 制御結合

外部で定義された情報
→ 外部結合

共通領域
→ 共通結合

相手の内部を直接触る
→ 内容結合

どんな場面で使う?

モジュール結合度は、ソフトウェア設計でモジュールの独立性を考えるときに使います。

結合度が弱いと、

  • あるモジュールを変更しても他へ影響しにくい
  • テストしやすい
  • 再利用しやすい
  • 保守しやすい

といったメリットがあります。

一方、結合度が強いと、

モジュールAを変更
↓
モジュールBにも影響
↓
モジュールCも修正

のように、変更の影響が広がりやすくなります。

よくある誤解・混同

結合度は強いほどよい?

逆です。

結合度が弱い
→ 独立性が高い
→ 保守しやすい

結合度が強い
→ 依存が強い
→ 変更影響が大きい

共通結合と外部結合は同じ?

似ていますが違います。

外部宣言されたデータ・外部仕様を共有
→ 外部結合

共通領域のデータを複数モジュールで共有
→ 共通結合

試験では「共通域」「共通領域」とあれば共通結合を疑います。

データ結合とスタンプ結合は同じ?

違います。

必要なデータ項目だけ
→ データ結合

構造体・レコードなどをまとめて渡す
→ スタンプ結合

必要以上の情報までまとめて渡すほど、相手のデータ構造への依存が強くなります。

制御パラメータもデータだからデータ結合?

違います。

値そのものを処理に使う
→ データ結合

値によって相手の動作を決める
→ 制御結合

「何のために渡しているか」で切り分けます。

確認問題(基本情報技術者試験対策)

モジュール結合度が最も弱い情報の受け渡し方法はどれか。

  • ア. 共通域に定義したデータを、複数のモジュールが参照する
  • イ. 制御パラメータを引数として渡し、モジュールの実行順序を制御する
  • ウ. 処理に必要なデータ項目だけを引数として渡す
  • エ. 必要なデータを外部宣言して複数モジュールで共有する
▶ クリックして答えと解説を見る(ここを開く)

正解:ウ

必要なデータ項目だけを引数として渡すのは、データ結合です。

データ結合は、モジュール間の依存が最も小さく、6段階の中で最も結合度が弱い方式です。

  • アは共通結合
  • イは制御結合
  • エは外部結合

です。

まとめ(試験直前用)

  • モジュール結合度は、モジュール同士の依存の強さ
  • 弱いほど独立性が高く、保守しやすい
  • 弱い順は データ → スタンプ → 制御 → 外部 → 共通 → 内容
  • 必要な値だけ渡すのはデータ結合
  • 構造体やレコードをまとめて渡すのはスタンプ結合
  • 制御情報を渡すのは制御結合
  • 共通領域を使うのは共通結合
  • 他モジュールの内部を直接触るのは内容結合

© 2024-2026 stemtazoo. All rights reserved.