Domain Model Elements

ASAMI, Tomoharu Created: 2025-08-04

SimpleModeling uses the following fundamental elements to construct domain models.

  • Entity

  • Value

  • Data Type

  • Powertype

  • Service

  • Event

  • Rule

  • Component

  • Subsystem

SimpleModeling captures the structure of the real world using these modeling elements.

Domain Model Elements
Figure 1. Domain Model Elements

When it is necessary to explicitly indicate that a model element belongs to a domain model, we prefix it with "Domain", such as "Domain Entity". However, when the context is already within domain modeling, we refer to elements simply as "Entity", without the "Domain" prefix.

Classifier

In UML, class-like model elements within models are called classifiers.

The following model elements are classified as types of classifiers:

We will discuss classes later; here, we explain the model elements that fall directly under classifiers, excluding classes.

Note that classifiers appear in this article for classification purposes of domain components, but they are rarely used directly in domain modeling itself.

Domain DataType

Domain data types are data types defined within a domain model.

These data types are defined by extending the basic data types provided in Profile : Base DataType with domain-specific constraints and semantics.

Examples: EmailAddress, PostalCode

Domain Powertype

Domain powertypes are powertypes defined within a domain model.

A powertype is a model element that represents the classification of a class.

It serves a similar purpose to traditional classification codes.

In implementation, powertypes are often represented using enum types.

Examples: CustomerType, ProductCategory

Domain Component

A domain component represents a functional unit within a domain model.

It encapsulates multiple entities and services, forming a reusable structural unit.

Domain SubSystem

A subsystem is a type of component that encapsulates a domain area with a clear responsibility across the entire application.

Examples: Billing Subsystem, Inventory Management Subsystem # Domain Class

In UML, a class is one type of classifier and provides the general characteristics of a class.

In SimpleModeling, the following are the main classes that serve as elements of a domain model.

  • Domain Entity

  • Domain Value

  • Domain Rule

  • Domain Service

Domain Entity

A domain entity is an entity object that forms part of the domain model.

It is a persistently existing object, recorded in databases and surviving beyond the lifecycle of software execution.

In SimpleModeling, domain entities are classified into the following four types:

  • Domain Resource

  • Domain Task

  • Domain Actor

  • Domain Role

Domain Resource

A domain resource is an entity object that represents information about "resources" required for software operation.

Nature

Static (master data)

Creation Timing

Registered before or during stable system operation

Primary Purpose

Definition and reference of information

Persistence

Referenced for long periods and rarely modified

State Transition

No state changes during normal operation

Relationship

Referenced by other entities (being referenced)

Deletion / Modification

Rarely deleted, limited modifications (with history tracking)

Application UI

UI for reference and selection is needed

Representative Examples

Customer, Product, Warehouse, Department

Domain Task

A domain task is an entity object that represents information about "actions" during software operation.

Nature

Dynamic (transaction data)

Creation Timing

Generated sequentially during business operations

Primary Purpose

Execution and recording of business operations

Persistence

Persisted but generally immutable after completion

State Transition

Has explicit state transitions (e.g., Draft → Confirmed → Completed)

Relationship

Refers to other entities (uses resources)

Deletion / Modification

Generally not modified after completion (for auditing)

Application UI

UI for creation, editing, processing, and state transitions is needed

Representative Examples

Order, Payment, Leave Request, Inquiry, Approval Request

Domain Actor

A domain actor is a proxy object that represents external entities such as users or external systems.

Examples: User, Payment Service

Domain Role

A domain role is an entity object that represents the role or relationship an entity fulfills within a context.

Examples: Assignee, Issuer

Domain Value

A domain value is an immutable object that has no identifier and derives its meaning solely from its value.

Examples: Money, Address

Domain Event

A domain event models an event that occurs within the domain.

It captures business state changes and is used for notifications or event sourcing.

Examples: OrderConfirmed, InventoryChanged

Domain Rule

A domain rule is an object that encapsulates rules used within the domain.

It represents business logic, constraints, and other rules or decision criteria within the domain.

Domain Service

Represents procedural business logic that does not belong to a specific object.

It is applied to processes exposed outside subsystems/components or those that span multiple domain objects.

Examples: Invoice issuance, payment processing, bulk inventory adjustment

Domain Object

The term "domain object" narrowly refers to instances of domain classes, but in SimpleModeling, we use it in a broader sense to refer to all classifiers that make up a domain model, including both their definitions and instances.

Specifically, the following classifiers discussed in this article are considered domain objects:

  • Domain Entity

  • Domain Value

  • Domain Event

  • Domain Service

  • Domain Rule

  • Domain Data Type

  • Domain Powertype

  • Domain Actor

  • Domain Role

  • Domain Component

  • Domain Subsystem

State Machine

A state machine defines the transitions and control rules within the lifecycle of a domain object.

In particular, domain tasks and some entities have explicit state transitions to manage business progress.

Although not a classifier, the state machine is an important element for explicitly expressing domain model behavior.

References

Glossary

Component

A software construct that encapsulates well-defined responsibilities, contracts, and dependencies as a reusable and replaceable unit. In the logical model, it serves as an abstract structural unit; in the physical model, it corresponds to an implementation or deployment unit.

UML (Unified Modeling Language)

A standardized modeling language for object-oriented analysis and design. It represents system structures and behaviors through diagrams such as class, sequence, and use case diagrams. Serves as the foundational language for UP and CBD.

entity object

An Entity Object is an object in a domain model that has a unique identifier (ID) and is continuously identified and tracked throughout its lifecycle. Entities are mutable and treated as the same object even if their state changes, as long as they retain the same ID.

Domain Event

A Domain Event represents an observation that carries meaning within the domain and triggers corresponding behaviors or processes. Domain events explicitly model state changes in the system or business and drive interactions across application layers or with external systems.

Domain Object

A Domain Object is an object that represents concepts from the real-world domain targeted by a software system, encapsulating business logic and conceptual structure. It serves as a central building block of the domain model, encompassing elements such as entities, value objects, services, rules, and events. Domain objects are not just data structures or processing units within the system, but parts of a model that reflect the semantics and behavior of the problem domain.