凝集度と結合度とは?ぎょうしゅうどとけつごうど
凝集度はモジュール内部の要素が一つの役割にどれだけ集中しているか、結合度はモジュール同士がどれだけ互いの内部に依存しているかを表す、モジュール分割の良否を測る対の尺度である。凝集度が高く結合度が低いほど独立性が高く、修正の波及範囲が狭まる。凝集度は機能的凝集が最良、結合度は引数で値だけを渡すデータ結合が最良とされ、段階の順序が問われる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
プログラムが数万行に育つと、1か所の修正が思わぬ別の場所を壊す事故が頻発した。原因は「関係のない処理が同じモジュールに同居している」「モジュールが他のモジュールの変数を直接いじっている」の2つに集約され、それぞれを段階で表したのがこの2尺度である。支援士では、セキュリティ修正の影響範囲を見積もる下地として、分割基準の節で順序関係が問われる。
具体例
Linuxカーネルの暗号APIは、ハッシュ・共通鍵暗号・乱数といったアルゴリズムごとに独立したモジュールとして実装され、呼び出し側は共通の関数に鍵とデータを渡すだけで使える。あるアルゴリズムに脆弱性が見つかってもそのモジュールだけ差し替えれば済むのは、機能的凝集とデータ結合に近い設計になっているからである。
試験での引っ掛け
動作モードを指示するフラグを引数に含めると、データ結合ではなく制御結合になる。グローバル領域を共有するのは共通結合で、相手モジュールの内部データや命令を直接参照する内容結合とは別段階である。凝集度の最低は暗号的凝集だが、この「暗号」はセキュリティの暗号とは無関係で、関連のない処理の寄せ集めという意味である。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。