はじめに 前回に引き続き、ソフトウェア設計に関しての自分の考え方を整理していきたいと思います。今回は前回のモジュールの話の後続として、依存(=モジュール結合度)の話です。 モジュールの依存と種類 コードの複雑さをもたらすものの一つが、モジュールへの依存です。依存とはモジュールAとモジュールBの関係性のことです。あるモジュールのインタフェースに依存が多ければ多いほど、複雑性が高いと言えます。また、前回と同様にここでいうモジュールとは言語機能ではなく、関数/クラス/サービスなどの何等かの機能の塊です。様々な依存が考えられますが代表的なものは以下となります。 外部モジュールへの依存(メッセージ/データ結合) 構造体など入出力I/Fへの依存(スタンプ結合) グローバルな値への依存(共通結合) データフォーマットへの依存(外部結合) 実行順の依存 トランザクション境界の依存 基本的には古典的な結合度