以前に「外部設計と内部設計が一対一に対応するものだ」と考えている設計者がいる話をしたのですが関連して。
会計システムの入力は振替伝票の入力画面が一つあれば原始伝票のエントリ機能は最低限満たすことができます。
入金伝票/出金伝票は振替伝票の変形に過ぎません。振替伝票クラスを基底クラスにして入金伝票/出金伝票を作成すれば完成です。
実質は1本のプログラム開発で振替伝票/入金伝票/出金伝票の3つの要望を満たすことが出可能です。
UI部分も動的に生成すれば1本て済ませられますが、そこまですると保守性の問題も出てきますので、最低3画面のFormの作成はOKとします。
これがお気に召されないみたいで、出金伝票の作成でxx人日、入金伝票作成でyy人日、振替伝票作成でzz人日 合計 aa人日と見積れ(且つ別々に製造せよ)と指示があったりします。
その結果、成果物として殆ど類似した内部設計書とプログラムが3種類作成されることになり。冗長な仕事に忙殺される事になります。
この重複した冗長性を排除する面からみても。設計自体のOOP化を望みますし、設計者の頭もOOPな頭になって欲しいと思うのです。
OOPは実装レベルの話でなく、内部設計の合理化の話でもあるのです。