アプリ開発日記 #121 概念モデルの再構築
新しく作るアプリ
いつも期限前日に焦ってしまう人のためのスケジュール管理アプリを作ろうと考えています。
今日までの作業
機能設計を行った結果、いくつか必要な項目が足りていないことや、作成した概念モデルではクラス構成がいまいちなことがわかりました。
そのため、作成していた概念モデルを一度削除し、再度概念モデルの作成を行いました。
概念モデルの再作成では、機能設計で詳細に検討した機能をもとに、最初にキーワードとなる項目を使用して大きな単位でクラスを定義していきました。
その後機能設計の中で登録が必要となる項目や、実現しようとしている機能を基に、作成したクラスに含める項目を定義していきました。
また、作成したクラスに含めようとしていた項目の中には、不変のものと可変のものが混在しているものも存在しました。
そのため、大きな単位で定義したクラスから派生する形で一部のクラスの定義を行いました。
クラス分割ではDDDの値オブジェクトとエンティティを意識して行いました。
具体的には、値オブジェクトおよび、エンティティオブジェクトを以下のような定義としてクラス分割を検討しました。
- 値オブジェクト:不変なオブジェクト。システム内では整数型、文字列型のような型としてふるまう。
- エンティティ:可変のオブジェクト。システム内ではライフサイクルが存在する項目としてふるまう
明日以降の作業
機能設計を基に概念モデルの見直しを行う。
機能設計を基にユースケース図をより詳細なものに修正する
DDDの本
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者:エリック・エヴァンス
- 発売日: 2011/04/09
- メディア: 大型本
「実践ドメイン駆動設計」から学ぶDDDの実装入門 (CodeZine Digital First)
- 作者:青木 淳夫
- 発売日: 2019/05/31
- メディア: オンデマンド (ペーパーバック)