The Essence of Software のコンセプトは、一つの目的を状態と操作によって果たす、ひとまとまりの仕組みとして捉えると粒度を考えやすい。画面やクラスの大きさをそろえるより、何の役に立ち、その効用をどう実現するかを、ほかのコンセプトの規則に頼らず説明できるかを問う。
たとえばラベルによる分類は、対象にラベルを付ける操作だけでは完結しない。付けたラベルを使って対象を見つけられるところまで含めると、「対象を重なり合う分類で整理して見つける」という目的を果たせる。ラベルを付ける操作や外す操作は、このコンセプトの内部にある操作として扱える。
一方、ラベル付きタスク管理には、仕事の未完了と完了を区別する仕組みと、ラベルで対象を分類して見つける仕組みがある。進捗管理はラベルなしで説明でき、ラベルは対象が仕事でも写真でも説明できるので、別々のコンセプトとして取り出せる。両者の接続は 合成時の同期 で表す。
粒度を探る目安は、目的、その目的を達成する操作と結果の筋書き、接続先を変えても説明できる規則の三つである。細かく切りすぎると効用が成立する前に筋書きが途切れ、大きくまとめすぎると独立して説明できる複数の目的が混ざる。これは本書の独立性と目的の条件を、設計時の問いとして読み替えたもの。
ただし、境界が唯一に決まるわけではない。著者は「複写」を一つのコンセプトとして提供する設計と、「スキャン」と「印刷」に分けて合成する設計を比較している。前者は目的を直接達成でき、後者は各々を別の用途にも使える。どんな効用を独立して提供したいかによって、適切な境界は変わる。ソフトウェアの境界は目的別に設計される という見方にもつながる。
同じ現実の対象でも、システム内で果たす目的によって、どのコンセプトに属するかが変わる。株取引システムでは株式の取引が関心事になるが、融資管理システムでは、保有株式は融資リスクを評価する資産として扱える。現実世界にその対象が存在し、何らかの目的を持つだけでは、設計するシステムのコンセプトとして取り出す理由にならない。
Daniel Jackson『優れたデザインにとってコンセプトが重要な理由』ノート48「コンセプトの特徴」、pp.232–233。
Daniel Jackson の Concept Design Moves、§2.1 と §3.1。