- モジュール結合度(低い方が良い:疎結合): モジュール同士がどれだけ依存し合っているかを示す指標です。結合度が低いと、あるモジュールを変更した際の影響が他のモジュールに及びにくくなり、モジュールの再利用性が高まります。結合度には、引数でデータのみを受け渡す「データ結合(最良)」から、共通のグローバル変数を参照し合う「共通結合」、相手の内部ロジックを直接制御する「内容結合(最悪)」などがあります。
- モジュール凝集度(高い方が良い:高凝集): モジュール内の各処理が、どれだけ一つの共通目的のために集中して関連し合っているかを示す指標です。凝集度が高いほど、そのモジュールの目的が明確になり、バグが入りにくく保守しやすくなります。凝集度には、単一の機能のみを実行する「機能的凝集(最良)」から、同じタイミングで実行する処理をまとめた「時間的凝集」、関連のない処理をただ集めた「暗黙的凝集(最悪)」などがあります。
試験でのポイント
試験では、優れたモジュール設計の条件である「結合度は低く、凝集度は高くする(疎結合・高凝集)」という原則が選択式や正誤問題で非常によく問われます。
また、具体的な結合度のレベル(データ結合、スタンプ結合、制御結合など)や、凝集度のレベル(機能的、情報的、連絡的など)の強弱の順番や、それぞれの定義について正しく理解しているかを判定する問題が出題されます。特に「データ結合は最も望ましい」「共通結合はグローバル変数を使うため好ましくない」といった判断ができるように整理しておきましょう。
関連する用語
関連する用語には、モジュール間の結合度を高める原因となる「グローバル変数」、オブジェクト指向において関連するデータと処理を一つにまとめる「カプセル化」、およびモジュール単位での整合性を検証する「単体テスト」があります。