ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Inside-Out Principle

IOP(Inside-Out Principle)

UIが変更されやすいというのは、その通りです。ビジネスロジックをUIに依存させてしまうと、UIの変更をもろに受けてしまうので、システムが安定しません。ビジネスロジックはUIに依存させるべきではありません。
だからといって、モデルから先に設計するというのも、多くの場合間違った結果を生んでしまうのではないでしょうか。
なぜなら、業務を最も理解しているのはユーザです。(ドメイン)モデルは業務の要件を反映させていなければなりません。しかし、UIのない状態で、ユーザからモデルを構築するために必要な情報をヒアリングすることができるでしょうか。何か聞き出せたとしても、それがあっているかということをユーザがレビューできるでしょうか。
ユーザから業務要件を引き出すには、UIを使うのが一番です。人は抽象的に考えるということになれていません。具体的であるほうが分かりやすいのです。そうやってUIを通じて、業務要件を引き出した後に、その情報から(ドメイン)モデルを構築するのです。
(ドメイン)モデルは、UIに依存すべきではありません。だからといって、UIの検討無しに(ドメイン)モデルを作成すると、ユーザの要件をきちんと反映させていないモデルになってしまいます。設計者の経験と勘によるモデルになってしまう危険性があるのです。UIによってユーザの要件を引き出してからモデリングするのが最も確実ではないでしょうか。