7
votes

One key concept in Domain-Driven Design (DDD) is the ubiquitous language.

What is the typical scope (consistency border) of such a ubiquitous language? Is it scoped by the bounded context (e.g. a system/component in a certain domain) or by the domain itself? In bigger enterprises, different systems (i.e. bounded contexts) might implement the same domain.

My assumption is that it's bound to a bounded context as consistency cannot be guaranteed across multiple bounded context (even if they belong to the same domain) but I am not sure.

4

4 Answers

7
votes

Bounded Context is where Ubiquitous Language lives.

Vaughn Vernon defines DDD in short as:

Developing Ubiquitous Language within Bounded Context

This question has been asked and answered before

UPDATE: I gave a talk at DDD Norway meetup about, covering the importance of UL and contexts. Slides can be found here.

5
votes

The ubiquitous language is defined within a bounded context. This becomes obvious when you look at different BCs that contain the same term. The concept of a book in an online shop is completely different than a book in a authoring system.

From Implementing DDD by Vaughn Vernon:

Bounded Context Is Explicit and Linguistic

A Bounded Context is an explicit boundary within which a domain model exists. Inside the boundary all terms and phrases of the Ubiquitous Language have specific meaning, and the model reflects the Language with exactness.

0
votes

+1 for BC. Here's a quote from Patterns, Principles, and Practices of Domain-Driven Design by Scott Millett and Nick Tune:

In Chapter 4, “Model-Driven Design,” you are introduced to the concept of the ubiquitous language (UL) and the importance of models defined in a context that are free from linguistic ambiguity. The context refers to the specific responsibility of the model, which helps to decompose and organize the problem space. A bounded context takes the idea of a model in context further by encapsulating it within a boundary of responsibility. This boundary is a concrete technical implementation, as opposed to the context that is more abstract. The bounded context enforces communication in such a manner as to not lessen the purity of the model.

A bounded context is first and foremost a linguistic boundary. [...]

Speak a ubiquitous language within an explicitly bounded context.

0
votes

At Explore DDD 2018 (Denver), Eric Evans put up a slide that said:

DDD is a set of guiding principles:

  • Focus on the core domain
  • Explore models in a creative collaboration of domain practitioners and software practitioners
  • Speak a ubiquitous language within an explicitly bounded context

This is not only an extremely succinct summary of DDD by its founder but the 3rd principle clearly explains the linkage between "ubiquitous language" and "bounded context". Note he says "a" ubiquitous language, not "the". There can be more than one, but each is within a different bounded context.