ドメインモデルを現実世界の情報の一覧として作ると、どこまで詳しくすべきかが決まらない。図書館の本について、紙の種類や表紙の色まで記録するかは、どんな機能を提供するかによって変わる。
コンセプトごとに振る舞いに必要な状態 を定義すると、その情報をモデルへ含める理由が明らかになる。表紙の色で本を探す振る舞いを提供するなら色が必要になるが、すべての図書館システムに紙の種類まで必要になるわけではない。
一つのデータモデルに見える関係も、目的によって分けられる。フォーラムの投稿と本文の関係は投稿のコンセプトに属し、投稿と通知を受け取りたい利用者の関係は通知のコンセプトに属する。全体のモデルを、理由を説明できる小さな構造の合成として扱うことで、情報を追加する判断も局所化できる。
出典:Daniel Jackson『優れたデザインにとってコンセプトが重要な理由』ノート48「コンセプトの特徴」、pp.236–237。
#software-design #concept-design #domain-model #data-modeling