モデリングの部分部分をパターン化して、モデリングに利用しようとしている印象を受けました。ビジネスのモデリングというのは細分化して分類してみると、12種類の「分子」に分けられるというのが著者の意見のようです。
12種類のパターンは以下のようなものがあります。
- アクター-ロール
- 外部の場所-場所
- 品目-特定品目
- 組立品-部品
- コンテナ-コンテンツ
- グループ-メンバー
- トランザクション-ロール
- トランザクション-場所
- トランザクション-特定品目
- コンポジットトランザクション-明細
- 特定品目-明細
- トランザクション-後続トランザクション
ビジネスモデルというものは、会社ごとに違っているのが普通だと思います。同じビジネスモデルでは、競争なんて出来ませからこれはきわめて普通なことだと思います。モデリングというのは、ビジネスを抽象化して捕らえるところに意味がある行為です。そして、抽象化したレベルではいくつかのパターンを見ることが出来る。これが本書の説明したかった事柄だと思います。
解説
ビジネスモデリングにはその分野(ドメイン)の専門化が必要です。そして、問題点(What)を明確にすることが必要です。本書で解説されている12種類のビジネスモデリングパターンは、ドメインの共通する関係をすばやくモデリングするためにドメイン固有のオブジェクトで満たされ得るテンプレートを提供します。
パターンと聞いて最初に思い浮かべるのは、GoFのデザインパターンだと思います。これは、設計のパターンを示したもので、本書で説明しているストリームラインオブジェクトモデリングパターンは、ビジネスモデルを細分化したときのパターンになっています。
本書で説明されているパターンは非常に粒度の細かいものになっています。詳しいモデルパターンやモデル間の関係図は本書を見てください。 (^^;)
「ストリームラインオブジェクトモデリング」とは、モデリング方法論の一つです。この方法論の目指すところは、実世界のドメインに存在する、人、場所、モノ、事象を細分化不可能なレベルにまで落としたオブジェクトでパターン化することです。そして、パターンから、どんなオブジェクトモデリングでも作成できるようにすることがテーマになっています。
本書の面白いところは、12種類のモデリングオブジェクトパターンと、5種類のビジネスルール、3種類のビジネスサービスを使って、ストリームラインオブジェクトモデリングというものを構成しているところです。
最近のシステム開発の現場では、モデリングというものの比重が大きくなってきています。モデラーの人曰く、「モデリングにもある種のパターンはあるはず。モデルの中にそういったパターンがあると、一目でどんな構造になっているかとらえることが出来る。」らしいです。
本書で説明されているパターンは、非常に粒度が細かく、応用が利くパターンが多いと思います。オブジェクトモデリングだけでなく、データ指向(DOA)のモデリングにも使えます。一通りのパターンは知識として残しておくといいと思います。
覚書き
オブジェクトの識別
ドメインのオブジェクトを見つけるには、ドメインの専門家に聞くのが一番正確です。しかし、下記の4つの分類を知っているとある程度見つけられるはずです。
- 人
- 場所
- モノ
- 事象
人
人あるいは組織はほとんどの場合オブジェクトとなります。アクターと呼ばれます。人が行う<すべてのアクションは、コンテキスト内で生じるというオブジェクトモデリングのルールがあります。
コンテキスト内における「人」だけがアクションを行い、アクションがコンテキスト内のほかの人、場所、モノだけに関与します。
場所
人または場所によるすべての記録されるアクションは、ある場所で発生します。記録されるアクションが発生する場所をモデリングする場合は「場所」オブジェクトを使用します。
また、「場所」はしばしば階層構造になります。階層構造以外にも、場所を複数含むことの出来る「外部の場所」というオブジェクトも使用されます。
モノ
アクションを行うエンティティ(実体)はサブジェクト(主体)に関与します。アクションのサブジェクトになれるエンティティは「モノ」と考えられます。
「モノ」を集合として記述する場合(品目)と、特化したものとして記述する場合(特定品目)があります。これらを明確に区別することは、非常に大切な要素となってきます。
事象
「事象」は人や場所とモノとの相互作用になります。これは、例えば、あるアクションの履歴のような役割を持ちます。
参考
- モデリングのパターンを理解するのに非常にいい本です。
- ドメインにおける分析をパターン化した有名な本です。かなり難しいです。
- プログラム設計のパターン集です。