Foreword.
Preface.
Acknowledgments.
I. PUTTING THE DOMAIN MODEL TO WORK.
1. Crunching Knowledge. Ingredients of Effective Modeling.
Knowledge Crunching.
Continuous Learning.
Knowledge-Rich Design.
Deep Models.
2. Communication and the Use of Language. UBIQUITOUS LANGUAGE.
Modeling Out Loud.
One Team, One Language.
Documents and Diagrams.
Written Design Documents.
Executable Bedrock.
Explanatory Models.
3. Binding Model and Implementation. MODEL-DRIVEN DESIGN.
Modeling Paradigms and Tool Support.
Letting the Bones Show: Why Models Matter to Users.
HANDS-ON MODELERS.
II. THE BUILDING BLOCKS OF A MODEL-DRIVEN DESIGN.
4. Isolating the Domain. LAYERED ARCHITECTURE.
Relating the Layers.
Architectural Frameworks.
The Domain Layer Is Where the Model Lives.
THE SMART UI ANTI-PATTERN
Other Kinds of Isolation.
5. A Model Expressed in Software. Associations.
ENTITIES (A.K.A. REFERENCE OBJECTS).
Modeling ENTITIES.
Designing the Identity Operation.
VALUE OBJECTS.
Designing VALUE OBJECTS.
Designing Associations That Involve VALUE OBJECTS.
SERVICES.
SERVICES and the Isolated Domain Layer.
Granularity.
Access to SERVICES.
MODULES (A.K.A. PACKAGES).
Agile MODULES.
The Pitfalls of Infrastructure-Driven Packaging.
Modeling Paradigms.
Why the Object Paradigm Predominates.
Nonobjects in an Object World.
Sticking with MODEL-DRIVEN DESIGN When Mixing Paradigms.
6. The Life Cycle of a Domain Object. AGGREGATES.
FACTORIES.
Choosing FACTORIES and Their Sites.
When a Constructor Is All You Need.
Designing the Interface.
Where Does Invariant Logic Go?
ENTITY FACTORIES Versus VALUE OBJECT FACTORIES.
Reconstituting Stored Objects.
REPOSITORIES.
Querying a REPOSITORY.
Client Code Ignores REPOSITORY Implementation; Developers Do Not.
Implementing a REPOSITORY.
Working Within Your Frameworks.
The Relationship with FACTORIES.
Designing Objects for Relational Databases.
7. Using the Language: An Extended Example. Introducing the Cargo Shipping System.
Isolating the Domain: Introducing the Applications.
Distinguishing ENTITIES and VALUE OBJECTS.
Role and Other Attributes.
<...