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
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 ratings0% 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
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.