Domain-Driven Design (DDD) is an approach to software development that focuses on creating high-quality, flexible, and maintainable software by deeply understanding and modeling the problem domain. DDD emphasizes collaborative and iterative exploration of the problem space together with domain experts, enabling the creation of software systems that closely reflect real-world domains.

Stock management domain story

In our previous story, we explained what Domain Storytelling is and how we use draw.io to record our Domain Stories.

In this story, we will demonstrate the use of our icons in a slightly more elaborate example. Should you wish to reuse our icons, at the bottom of the story you can find out how to import them into your own draw.io diagrams.

Example Domain Story - Ordering Food at a Burger Bar

Domain Storytelling (DS) is a technique of recording domain stories, as told by domain experts, using a Pictographic language. Domain stories are specific examples of what happens in the system. Each story describes one particular specific example of a process. Domain Storytelling differs from traditional process modeling methods, such as BPMN, in that Domain Stories only model a subset of a process. With Domain stories, we model a few things that do actually happen rather than all the things that can possibly happen in the system. DS follows the principle: a few good examples are more useful than a high-level abstraction.


 

Domain Story

Using domain stories to easily create Spock tests

 

Domain storytelling is a technique for capturing domain knowledge. A domain story is a small diagram depicting what is happening in the system. What is interesting is that by reading the diagram we can construct a collection of sentences, ordered consecutively, describing what's happening in the domain we are modeling. These sentences most of the time translate into BDD test specifications, on a 1 to 1 basis.

Domain Driven Design, an elevator pitch

Domian-Driven Design is an approach to software development, a set of techniques and practices to aid the process of defining and building software solutions. It brings together business people (domain experts) and developers. Working as a one team, they define the model of the domain, and express it as a set of diagrams. The model is developed in such a way that developers can easily implement it, whilst the experts’ knowledge of the business gets translated into the working software.

ddd diagram

The most popular software development project management method is Scrum. It is centered around short development cycles, a.k.a. sprints. We start coding but in small increments. At the end of each sprint, a demo of the working software is shown to the product owner and stakeholders. The stakeholders give feedback, then we modify the application, and so on until we reach the point when we can deliver working software.