Home

domainoriented

Domain-oriented is an approach to software development that places the domain—the real-world area a system is intended to model—at the center of design and implementation. It emphasizes capturing domain knowledge as a formal model and using that model to guide architecture, data structures, and behavior. The term is closely related to domain-driven design (DDD); while DDD provides a set of tactics for handling complexity, domain-oriented work centers on aligning software with the domain concepts and the language used by stakeholders. The goal is to create software whose structure expresses domain concepts plainly and supports business objectives.

Practices commonly associated with domain-oriented work include building a domain model with entities, value objects, aggregates,

See also: Domain-driven design, domain model, bounded context, ubiquitous language.

and
domain
services;
adopting
a
ubiquitous
language
shared
by
domain
experts
and
developers;
and
organizing
the
system
into
bounded
contexts
with
explicit
integration
rules.
The
core
domain
logic
remains
central,
while
infrastructure
and
user
interfaces
are
designed
to
support
it.
Techniques
such
as
event
sourcing,
domain
events,
and
repositories
may
be
used
to
model
changes
and
persist
state.
Benefits
include
improved
alignment
with
business
needs,
clearer
communication,
and
greater
adaptability
to
change;
drawbacks
may
include
upfront
modeling
effort
and
the
risk
of
overengineering
if
the
domain
is
not
well
understood.