Domain Modeling
Domain Modeling organizes the meaning, structure, rules, and boundaries of the problem domain as a Domain Model. In SimpleModeling, a Domain Model is not a fourth constituent alongside the Object Model, Knowledge Model, and Literate Model. It is an applied Model that selects and relates elements from those three constituents to understand, assess, and develop the problem domain.
A well-formed diagram and consistent terminology alone do not complete a Domain Model. It must be valid for the actual business and accurately represent its important rules and boundaries. Domain experts, developers, and generative AI share terminology, evidence, formal structures, and explanations to improve that validity iteratively.
Position in the Series
Parts 5 through 7 covered the three constituents of a SimpleModeling Model.
-
Object Model: executable Models and execution examples that formally express structure and behavior
-
Knowledge Model: a Model that lets generative AI explore, relate, and explain concepts, classifications, semantic relationships, rules, and evidence
-
Literate Model: a Model that primarily uses natural language to express context, intent, requirements, decisions, and Scenarios
From Part 8 onward, we organize the three constituents around development purposes. Domain Modeling focuses on what exists in the problem domain, what it means, and its structure and rules. State and behavior also belong in the Domain Model when they express the meaning of the subject itself. The next installment, Application Modeling, starts with user goals and Use Cases and focuses on realizing them through the UI and dynamic Collaborations and Interactions.
Previous article: 📄 Literate Modeling
What Domain Modeling Organizes
Domain Modeling clarifies at least four aspects of the problem domain.
| Aspect | Question |
|---|---|
|
Meaning |
What does this term or concept mean in this business? |
|
Structure |
How are concepts classified, related, and owned? |
|
Rules |
What is allowed, forbidden, or always true? |
|
Boundaries |
Within what scope do those meanings, structures, and rules apply? |
These four aspects are interdependent. For example, “customer” may mean different things in sales, contracts, billing, and support. The Context in which the term is used affects its attributes, relationships, and rules. Conversely, different rules attached to the same term may show that separate Contexts are needed.
The Domain Model as an Applied Model
The Object Model, Knowledge Model, and Literate Model are constituents of a SimpleModeling Model, each expressing a different aspect of the same subject. A Domain Model selects and relates the elements needed to understand and develop the problem domain from those three constituents; it is not another constituent at the same level.
This distinction keeps the Domain Model broader than a class diagram without turning it into one enormous document. Formal structure remains in the Object Model, semantic relationships and evidence in the Knowledge Model, and context and explanation in the Literate Model. Shared term identifiers and mappings between Model elements bring them together as one Domain Model.
Sharing Concepts through Terminology
Domain Modeling begins with terminology. A Glossary provides a common reference for identifying concepts and sharing their definitions, scope, and synonyms. Even words such as “relationship,” “association,” “ownership,” and “composition” are distinguished as Model concepts through Glossary identifiers.
When defining a term, associate it with the following information rather than relying on a single sentence.
-
The Context in which it is used
-
What it includes and excludes
-
How it differs from related or contrasting terms
-
Which rules, documents, Model elements, and examples support it
Referencing the same identifiers from the Object Model, Knowledge Model, and Literate Model lets people and generative AI trace the same concepts.
Contexts and Boundaries
A Context provides the background for interpreting terms and rules. A word’s meaning can change with the organization, business purpose, responsibilities, users, time, or legal system. Combining different business concerns under one definition without identifying their Contexts makes the Model unnecessarily complex.
A Bounded Context is the scope within which a Model's terms, structures, and rules have consistent meanings. Its boundary keeps meaning consistent inside and makes differences explicit when connecting to the outside; it is not simply a mechanical division of a system.
A Domain Model can include multiple Bounded Contexts when needed. Meaning remains consistent within each one, while mappings of terms and information across Contexts are made explicit.
Boundaries do not necessarily follow an organization chart or existing system divisions. Business responsibilities, reasons for change, groups of rules, and term meanings inform candidates, which are then adjusted against real examples.
Ubiquitous Language
Ubiquitous Language is shared by domain experts, developers, generative AI, Models, and programs within a Bounded Context. Registering terms in a Glossary alone does not establish it. The same meanings must be used in conversations, requirements, Models, CML, reviews, tests, and documentation. When meanings diverge, the terms and Model are updated together.
Ubiquitous Language does not unconditionally adopt every business term or impose implementation names on the business. Through collaboration, it preserves meaningful business distinctions while becoming precise enough for modeling.
Expressing the Domain Model through Three Constituents
The three constituents play distinct roles in one Domain Model.
| Constituent | Role in the Domain Model |
|---|---|
|
Formally expresses types, classifications, relationships, responsibilities, constraints, state, and behavior |
|
|
Knowledge Model |
Connects terms, concepts, classifications, semantic relationships, rules, evidence, and sources for exploration |
|
Literate Model |
Retains business context, intent, reasons for decisions, examples, existing specifications, and explanations in natural language |
For example, a business rule can be explained in the Literate Model, traced to its evidence and scope in the Knowledge Model, and expressed where needed as an executable constraint or behavior in the Object Model. Each constituent uses a suitable expression rather than duplicating the same prose.
Building a Domain Model Iteratively
Domain Modeling improves the Model's validity by moving between the following activities, rather than treating analysis as a single linear pass.
-
Collect existing documents, conversations, examples, rules, and terms in the Literate Model.
-
Organize terms and concepts and distinguish their meanings by Context.
-
Propose Bounded Contexts and their relationships.
-
Formalize concepts, classifications, relationships, and rules in the Object Model.
-
Connect semantic relationships, evidence, and sources in the Knowledge Model.
-
Generative AI generates and updates the Object Model.
-
Developers review the Model, diffs, evidence, impact, and validation results in textus-cbd-support.
-
Return review feedback to generative AI and, where necessary, check business validity with domain experts.
The order is flexible. Formalization can reveal ambiguous terms; examples can change a boundary; tracing evidence can uncover an exception to a rule. The reasons for updates and their impact must remain traceable.
The Model Development Loop with Generative AI and Developers
Generative AI can read large collections of documents and terms and propose concepts, duplicates, contradictions, boundaries, and formal structures. In SimpleModeling, textus-bok turns literate information into a Knowledge Model accessible to generative AI, which primarily generates and updates the Object Model. AI generation and updates are integrated into the regular development loop instead of requiring people to write the entire Object Model from scratch.
textus-cbd-support presents developers with a visualization of the generated Model, differences from its previous version, evidence, affected areas, and validation results. Developers assess its structure, design intent, feasibility, and change impact, then return a revision direction to generative AI. Domain experts join the loop when business meaning or exceptions need their judgment.
The loop does not treat a generative AI answer as the authoritative Model. It uses generative AI as a principal Model author while retaining developer review and feedback. By preserving the relationships among terms, evidence, Model elements, reasons for change, and review results, AI updates become traceable development work.
Example: “Confirm Order”
Consider “Confirm Order.” In the sales Context, confirmation may be the business event in which a user finalizes an order and subsequent changes become restricted. In the payment Context, payment authorization matters; in the inventory Context, stock reservation matters. Collapsing all three into one “confirm” Operation obscures terms and responsibilities.
-
The Literate Model describes the user’s goal, the order-confirmation Scenario, exceptions, and reasons for business decisions.
-
The Knowledge Model connects the meaning of “order confirmation” to its Context, related rules and evidence, and semantic relationships with payment and inventory.
-
The Object Model expresses the formal structures needed in the sales Context, such as orders, order lines, state, constraints, and Events.
This organization lets sales, payment, and inventory retain their own Models while clarifying the information and responsibilities that cross boundaries. The next installment uses this Domain Model to express user goals as Use Cases and organize the collaboration of the UI, Services, Operations, and Events as an Application Model.
Summary
-
Domain Modeling organizes the meaning, structure, rules, and boundaries of a problem domain as a Domain Model.
-
A Domain Model is an applied Model organized from the Object Model, Knowledge Model, and Literate Model for a particular purpose, not a fourth constituent.
-
The Glossary, Contexts, Bounded Contexts, and Ubiquitous Language establish shared meanings and their scope.
-
Common term identifiers and mappings between Model elements connect the three constituents.
-
Generative AI primarily generates and updates the Object Model; developers review diffs, evidence, impact, and validation results in textus-cbd-support and return feedback.
-
The Domain Model improves iteratively through examples, evidence, formalization, AI generation, and developer review.
Next Installment
Part 9, “Application Modeling,” starts with user goals and Use Cases to construct an Application Model that realizes those goals through the UI and dynamic Collaborations and Interactions. It uses the Domain Model's state and behavior as a foundation while addressing coordination among the UI, Services, Operations, and Events.
References
Glossary
- Object Model
-
Undefined
- Model
-
A Model is an abstraction that represents a subject according to a particular Purpose and Concern so that it can be understood, reasoned about, evaluated, or constructed. It is not the subject itself; it preserves the elements, relationships, and meanings required for its purpose.
- Domain Modeling
-
Undefined
- SimpleModeling
-
SimpleModeling is a modeling-centered software development methodology and technology system for constructing a Domain Model from Knowledge, formalizing it in CML, realizing it as executable software through Cozy and AI, and running it on Textus.
- Domain Model
-
Undefined
- Knowledge Model
-
A Knowledge Model structures the concepts, semantic relationships, classifications, rules, evidence, sources, and related knowledge in a SimpleModeling Model primarily so that generative AI can retrieve, explore, relate, and interpret them.
- Activity
-
A concrete action or task performed within an Activity Space to move an Alpha to a more advanced state, typically producing or refining Work Products.
- Literate Model
-
Undefined
- Behavior
-
In UML, Behavior is a specification of how its context Behaviored Classifier changes State over time. It may define possible executions, emergent Behavior, or a selected example of execution.
- Collaboration
-
In UML, a Collaboration is a Classifier describing a structure of participant Roles that perform specialized functions and collectively accomplish desired functionality.
- State
-
In UML, a State models a situation during which an invariant condition holds. The current State of an Object may determine accepted Events and Operations, applicable Constraints, and possible next Transitions.
- Application Modeling
-
Application Modeling is the activity of concretizing Use Cases as application behavior and constructing an Application Model. It clarifies the mappings from Use Case Scenarios to participants, Roles, responsibilities, Collaborations, Interactions, state transitions, Events, Services, and Operations.
- Use Case
-
In UML, a Use Case is a Model Element that specifies a set of Actions performed by a subject to yield an observable result of value to an Actor or other stakeholder.
- Aspect
-
An Aspect is a condition, property, or Concern examined across multiple Model Elements or behaviors. It centers on Quality Attributes and may include cross-cutting conditions that are not adequately expressed by a Quality Attribute alone.
- Attribute
-
An Attribute is a Structural Feature representing a value or reference that Instances of a Classifier may hold. An Attribute may be characterized by a name, Type, Multiplicity, default value, and Constraints.
- Class Diagram
-
A Class Diagram is a UML Diagram that presents the static structure of a Model using Classes, Interfaces, Data Types, Associations, Generalizations, Dependencies, and related elements.
- Glossary
-
A Glossary is a knowledge resource that manages the names, meanings, boundaries, synonyms, and identifiers of terms used in a subject domain. It provides a common foundation for participants to use the same terms with the same meanings.
- Identifier
-
An Identifier is a value used to refer to a subject with Identity or to a correlation subject and distinguish it from others. An Identifier may represent Identity, but it is not itself the meaning by which the subject remains the same over time.
- Test
-
A Test is an activity and specification that executes or evaluates a subject under stated conditions and compares observed results with expected results or Constraints to check conformance to requirements or contracts.
- CML (Cozy Modeling Language)
-
CML (Cozy Modeling Language) is the SimpleModeling formal modeling language for describing the Executable Model portion of an Object Model that connects to program generation and execution.
- Responsibility
-
A Responsibility is an obligation stating what an Object or Role must know, decide, perform, or protect. It assigns ownership of rules and Behavior, not merely structural information.
- Constraint
-
In UML, a Constraint is a condition or restriction expressed in natural language or a machine-readable language to declare part of the Semantics of one or more Model Elements. Its evaluation yields a Boolean value and has no side effects.
- Type
-
Undefined
- validation
-
Validation is the activity of confirming that a system or product fulfills its intended use and stakeholder requirements.
- Operation
-
In UML, an Operation is a Behavioral Feature of a Classifier that specifies the name, type, Parameters, and Constraints for invoking associated Behavior. The Operation specifies an invocation contract, while a Method or another Behavior realizes it.
- Event
-
In UML, an Event describes an occurrence that may arise during the execution of Behavior. Receiving an Event occurrence may trigger Behavior such as a Transition in a StateMachine.
- Application Model
-
An Application Model is a purpose-specific Model describing how an application realizes Use Cases through participants, Roles, responsibilities, Collaborations, Interactions, state transitions, Events, Services, Operations, and Outcomes.