スポンサーリンク

【応用情報技術者試験】密結合

密結合とは、ソフトウェアやシステムの構成要素(コンポーネント、クラスなど)同士の結びつき(依存関係)が非常に強く、一部の変更が他の部分に広範囲な影響を及ぼす状態を指します。高速で連携がスムーズな反面、保守性や拡張性、再利用性が低く、不具合発生時の影響範囲も大きいのが特徴で、独立性の高い「疎結合」と対比される概念です。

密結合の主な特徴

  • 高い依存性:ある部品が別の部品の実装(具体的な処理や構造)を深く知っており、強く依存している。
  • 影響範囲の広さ:一つの部品を変更すると、それに依存する多くの部品も修正が必要になる。
  • 保守性・拡張性の低下:変更に弱く、新しい機能の追加や部品の交換が困難になる。
  • 再利用性の低下:他のシステムで使い回すことが難しくなる。

具体例

  • ソフトウェア開発:あるクラスが別のクラスの内部変数やメソッドに直接アクセスし、その変更が連鎖的に発生する。
  • ハードウェア:複数のプロセッサがメモリやOSを共有するマルチプロセッサシステムなど。

疎結合との比較

  • 疎結合:コンポーネント間の依存関係が弱く、それぞれが独立している状態。変更の影響範囲が限定的で、保守性・拡張性に優れるが、連携には少し手間がかかる場合がある。

まとめ

密結合は「変更に弱い・壊れやすいが、連携は速い」状態、疎結合は「変更に強い・安定しているが、連携は少し手間がかかる」状態と理解すると分かりやすいでしょう。ソフトウェア設計では、一般的に疎結合な設計が推奨されます。

コメント