DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Architectural Evidence in Enterprise Java: Making Domain-Driven Design Visible
  • Tactical Domain-Driven Design: Bringing Strategy to Code
  • Strategic Domain-Driven Design: The Forgotten Foundation of Great Software
  • Why Domain-Driven Design Is Still Essential in Modern Software Development

Trending

  • Building a RAG-Powered Bug Triage Agent With AWS Bedrock and OpenSearch k-NN
  • How SaaS Architectures Break at Scale — and the Engineering Decisions That Prevent It
  • MuleSoft IDP: Enhancing Efficiency and Accuracy in Data Extraction
  • Stateless JWT Auth Microservice Architecture With Spring Boot 3 and Redis Sentinel
  1. DZone
  2. Data Engineering
  3. Databases
  4. Importance of Ubiquitous Language in Domain-Driven Design

Importance of Ubiquitous Language in Domain-Driven Design

Once developers and domain experts speak the same language, production pipelines can move forward more smoothly.

By 
Hari Subramanian user avatar
Hari Subramanian
·
May. 21, 19 · Opinion
Likes (5)
Comment
Save
Tweet
Share
23.7K Views

Join the DZone community and get the full member experience.

Join For Free

Most commercial software applications are created with a set of complex business requirements to solve specific business problems or needs. However, expecting all the software developers/architects to be experts on business domains and expecting them to know entire business functions is also impractical. On the other hand, how do we create software that brings value and has consumers who are in need of automation that will use the software? A software application cannot be just a showpiece of technical excellence, but in most cases, also real and usable of automated business excellence. The domain-driven design and models are the answers to those questions.

This short article talks about one of the key principles of Domain-Driven Design called "Ubiquitous Language" as DDD concepts, principles, and patterns bring technology and business excellence together to any sophisticated software applications that can be created and managed.

Talk Ubiquitously

Ubiquitous language is a model that acts as a universal language to help communication between software developers and domain experts.

Collaborating, learning, and defining a model brings a lot of initial communication barriers between software specialists and domain experts. So evolving domain model with practicing the same type of communications (discussions, writings, and in diagrams) within a context is paramount for successful implementations, and that sort of conversation is called Ubiquitous Language. It is structured around the domain model and extensively used by all the team members within a bounded context. It should be the medium or mode to connect all the activities of the team within the development of software.

The design team can establish deep understanding and connecting domain jargons and software entities with Ubiquitous language to keep discovering and evolving their domain models.



Ubiquitous Language



Equivalent Pseudo Code



Comments


We Administer Vaccines

AdministerVaccines {}

Not a core domain – need some more specific details

We administer flu Shots to patients

patientNeedAFluShot()

Better, may be missing some domain concepts

The nurse administers flu vaccines to a patient in standard doses

Nurse->administer vaccine(patient, Vaccine.getStandardDose())

Much better, and may be good to start with.


As we observe in the above table, there are various ways the user stories (requirements) can be given; however, the last row makes sense as it does have more clarity on what and how factors.

Hopefully, this article helps readers to get a glimpse of how DDD principles advocates and helps greater collaboration between subject matter experts, business analysts, nontechnology stakeholders with the technical/development community to produce complex domain driven systems. 


Domain-driven design Design Software

Opinions expressed by DZone contributors are their own.

Related

  • Architectural Evidence in Enterprise Java: Making Domain-Driven Design Visible
  • Tactical Domain-Driven Design: Bringing Strategy to Code
  • Strategic Domain-Driven Design: The Forgotten Foundation of Great Software
  • Why Domain-Driven Design Is Still Essential in Modern Software Development

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook