Domain Model
A conceptual representation of the key entities, rules, and relationships within a specific problem domain.
Also known as: Domain Object Model, Conceptual Model
Category: Software Development
Tags: software-development, modeling, design, knowledge-management, mental-models
Explanation
A Domain Model is an abstraction that describes the essential concepts, behaviors, and rules of a particular problem area. It represents how domain experts think about their field—capturing the vocabulary, entities, relationships, constraints, and business logic that define how things work in that domain.
In software engineering, domain modeling is central to Domain-Driven Design (DDD), pioneered by Eric Evans. DDD argues that the most important asset in complex software is not the code itself but the shared understanding of the domain captured in the model. The model serves as the 'ubiquitous language' that both developers and domain experts use, eliminating the translation layer that typically introduces errors and misunderstandings. When the code directly reflects the domain model, changes in business requirements map cleanly to changes in code.
A domain model typically includes: entities (objects with identity that persist over time, like a Customer or Order), value objects (immutable objects defined by their attributes, like an Address or Money amount), aggregates (clusters of entities and value objects treated as a unit), services (operations that don't naturally belong to any entity), and domain events (significant occurrences the system needs to react to).
Beyond software, domain modeling is a powerful thinking tool. When you build a domain model, you're forced to make implicit knowledge explicit—identifying the core concepts, distinguishing what matters from what doesn't, and mapping how pieces relate. This is equally valuable in knowledge management (modeling a field of study), business strategy (modeling market dynamics), and education (building mental models of a subject). The act of modeling reveals gaps in understanding and surfaces hidden assumptions.
Related Concepts
← Back to all concepts