Domain Modeling - Identifying the Nouns
Identifying the entities existent in a problem space.
Overview
Concept
Developing and documenting a conceptual model of the things that exist within the domain of the project, and the interrelationships among those things.
Domain models help break down and understand the problem space within which work will be performed.
Concept (continued)
Whereas use cases and user stories help understand the users and their interactions with the system, domain modeling helps understand the internals of the system to be built.
Living documentation
Domain models are living documents. They are continually refined as needed.
They are never done and never exhaustive. They are conversational in nature.
They provide only as much information as is useful to those involved in a project.
Living documentation (continued)
As you work on a project, your understanding of the domain expands.
Keeping an up-to-date domain model can help all involved agree on the details of the domain.
Entities
Concept
Entities are the things that exist in the domain of a project that must be documented.
Entities may be people, processes, system components, databases, or any other noun.
Process
Identifying entities is easy (if you have written documentation of the project).
- Go through all existing documentation and write down all the nouns.
- Consolidate any synonyms that describe the same thing.
- Remove any nouns that are, in fact, attributes or properties of other nouns - these are not entities.
Diagramming
Domain models follows a standardized modeling style defined by the Unified Modeling Language (UML), a commonly-used diagramming language.
- Entities are placed in rectangles.
Example
Relationships
Concept
Once entities are established, document the relationships or interactions among them.
- How many of each entity are involved in the relationship? This is the multiplicity of the relationship
Diagramming
Domain models follows a standardized modeling style defined by the Unified Modeling Language (UML), a commonly-used diagramming language.
- Relationships are drawn as lines between the related entities.
- The multiplicity, or how many instances of each entity are involved in a given relationship, are notated next to the relevant entity.
Example
Example
This example contains additional details about each entity:
Entity-Relationship Diagrams
Concept
In database design, very similar diagrams are created, called Entity-Relationship Diagrams (ERD).
- The two are done for different purposes, but the style of diagram is very similar.
Conclusions
Thank you. Bye.