Training: "Domain-Driven Design"

Track: Tutorial

Time: Tuesday 09:00 - 12:00

Location: Stanford


Large information systems need a domain model. Development teams know this, yet they often end up with little more than data schemas. This tutorial delves into how a team, developers and domain experts together, can engage in progressively deeper exploration of their problem domain while making that understanding tangible as a practical software design. This model is not just a diagram or an analysis artifact. It provides the very foundation of the design, the driving force of analysis, even the basis of the language spoken on the project.

The tutorial will focus on three topics:

  1. The conscious use of language on the project to refine and communicate models and strengthen the connection with the implementation.
  2. A subtly different style of refactoring aimed at deepening model insight, in addition to making technical improvements to the code.
  3. A look at strategic design, which is crucial to larger projects. These are the decisions where design and politics often intersect.

The tutorial will include group reading and discussion of selected patterns from the book "Domain-Driven Design," Addison-Wesley 2003, and reenactments of domain modeling scenarios.

Attendee background

Prerequisites: Attendees must have a basic understanding of object-oriented modeling and the ability to read UML. Some involvement, past or present, in a complex software development project is helpful in seeing the applicability of the material, but is not essential. Familiarity with the practices of Agile Methods and/or Extreme Programming is helpful, but not essential.

Ralph Johnson, University of Illinois

 Ralph  Johnson Ralph Johnson is a co-author of the now-legendary book, "Design Patterns" (Addison-Wesley, 1995). He is on the faculty of the Department of Computer Science at the University of Illinois, where he is the leader of the UIUC patterns/Software Architecture Group and active in the Illinois Universal Parallel Computing Research Center. He wrote the first paper that used the word "refactoring", and his research group developed the first automated refactoring tools. He also has explored the use of the "Adaptive Object Model" architectural style for building domain models. His current interest is in documenting patterns for parallel programming and also looking at how to use parallelism in domain-specific programming environments.