モジュール結合度 【module coupling】
概要
モジュール結合度(module coupling)とは、ソフトウェアを構成するプログラムのモジュール(部品)の性質を表す用語の一つで、複数のモジュールの間の結びつきの強さのこと。ソフトウェアの設計はモジュール間の結合度が可能な限り低いほうが良いとされる。内容結合
最も結合度が強いのが「内容結合」(content coupling)で、他のモジュールの内部動作に直接影響を受けたり、他のモジュールの内部の状態を直接参照しているような場合を指す。
共通結合
2番目に結合度が強いのは「共通結合」(common coupling)で、プログラム全体に渡って有効なグローバル変数などの資源を共有している状態を指す。
外部結合
3番目に結合度が強いのは「外部結合」(external coupling)で、プログラムの外部で定義されたデータ形式や通信プロトコルなどを共有している状態を指す。
制御結合
4番目に結合度が強いのは「制御結合」(control coupling)で、他のモジュールにその処理内容を指示するためのデータ(フラグなど)などを渡して内部の処理を制御する関係にある場合を指す。
スタンプ結合
5番目に結合度が強いのは「スタンプ結合」(stamp coupling)で、モジュール間で複数のデータを連結した複合的なデータ構造を受け渡すが、そのすべてを使用するわけではない状況を指す。
データ結合
6番目に結合度が強いのは「データ結合」(data coupling)で、引数や返り値など単純な型のデータを受け渡す場合を指す。一般的な関数やメソッドの結合はこれに当たるものが多い。
メッセージ結合/無結合
一般的にはスタンプ結合あるいはデータ結合が最も弱い結合度とされるが、さらにその下に、単に呼び出しを行えるだけでデータの受け渡しなどは行わない「メッセージ結合」(message coupling)や、まったく何の結びつきもない「無結合」(no coupling)が定義される場合もある。
(2023.8.25更新)