Balancing Coupling in Software Design 1章
Part I Coupling
Chapter 1 Coupling and System Design
結合とシステム設計
結合とは何か、システムを成立させるために何が必要なのか、そして最終的には、結合とシステム設計の間にある特異な関係につい学ぶ。
宿敵なのか味方なのか?
というよりは、完全な疎結合はない。何かしら結合はある。どのように付き合うかということ。
書籍より
この言葉はラテン語の「copulare」に由来しており、これは「共に」を意味する「co」と、「結び付ける」「留める」を意味する「apere」から成り立っています。したがって、「結合する(to couple)」とは、物事を結び付けること、すなわち単純に接続することを意味します。
結合は至る所に存在する普遍的な現象だと分かります。
コンポーネント/モジュール間の知識の流れを表現する
「上流(upstream)」
上流コンポーネントは、他のコンポーネントが利用する機能を提供します。
「下流(downstream)」
下流コンポーネントは、上流コンポーネントの機能を利用します。
古典的著書『Thinking in Systems: A Primer』(2009年)
システムを「何かを達成するように組織された、相互に接続された要素の集合」と定義
システムを構成する三つの中核要素を表しています。それは、構成要素、相互接続、そして目的です。
三つの要素のうちいずれか一つを変更すると、必ず少なくとも残りの二つのうちの一つに影響が及びます。
「システム設計とは本質的に、境界(何が内側で、何が外側か、何がまたがり、何が行き来するのか)とトレードオフに関するものである。
結合を悪い設計の代名詞として切り捨てるべきではないことを示すことでした。
結合は忘れてはならない設計の道具なのです。



