モデル駆動設計
モデル駆動設計は、分析モデルと設計という二分法を捨て去り、両方の目的に使える単一のモデルを探し出す(第一部 第三章より)
前回のように、分析モデルだけではなく、分析と設計両方で適用できる1つのモデルを探すこと。実装に結びつかない場合、ドメインの主要な概念を表現していない場合も新たに探す。
ドメインを抽象化する方法は常に数多く存在し、アプリケーションの問題を解決できる設計も常に数多くある。だからモデルと設計を結びつけることは現実的に可能なのだ。(第一部 第三章より)
選択肢は多くある。より自然に実装できるよう、修正、検討を繰り返す。
モデリングと設計のプロセスは、反復されるただ1つのループになるのだ(第一部 第三章より)
これは、ドメインに対する深い洞察を反映させようとする時にも言える。(第一部 第三章より)
反復が必要ということは当然アジャイルが合うということに繋がりますよね。
ウォーターフォールでは、作りっぱなしになるから、深い洞察には結びつかないです。
設計・実装当初は議論もするし、その場ではある程度よいモデルになっていたかもしれない。
ただ、リリース後はもうそのモデルは見ない。バグの修正や、機能追加があって、モデルを修正する場合でも修正箇所以外は見ないのでモデルを見直すとはならない。。。というのを実際、経験しています。
分析モデル、設計、実装を通して単一のモデルを探し出す反復はいずれ、深い洞察につながる。
もちろん、アジャイルで。