モジュールの結合度とは?もじゅーるのけつごうど
モジュールの結合度とは、モジュールどうしがどれだけ強く依存しているかを表す尺度で、低いほど良い設計とされる。弱い順にデータ結合・スタンプ結合・制御結合・外部結合・共通結合・内容結合の6段階に分かれる。結合が強いほど片方の変更がもう片方へ波及し、単体テストも相手を用意しないと動かせなくなる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
システムを分割すること自体は誰でもできるが、分け方の良し悪しは「なんとなく綺麗」といった感覚でしか語られなかった。感覚のままではレビューで指摘が通らず、直す優先順位も決まらない。依存の強さを段階として名付け順序を与えたことで、「ここは制御結合なのでデータ結合まで下げたい」と具体的に言えるようになった。応用情報ではモジュールの分割基準として、凝集度(結束性)と対で問われる。
具体例
この段階分けはラリー・コンスタンチンらの構造化設計で整理されたものである。顧客レコード全体を渡して郵便番号しか使わない呼び出しはスタンプ結合で、必要な郵便番号だけを引数にすればデータ結合まで下げられ、呼び出し側のレコード定義が変わっても呼ばれる側は影響を受けない。グローバル変数を介したやり取り(共通結合)は、誰がいつ書き換えたか追えなくなるため避ける。
試験での引っ掛け
制御結合とデータ結合は見た目がどちらも引数の受け渡しなので紛らわしい。渡した値によって呼ばれた側の内部の分岐先が決まるなら制御結合で、呼び出し側が相手の中身を知っていることになる。もう一つ、良し悪しの向きが2つの尺度で逆である点も定番で、凝集度(結束性)は高いほど良く、結合度は低いほど良い。「結合度が高い設計」を良いものとして選ばせる選択肢は誤りになる。
関連用語
出た過去問
出典:平成28年度 春期 応用情報技術者試験 午前 問47(IPA)
モジュールの結合度が最も低い,データの受渡し方法はどれか。
正解:単一のデータ項目を引数で受け渡す。
要点:データ結合(単一値を引数で渡す)が最も結合度が低い
モジュール結合度は、大域的データの共有より引数での受渡しのほうが弱く、また構造体などのまとまりを渡すより単一の値を渡すほうが弱い。よって単一のデータ項目を引数で渡す形(データ結合)が最も結合度が低い。
出典:令和4年度 春期 応用情報技術者試験 午前 問46(IPA)
モジュールの独立性の尺度であるモジュール結合度は、低いほど独立性が高くなる。次のうち、モジュールの独立性が最も高い結合はどれか。
正解:データ結合
要点:結合度が最も弱いのは必要な値だけを渡すデータ結合
モジュール結合度は、弱い順にデータ結合、スタンプ結合、制御結合、外部結合、共通結合、内容結合と分類される。データ結合は、必要な値だけを引数として受け渡す最も弱い結合で、モジュール間の依存が小さく独立性が最も高い。したがって設計上はデータ結合を目指すのが望ましい。
出典:令和5年度 春期 応用情報技術者試験 午前 問46(IPA)
モジュールの独立性を高めるには、モジュール結合度を低くする必要がある。モジュール間の情報の受渡し方法のうち、モジュール結合度が最も低いものはどれか。
正解:入出力に必要なデータ項目だけをモジュール間の引数として渡す。
要点:結合度はデータ結合が最弱。共通領域や制御の受渡しは避ける
モジュール結合度は弱いほど独立性が高く保守しやすい。選択肢の中では、処理に必要なデータ項目だけを引数として受け渡すデータ結合が最も結合度が低い。共通領域や外部宣言による共有は共通結合や外部結合にあたり、制御用の値を渡して相手の動きを決めるのは制御結合で、いずれもより結合度が高い。
出典:令和6年度 春期 応用情報技術者試験 午前 問46(IPA)
モジュール結合度に関する記述のうち、適切なものはどれか。
正解:大域的なデータを参照するモジュール間の関係は、共通結合である。
要点:大域データ領域の共有は共通結合、単一データ項目の共有は外部結合
モジュール結合度は結合が弱いほど良い設計とされ、弱い順にデータ結合・スタンプ結合・制御結合・外部結合・共通結合・内容結合と並ぶ。共通結合は、複数のモジュールが同じ大域的なデータ領域(構造をもつ共通のデータ群)を共有して参照・更新する関係を指す。したがって大域的なデータを参照し合うモジュール間の関係は共通結合であり、エが正しい。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。