4 Model-Driven Design

WHAT’S IN THIS CHAPTER?

  • The definition of a domain model
  • Binding a code model to the analysis model using a ubiquitous language
  • The importance of a ubiquitous language
  • How to collaborate on a ubiquitous language for improved communication
  • Tips on how to create effective domain models
  • When you should apply Model-Driven Design

With a deep and shared understanding of the problem domain, along with insight into the core areas that are fundamental to the success of an application, you are now able to focus on the solution space. However, it is important to implement in code the analysis model that was produced during knowledge-crunching sessions; i.e., the model that the business understands. Traditional software processes keep the code model and analysis model separate, which leads to an implementation that rarely resembles the blueprint due to new insight and constraints of the technical solution. DDD acknowledges the need to produce a single model that serves as an analysis model for business people to understand and which is implemented using the same terminology and concepts in code.

This process is known as Model-Driven Design and is heavily dependent on Ubiquitous Language to tie the technical implementation of the model to the analysis model and keep them in sync throughout the lifetime of the system. As well as detailing Model-Driven Design and Ubiquitous Language, this chapter also covers patterns to create effective domain models and the scenarios ...

Get Patterns, Principles, and Practices of Domain-Driven Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.