name: analyzing-domain-model description: ドメインモデル設計を支援。エンティティ、値オブジェクト、集約の設計。DDD やドメインモデリングの検討時に使用。
ドメインモデル設計支援
DDD の戦術的設計パターンに基づくドメインモデルを設計します。
Instructions
1. 参照ドキュメント
- @docs/reference/ドメインモデル設計ガイド.md - ドメインモデル設計の進め方
2. 入力
- @docs/requirements/requirements_definition.md - 要件定義
- @docs/requirements/business_usecase.md - ビジネスユースケース
- @docs/requirements/system_usecase.md - システムユースケース
- @docs/requirements/user_story.md - ユーザーストーリー
- @docs/design/architecture_backend.md - バックエンドアーキテクチャ
- @docs/design/architecture_frontend.md - フロントエンドアーキテクチャ
3. 成果物
- @docs/design/domain-model.md - ドメインモデル設計
4. 作業内容
エンティティ定義
- ライフサイクルを持つドメインオブジェクトの識別
- 識別子の設計
値オブジェクト定義
- 不変で識別子を持たないドメインオブジェクトの識別
- バリデーションルールの定義
集約の設計
- 集約ルートの識別
- 集約境界の定義
- 不変条件の設計
ドメインサービス定義
- エンティティに属さないビジネスロジックの識別
ダイアグラム作成
- PlantUML を使用したクラス図・オブジェクト図の作成
5. 注意事項
- 前提条件: 要件定義とアーキテクチャ設計が完了していること
- 制限事項: PlantUML を使用してダイアグラムを作成すること
- 推奨事項: ユビキタス言語を使用してドメインエキスパートと共通認識を持つ
6. 記述ルール
タスク項目などは一行開けて記述する。
OK:
**受入条件**:
- [ ] エンティティが定義されている
- [ ] 集約境界が明確である
NG:
**受入条件**:
- [ ] エンティティが定義されている
- [ ] 集約境界が明確である
Examples
ユースケースに基づくドメインモデル設計
- システムユースケースとユーザーストーリーを読み込む
- @docs/reference/ドメインモデル設計ガイド.md に基づいて設計
- エンティティ、値オブジェクト、集約を識別してドメインモデルを作成