ドメインモデリングの手順
1. スコープの設定
- モデリング対象のスコープを設定する
- スコープを決めなかったり、広すぎたりすると後述の構成要素が爆発的に増えるので構成要素の分析だけで時間を浪費してしまう
- 現実的な工数でドメインを分析する為に対象のスコープを適切な大きさに設定することが重要
- ユースケースや機能レベルでスコープ設定することが多い
2. スコープの構成要素の洗い出し
- スコープのユースケースシナリオや作業手順などから構成要素を抽出する
- 動詞や名詞、概念的なものを洗い出す
3. 構成要素の分析
- 洗い出した構成要素を更に分析する
- 更に細かく分類できないか、サブクラスの関係にないか、などなど
- この時、UMLや疑似コードでモデルを具体化する
- 個人的には疑似コードで表すのが低コストかつ(エンジニアには)分かりやすいのでおすすめ
- 例えば、書籍を表現するモデルは↓のような疑似コードになる
type 書籍 = {
書籍ID
タイトル
著者リスト
ISBN
発行日
}
type 著者リスト = {
List[著者,]
}
type 著者 = {
著者ID
名前
}
- 疑似コードで記述する利点はプログラムとして実行することを前提としていないので、必要に応じて自由な記述法を採れること
- もちろん実装対象のプログラミング言語で表現しても構わない
-
Protocol Buffers
で記述すると様々なプログラミング言語にコンバートできるので楽しいかもしれない(試したことはない)
4. 要素同士の関連性の分析
参考資料