0% found this document useful (0 votes)
73 views

Domain Driven Design

Domain-driven design (DDD) is an approach where the software structure and code match the business domain. The primary focus is on the core domain and domain logic. Complex designs are based on a model of the domain created through collaboration between technical and domain experts. Key concepts include the domain, which is the subject area users apply the software to, and the domain model, which describes selected aspects of the domain to solve problems. A domain expert owns a particular domain area. The ubiquitous language is understood by all team members to connect activities to the software. Benefits include improved communication using a shared business language, extensibility, and testability through loosely coupled domain model objects. DDD is useful for complex domains where clear communication

Uploaded by

Zubair Sanjrani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views

Domain Driven Design

Domain-driven design (DDD) is an approach where the software structure and code match the business domain. The primary focus is on the core domain and domain logic. Complex designs are based on a model of the domain created through collaboration between technical and domain experts. Key concepts include the domain, which is the subject area users apply the software to, and the domain model, which describes selected aspects of the domain to solve problems. A domain expert owns a particular domain area. The ubiquitous language is understood by all team members to connect activities to the software. Benefits include improved communication using a shared business language, extensibility, and testability through loosely coupled domain model objects. DDD is useful for complex domains where clear communication

Uploaded by

Zubair Sanjrani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Domain-driven design 

(DDD)

Domain-driven design (DDD) is the concept that the


structure and language of software code (class names, class
methods, class variables) should match the business
domain. For example, if a software processes loan
applications, it might have classes such as LoanApplication
and Customer, and methods such as AcceptOffer and
Withdraw.
DDD connects the implementation to an evolving model

Domain-driven design is predicated on the following


goals:

•Placing the project's primary focus on the core 


domain and domain logic.

•Basing complex designs on a model of the domain

•Initiating a creative collaboration between technical


and domain experts to iteratively refine a conceptual
model that addresses particular domain problems.
Concepts of the model include:

Context

Contexts are portions of the solutions space. The setting in which


a word or statement appears that determines its meaning.
Domain

The subject area to which the user applies a program is the


domain of the software. It is also termed as sphere of
knowledge. In a banking system the following are the
highlighted domain models.
Model

A system of abstractions that describes selected aspects of


a domain and can be used to solve problems related to that
domain. The Domain Model itself could be a diagram, code
examples or even written documentation of the problem.
The important thing is, the Domain Model should be
accessible and understandable by everyone who is involved
with the system.
Domain Expert

Domain expert is a person who is an owner in a particular


area or topic.

Consider a banking system there can be different domains


such as Retail Banking, Corporate Banking, Home Lending,
Investment Banking, Insurance, cards services, ATMS are of
different type of domains. One dedicated person with
expertise to a specific domain will be responsible to handle
end to end business deliverables and solutions what a
business need. Domain experts works closely with
developers, end user, project management to successfully
deliver a system.
Ubiquitous Language

Ubiquitous language is a language communicated around the


domain model and used by all team members to connect all
the activities of the team with the software.
Advantages:

•Communication. All parties within a development


team can use the domain model and the entities it
defines to communicate business knowledge and
requirements using a common business domain
language, without requiring technical jargon.

•Extensible. The domain model is often modular and


flexible, making it easy to update and extend as
conditions and requirements change.

•Testable. The domain model objects are loosely


coupled and cohesive, allowing them to be more easily
tested.
Consider DDD if you have a complex domain and you wish to
improve communication and understanding within your
development team, or where you must express the design of
an application in a common language that all stakeholders can
understand. DDD can also be an ideal approach if you have
large and complex enterprise data scenarios that are difficult
to manage using other techniques.

You might also like