ドメイン・モデルの基本構成要素
SimpleModelingではドメイン・モデルを構成する基本構成要素として以下のものを使用します。
-
エンティティ
-
バリュー
-
データ型
-
パワータイプ
-
サービス
-
イベント
-
ルール
-
コンポーネント
-
サブシステム
SimpleModelingでは、現実世界の構造をこれらのモデル要素を使って写し取ります。

ドメイン・モデルのモデルであることを明示したい場合には、ドメイン・エンティティなどのように先頭に「ドメイン」をつけますが、ドメイン・モデルについて議論している場合には単に「エンティティ」というように先頭に「ドメイン」をつけないで呼ぶことにします。
分類子
UMLではモデル要素の中のクラス的なモデル要素を分類子(classifier)と呼びます。
分類子の一種として以下のモデル要素が存在します。
-
クラス
-
データ型
-
パワータイプ
-
コンポーネント
クラスは後ほど取り上げるとして、それ以外の分類子直下にあるモデル要素について説明します。
なお分類子はドメインの構成要素の分類上、本記事に登場していますが、ドメイン・モデリングの中ではほぼ登場することはありません。
ドメイン・データ型
ドメイン・データ型はドメイン・モデル内で定義しているデータ型です。
データ型は「プロファイル:基本データ型」で用意している基本データ型をベースに、制約や意味を付与したドメイン固有のデータ型を定義します。
例: EmailAddress, PostalCode
ドメイン・エンティティ
ドメイン・エンティティはドメイン・モデルを構成するエンティティ・オブジェクトです。
データベースなどに記録され、ソフトウェアの開始終了のライフサイクルを超えて永続的に存在し続けるオブジェクトです。
SimpleModelingではドメイン・エンティティは以下の4種類に分類されます。
-
ドメイン・リソース
-
ドメイン・タスク
-
ドメイン・アクター
-
ドメイン・ロール
ドメイン・リソース
ドメイン・リソースはソフトウェアの動作に必要な「資源」に関する情報を表すエンティティ・オブジェクトです。
- 性質
-
静的(マスターデータ)
- 生成タイミング
-
システム運用前または安定時に登録
- 主な目的
-
情報の定義・参照
- 永続性
-
長期間参照され、頻繁には変更されない
- 状態遷移
-
通常運用中での状態遷移はもたない
- 関係性
-
他のエンティティに参照される(参照される側)
- 削除・変更
-
滅多に削除されず、変更も限定的(履歴保持が前提)
- アプリケーションUI
-
参照や選択のUIが必要
- 代表例
-
顧客、商品、倉庫、部署など
ドメイン・イベント
ドメイン・イベントは、ドメイン内で発生するイベントをモデル化したものです。
業務上の状態変化を記録し、通知やイベントソーシングなどにも活用します。
例:注文確定(OrderConfirmed)、在庫変動(InventoryChanged)
ドメイン・サービス
オブジェクトに帰属しない手続的な業務ロジックを表現します。
サブシステム/コンポーネント外部に公開する処理や、複数のドメイン・オブジェクトを横断的に扱う処理に適用されます。
例:請求書の発行、決済処理、在庫の一括調整