
031
1
アーキテクチャの重要性
1.3
巨大な泥団子
実用的なソフトウェアは複雑な構造物であり、その規模が大きくなる
につれて複雑度は増していきます。一本のプログラムにすべての処理を
記述するのは実質不可能なので、複数の構成要素に処理を分割します。
構成要素の単位は採用するプログラミング言語により異なりますが、オ
ブジェクト指向言語であればクラスの単位に分割します。
分割した構成要素の間には何らかの関係が生じます。たとえば図
1.3.1はUMLのクラス図の例ですが、「一般会員」は「会員」の一種であ
るという継承の関係や、「会員」は配送先として「住所」を持つという関
係があることを読み取ることができます。また、矩形で表現されたクラ
ス同士を結ぶ関連線の矢印の方向に沿って依存関係があります。
⹅
図1.3.1
UMLのクラス図
1
配送先
会員
一般会員
プレミアム
会員
住所
さて、ソフトウェアの構成要素の数が多ければ多いほど、依存関係の
数も多くなり全体としてより複雑になることは想像に難くないでしょ
う。何も考えずに無闇矢鱈に分割を進めていくと、図1.3.2のように構
成要素同士の依存関係が複雑に入り組んだ、「巨大な泥団子(Big Ball