「オブジェクト指向入門 第2版 原則・コンセプト」より
機能を中心としたモジュール化が変化に弱いシステムを生み出してしまうことの考察.
モジュール化のためのアプローチ
ソフトウェアを作るときのモジュール化には2つの考え方がある.
- 機能を中心にモジュール化する
- 型を中心にモジュール化する(=オブジェクト指向)
機能中心では変化に対応できない
機能によるモジュール化は,トップダウン法で開発されるので,はじめに
- システムが提供するべき機能のトップは何か?
を考えなければいけない.
ところが,システムの機能は変化するし,1つとも限らない.
良いシステムには,もっとほかにいろいろなことができるのではないかという期待をユーザに抱かせるという嫌な性質がある.
オブジェクト指向入門 第2版 原則・コンセプト,p138
現実のシステムには,トップが存在しない.
オブジェクト指向入門 第2版 原則・コンセプト,p140
ある特定の機能をすべてのトップとしてシステムを構築するのは,変化に対応できないシステムを生む原因になる.
機能の進化
機能に注目したトップダウン法では,
- 外部インターフェースに注目するのが早すぎる
- 動作の実行順序を束縛するのが早すぎる