© Rawpixel.com/Shutterstock.com
Java Magazin
DDD-Serie, Teil 2: Strategic Design

Umfassend und ganzheitlich …

Domain-driven Design bietet uns mit dem sogenannten Strategischen Design eine Anleitung, wie eine Domain und damit der Problemraum fachlich erfasst und aufgeteilt werden kann. Diese Aufteilung lässt sich dann auf den Lösungsraum - die Software - übertragen. Die Fachbegriffe aus DDD, die dabei eine Rolle spielen, sind: Domain, Subdomain, Bounded Context und schließlich die Context Map für das Zusammenspiel der Bounded Contexts. In diesem Artikel werden wir diese Begriffe und unser Verständnis davon vorstellen.

Carola Lilienthal, Michael Plöd


Die Domain und ihre Aufteilung in Subdomains lassen sich am besten mit den vorhandenen und zukünftigen Anwendern des Systems erarbeiten. Wir fangen in der Regel damit an, uns zusammen mit den Anwendern und Fachexperten einen Überblick über die Domain zu verschaffen. Das kann in Workshops mit Event Storming oder mit Domain Storytelling gemacht werden. Zwei Methoden, die für Anwender und Entwickler gleichermaßen gut verständlich sind [1]. Ergebnis dieser Workshops ist ein Verständnis der Ubiquitous Language (dt.: allgegenwärtige Sprache), der Fachsprache der Anwender, und der Abläufe, der Geschäftsprozesse, in der Domain.

ArtikelserieTeil 1: Warum Domain-driven Design?Teil 2: Strategic DesignTeil 3: Ubiquituous LanguageTeil 4: Taktisches DesignTeil 5: DDD und Microservices

Gleichzeitig bilden sich im Workshop Ideen heraus, wie die Domain in Subdomains aufgeteilt werden kann. Eine Subdomain ist ein Teil der umfassenden Geschäftsdomäne des gesamten Unternehmens. Die meisten Geschäftsdomänen sind zu groß und zu komplex, um sie als Ganzes zu betrachten. Durch die Zerlegung in Subdomains wird die Modellierungs- und Entwicklungsarbeit für die Teams beherrschbar und lässt sich auf spezifische Aspekte einschränken. Die große Kunst dabei ist es, beherrschbare Subdomains zu identifizieren und gegebenenfalls Subdomains, die im Laufe des Lebens einer Software zu groß werden, auch zu einem späteren Zeitpunkt in weitere Subdomains zerlegen zu können. Gute Indizien für diese Zerlegung sind die folgenden [1]:

Fachbegriffe werden von den Fachexperten unterschiedlich verwendet, sodass Begriffe in der einen Subdomain andere Aspekte umfassen als in der anderen Subdomain. Die verschiedenen Subdomains haben also jeweils ihre eigene Ubiquitous Language, wobei sich einige Begriffe in den verschiedenen Subdomains wiederholen, aber jeweils andere Aspekte des Begriffs beschreiben (z. B. hat eine Rechnung für die Einkaufsabteilung eine andere Bedeutung als für die Verkaufsabteilung eines Unternehmens). Im Unternehmen sind Fachabteilungen, wie Einkaufs- und Verkaufsabteilung, vorhanden, in denen Fachexperten für die jeweilige Teilaufgabe zusammengefasst sind. Diese Abteilungen bilden ein Ökosystem mit seiner eigenen Sprache und seinen eigenen Details der Abläufe. Das deutet darauf hin, dass es hier auch jeweils eigene Subdomains geben sollte. Bei der Erarbeitung des Big Pictures, also eines umfassenden Blicks auf die Abläufe in der Domain mit allen möglichen Teilprozessen, werden Ste...

Java Magazin
DDD-Serie, Teil 2: Strategic Design

Umfassend und ganzheitlich …

Domain-driven Design bietet uns mit dem sogenannten Strategischen Design eine Anleitung, wie eine Domain und damit der Problemraum fachlich erfasst und aufgeteilt werden kann. Diese Aufteilung lässt sich dann auf den Lösungsraum - die Software - übertragen. Die Fachbegriffe aus DDD, die dabei eine Rolle spielen, sind: Domain, Subdomain, Bounded Context und schließlich die Context Map für das Zusammenspiel der Bounded Contexts. In diesem Artikel werden wir diese Begriffe und unser Verständnis davon vorstellen.

Carola Lilienthal, Michael Plöd


Die Domain und ihre Aufteilung in Subdomains lassen sich am besten mit den vorhandenen und zukünftigen Anwendern des Systems erarbeiten. Wir fangen in der Regel damit an, uns zusammen mit den Anwendern und Fachexperten einen Überblick über die Domain zu verschaffen. Das kann in Workshops mit Event Storming oder mit Domain Storytelling gemacht werden. Zwei Methoden, die für Anwender und Entwickler gleichermaßen gut verständlich sind [1]. Ergebnis dieser Workshops ist ein Verständnis der Ubiquitous Language (dt.: allgegenwärtige Sprache), der Fachsprache der Anwender, und der Abläufe, der Geschäftsprozesse, in der Domain.

ArtikelserieTeil 1: Warum Domain-driven Design?Teil 2: Strategic DesignTeil 3: Ubiquituous LanguageTeil 4: Taktisches DesignTeil 5: DDD und Microservices

Gleichzeitig bilden sich im Workshop Ideen heraus, wie die Domain in Subdomains aufgeteilt werden kann. Eine Subdomain ist ein Teil der umfassenden Geschäftsdomäne des gesamten Unternehmens. Die meisten Geschäftsdomänen sind zu groß und zu komplex, um sie als Ganzes zu betrachten. Durch die Zerlegung in Subdomains wird die Modellierungs- und Entwicklungsarbeit für die Teams beherrschbar und lässt sich auf spezifische Aspekte einschränken. Die große Kunst dabei ist es, beherrschbare Subdomains zu identifizieren und gegebenenfalls Subdomains, die im Laufe des Lebens einer Software zu groß werden, auch zu einem späteren Zeitpunkt in weitere Subdomains zerlegen zu können. Gute Indizien für diese Zerlegung sind die folgenden [1]:

Fachbegriffe werden von den Fachexperten unterschiedlich verwendet, sodass Begriffe in der einen Subdomain andere Aspekte umfassen als in der anderen Subdomain. Die verschiedenen Subdomains haben also jeweils ihre eigene Ubiquitous Language, wobei sich einige Begriffe in den verschiedenen Subdomains wiederholen, aber jeweils andere Aspekte des Begriffs beschreiben (z. B. hat eine Rechnung für die Einkaufsabteilung eine andere Bedeutung als für die Verkaufsabteilung eines Unternehmens). Im Unternehmen sind Fachabteilungen, wie Einkaufs- und Verkaufsabteilung, vorhanden, in denen Fachexperten für die jeweilige Teilaufgabe zusammengefasst sind. Diese Abteilungen bilden ein Ökosystem mit seiner eigenen Sprache und seinen eigenen Details der Abläufe. Das deutet darauf hin, dass es hier auch jeweils eigene Subdomains geben sollte. Bei der Erarbeitung des Big Pictures, also eines umfassenden Blicks auf die Abläufe in der Domain mit allen möglichen Teilprozessen, werden Ste...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang