The UbiquitousLanguage is shared by the developers and the business experts (users, customers) and promotes a common understanding of the BusinessDomain. The terms used for the same concepts should be as consistent as possible. The UbiquitousLanguage must evolve with the understanding of the system and the business in order to maintain its value. In DomainDrivenDesign, you should RefactorTowardDeeperInsight if the UbiquitousLanguage is violated. SystemMetaphor and UbiquitousLanguage are overlapping topic. UbiquitousLanguage begins in the business domain, and the SystemMetaphor concerns the architecture of the solution. Each layer of a project, from the end users thru the view to the back-end and the database, should use the same names for the same things. ---- See TowerOfBabel