連載
» 2004年06月15日 12時00分 公開

マーチン・ファウラー特別ラウンドテーブル 現場レポート [後編]:アナリシスパターンは難しすぎる? (2/2)

[構成:吉田育代, 谷古宇浩司,アットマーク・アイティ編集局]
前のページへ 1|2       

ドメインモデリングとデータモデリングの違い

鈴村 ドメインモデリングについて質問があります。ドメインモデリングをするときに最初に何をしたらいいかということに迷っています。ドメインモデリングを手掛けている人はデータモデリングをやってきた人が多くて、属性というかフィールドを上げているものがほとんどなんです。そうすると、データモデルとあまり変わりません。この領域では振る舞いに着目することが重要だということですが、私としては振る舞いから始めるのは難しいんですが、ドメインモデルを作るときに最初に何をすべきか、その辺りの戦略で何かあれば教えていただきたいのですが。

ALT 左から、長瀬嘉秀氏、ファウラー・ファウラー氏、斉藤信也氏、鈴村幸太郎氏、マイケル・ダイクス氏、巻山展輝氏

ファウラー オブジェクト指向のデータモデリングとドメインモデリングの間にはたくさんの共通点があります。しかしまた、それと同じだけの違いもあります。そこが取り組むときに一番難しいところなのです。オブジェクト指向のデータモデリングはデータを組織化することが目的ですが、オブジェクトモデルは振る舞いを組織化することが目的です。そこが大きく違うところです。

 エリック・エバンズや私は書籍の中でドメインモデルの解説に努めましたが、これは試行錯誤しながらの試みでした。残念なことに、ドメインモデリングの方法を簡単に公式化することはできません。モデリングというのはまだ標準的な教育法というのがないのです。あなたが師とする指導者の教える方法で学ぶしかありません。エリックも私もいまでは昔よりもう少し分かってきていて、より良い教育法を考え続けています。それでもまだ簡単な仕事ではないことは事実です。

 一方、データモデリングのスキルというのは、ドメインモデリングを理解するうえで助けにもなるし、邪魔にもなります。助けになるのはスキルの大部分がオーバーラップしているからですが、人々がデータの観点でのみものを見て、多くの重要なことを見逃すからです。必要なのはデータ指向の考え方にぐっとひねりを加えることですね。

鈴村 なぜこの質問をしたかといいますと、ファウラーさんの書籍を読んで、アナリシスパターンでドメインモデルを作ろうとしたんですが、非常に難しかったからなんです。ドメインモデルをリファクタリングしている過程ではアナリシスパターンが使えるんですが、ゼロから作り始めるときには、アナリシスパターンというだけではちょっと困難だと思いました。

ファウラー 実は、パターンを作ることとパターンをリファクタリングすることは非常に密接につながっています。エリック・エバンズも書籍の中でいっています。ソフトウェアを2度はリリースした後でないと、ドメインモデリングにおいて本当にカギとなる抽象化部分を理解することはできない、と。モデルの扱いをきちんと理解し、それを実装するには時間がかかるのです。最初から完ぺきなアイデアを得るのは難しいでしょう。この世界はそういうふうにはできていないのです。

斉藤 私がいくつかモデリングを行ったとき、最初は具象レベルから始めました。何度か行っているうちに、抽象レベルでのモデリングがふっと頭に浮かぶようになりました。一種のインスピレーションでした。それも最初は単純なデータモデルに似たものだったんですが、慣れるに従って抽象レベルのモデルができるようになりました。ファウラーさんの書かれたアナリシスパターンは非常に洗練されていて、かつ抽象レベルのものなので、最初の段階で導入するのは難しいと思います。時間が必要ですね。

萩原 さて。そろそろ時間がなくなってきました。今回のラウンドテーブルは、アーキテクトが関心を持つテーマを取り上げ、またファウラーさんの意見とともに深く掘り下げることができて、なかなか有意義だったのではないかと思います。本日は長時間ありがとうございました。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ