Komplexe Strukturen und Prozesse in stabiler Software abzubilden erfordert ein kompetentes, agiles Team und eine Entwicklungsphilosophie, die fachliche Komplexität ins Zentrum des Softwaredesigns rückt. Domain Driven Design liefert Methoden und Strategien um Komplexität beherrschbar zu machen und wirkt als Stabilisierungsfaktor für zur Erosion neigende Softwareprojekte. Der Begriff Domain Driven Design wurde 2004 von Eric Evans in seinem Buch Tackling Complexity in the Heart of Software geprägt und erlebt heute einen Aufschwung, weil er perfekt zu einer agilen Arbeitsweise und Microservice-Architekturen passt. Die ersten Schritte bei der Einführung von DDD sind die Verwendung einer ausdrucksstarken Teamsprache, die Entwicklung eines Domänenmodells und das Explizit-Machen von Beziehungen zwischen Systemteilen. Diese Themen werden in der Präsentation vorgestellt und an einem einfachen Beispiel verdeutlicht.
9. Domain Driven Design 9 | 80
Warum Domain Driven Design?
Was macht Software stabil?
Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
10. Domain Driven Design 10 | 80
Warum Domain Driven Design?
Was macht Software stabil?
Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung
Team A Team A+B Team B+C Team D
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
11. Domain Driven Design 11 | 80
Warum Domain Driven Design?
Was macht Software stabil?
Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung
Team A Team A+B Team B+C Team D
Framework X Framework Y
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
12. Domain Driven Design 12 | 80
Warum Domain Driven Design?
Was macht Software stabil?
Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung
Team A Team A+B Team B+C Team D
Framework X Framework Y
Infrastruktur (Lösung 1) Infrastruktur (Lösung 2)
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
13. Domain Driven Design 13 | 80
Warum Domain Driven Design?
Was macht Software stabil?
Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung
Team A Team A+B Team B+C Team D
Framework X Framework Y
Infrastruktur (Lösung 1) Infrastruktur (Lösung 2)
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Anforderungen Version 1 Anforderungen Version 2 Anforderungen Version 3
14. Domain Driven Design 14 | 80
Warum Domain Driven Design?
Was macht Software stabil?
Die fachliche Domäne
Analyse Entwurf Implementierung Test Inbetriebnahme Wartung Weiterentwicklung
Team A Team A+B Team B+C Team D
Framework X Framework Y
Infrastruktur (Lösung 1) Infrastruktur (Lösung 2)
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Anforderungen Version 1 Anforderungen Version 2 Anforderungen Version 3
Fachliche Domäne
15. Domain Driven Design 15 | 80
Warum Domain Driven Design?
Was macht Domain Driven Design aus?
Fokus auf Fachlichkeit
Gemeinsame Erstellung von Modellen durch Domänenexperten und Entwickler
Verwendung einer ubiquitären (= allen bekannten, alles umfassenden) Sprache
Aufteilung von komplexen Zusammenhängen in Bounded Contexts
Kapselung von Fachlichkeit und Technik
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
16. Domain Driven Design 16 | 80
Warum Domain Driven Design?
Konsequenzen
Enge Zusammenarbeit von Fachexperten und Entwicklern
Späte Beschäftigung mit Implementierungsdetails
Neue Rolle des Entwicklers
REST
SOAPPerformance
GUI
Java
Spring
DB
DDD
? Domäne
?
?
?
?
?
?
EntwicklerEntwickler
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
17. Domain Driven Design 17 | 80
Agenda
Warum Domain Driven Design?
Die Domäne
Modelle und Modellierung
Strategic Design
Fazit
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
18. Domain Driven Design 18 | 80
Die Domäne
Klassischer Ansatz
GUI DB
Code
Business Logik
Domain Driven Design 76
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
19. Domain Driven Design 19 | 80
Die Domäne
Klassischer Ansatz
Domain Driven Design
User Interface
Infrastructure
Domain
Application
GUI DB
Code
Business Logik
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
20. Domain Driven Design 20 | 80
Was ist eine Domäne?
= Fachgebiet, Geschäftsfeld, Einsatzbereich
Die Domäne
A sphere of knowledge, influence, or activity.
The subject area to which the user applies a
program is the domain of the software.
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
21. Domain Driven Design 21 | 80
Was ist eine Domäne?
= Fachgebiet, Geschäftsfeld, Einsatzbereich
Was gehört nicht zur Domäne?
Infrastruktur
Persistenz
Eingabe/Ausgabe
Technologische Entscheidungen
Die Domäne
A sphere of knowledge, influence, or activity.
The subject area to which the user applies a
program is the domain of the software.
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
22. Domain Driven Design 22 | 80
Die Domäne
Anforderungen
Es gibt festangestellte Mitarbeiter und Freelancer.
Es muss möglich sein, verschiedene Kommunikationswege zu einem Mitarbeiter zu
speichern.
Es muss eine durchsuchbare Projektliste geben.
Es muss eine durchsuchbare Kundenliste geben.
Die Stundenzettel der Mitarbeiter müssen gepflegt werden können.
BEISPIEL Agentursoftware
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
23. Domain Driven Design 23 | 80
Die Domäne
Domänenwissen – Crunching Knowledge
Modell System
ubiquitäre Sprache
Fachexperten Entwickler
Fachgebiet
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
24. Domain Driven Design 24 | 80
Die Domäne
Domänenwissen – Crunching Knowledge
Fachexperten teilen ihr Wissen über die Domäne.
Entwickler verstehen Zusammenhänge und abstrahieren.
Experten sehen ihr Fachgebiet aus neuem Blickwinkel und gewinnen Klarheit über
Anforderungen.
Entwickler und Fachexperten entwickeln gemeinsam die ubiquitäre Sprache.
Entwickler und Fachexperten erstellen gemeinsam ein Domänenmodell.
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
25. Domain Driven Design 25 | 80
Die ubiquitäre Sprache
Ubiquitär = „allumfassend, überall vorhanden“
1. Jeder im Projekt muss die Sprache sprechen und verstehen können.
2. Alle relevanten Sachverhalte müssen sich durch die Sprache beschreiben lassen.
Eine Sprache ist mehr als ein Glossar!
Die Domäne
To create a supple, knowledge-rich design calls for a
versatile, shared team language and a lively
experimentation with [that language].
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
26. Domain Driven Design 26 | 80
Die Domäne
Mitarbeiter =
Festangestellter
Mitarbeiter =
Festangestellte +
Freelancer
Projekte =
Kundenprojekte
Projekte =
Kundenprojekte
+ interne Projekte
Kontakt = Person =
Mitarbeiter oder
Kundenmitarbeiter
Festangestellte =
Angestellte <>
Geschäftsführung
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
27. Domain Driven Design 27 | 80
Die ubiquitäre Sprache
Die Domäne
Code
Tests
Dokumentation Diskussionen
Fachkonzept
Ubiquitäre Sprache
Entwickler Fachexperten Analysten Tester
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
28. Domain Driven Design 28 | 80
Die Domäne
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
29. Domain Driven Design 29 | 80
Agenda
Warum Domain Driven Design?
Die Domäne
Modelle und Modellierung
Strategic Design
Fazit
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
30. Domain Driven Design 30 | 80
Modelle und Modellierung
Was ist ein Modell?
A model is a distillation of knowledge.
Ein Modell stellt Informationen übersichtlich und verständlich dar.
Ein Modell trennt relevante von irrelevanten Informationen.
Ein Modell setzt Informationen zueinander in Beziehung.
Ein Modell hat immer ein bestimmtes Ziel.
Domäne ModellProjektion
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
31. Domain Driven Design 31 | 80
Modelle und Modellierung
Ziel des Domänenmodells
Erzeugt einheitliches Domänenverständnis
Dient als Basis für die Implementierung
Ein Klassendiagramm ist noch kein Domänenmodell!
Tightly relating the code to an underlying model gives
the code meaning and makes the model relevant.
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
32. Domain Driven Design 32 | 80
Modelle und Modellierung
Ziel des Domänenmodells
Erzeugt einheitliches Domänenverständnis
Dient als Basis für die Implementierung
Tightly relating the code to an underlying model gives
the code meaning and makes the model relevant.
Eric Evans
Domäne
Modell
Projektion
Reflektion
Konzeption
Revision
System
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
33. Domain Driven Design 33 | 80
Modelle und Modellierung
Modellierung
1. Modell und Implementierung gehören zusammen und beeinflussen sich
gegenseitig.
2. Das Modell legt die gemeinsame Sprache von Entwicklern und Fachexperten fest.
3. Das Modell enthält nicht nur Informationen über Klassen und Objekte, sondern
auch über Verhalten, Beziehungen und Regeln
4. Das Modell filtert relevante Informationen zum Domänenverständnis.
5. Das Modell wächst und entwickelt sich durch Diskussionen und Ausprobieren.
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
34. Domain Driven Design 34 | 80
Modelle und Modellierung
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
35. Domain Driven Design 35 | 80
Modelle und Modellierung
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
erbringt
ist zugeordnet
ist entweder oder
ist entweder
oder
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
36. Domain Driven Design 36 | 80
Modelle und Modellierung
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
ist entweder
oder
erbringt
ist zugeordnet
wird gebucht auf
ist entweder oder
erhält
schließt
erhälterhält
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
37. Domain Driven Design 37 | 80
Modelle und Modellierung
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
ist entweder
oder
ist zugeordnet
erbringt
ist zugeordnet
wird gebucht auf
ist entweder oder
erhält
schließt
erhält
beantragt
teilt mit
ist erreichbar über
ist zugeordnet
wird verwaltet im
erhält
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
38. Domain Driven Design 38 | 80
Agenda
Warum Domain Driven Design?
Die Domäne
Modelle und Modellierung
Strategic Design
Fazit
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
39. Domain Driven Design 39 | 80
Warum Strategic Design?
Strategic Design
[Strategic Design] lays out techniques for
recognizing, communicating and choosing the
limits of a model and its relationships to others.
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
40. Domain Driven Design 40 | 80
Warum Strategic Design?
Aufteilung und Priorisierung des Modells
Überblick über komplexe und umfangreiche Systeme
Abwägung und Kommunikation von Modellteilen, die in sich abgeschlossen sind
Team-Entscheidungen, Vermeidung von „unsachgemäßem Gebrauch“ von Code
Definition von Beziehungen zwischen Bounded Contexts
Klarheit über Aufgaben und Rechte der Teams, verbesserte Wartbarkeit und
Erweiterbarkeit
Strategic Design
[Strategic Design] lays out techniques for
recognizing, communicating and choosing the
limits of a model and its relationships to others.
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
41. Domain Driven Design 41 | 80
Strategic Design
Distillation – Extract the Essence
Core
Domain
Generic
Subdomains
Supporting
Subdomains
1. Warum wird das
System gebraucht?
2. Warum genügt keine
Standardlösung?
3. Warum kann man
diesen Teil nicht
outsourcen?
Domain Vision Statement
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
42. Domain Driven Design 42 | 80
Strategic Design
Distillation
Hilft allen im Team des Gesamtbild und die Priorisierung zu verstehen
Vereinfacht die Kommunikation durch Identifikation eines zentralen, gut
überschaubaren Einstiegspunktes in die ubiquitäre Sprache
Hilft beim Refactoring
Fokussiert die Arbeit auf den Teil, der den meisten Nutzen bringt
Hilft bei Entscheidungen zu Outsourcing, Standardkomponenten und
Arbeitsaufteilung
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
43. Domain Driven Design 43 | 80
Strategic Design
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
ist entweder
oder
ist zugeordnet
erbringt
ist zugeordnet
wird gebucht auf
ist entweder oder
erhält
schließt
erhält
beantragt
teilt mit
ist erreichbar über
ist zugeordnet
wird verwaltet im
erhält
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
44. Domain Driven Design 44 | 80
erhälterhält
erbringt
teilt mit
Strategic Design
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
ist entweder
oder
ist zugeordnet
ist zugeordnet
wird gebucht auf
ist entweder oder
erhält
schließt
beantragt
ist erreichbar über
ist zugeordnet
Mitarbeiter
wird verwaltet im
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
45. Domain Driven Design 45 | 80
erbringt
teilt mit
wird verwaltet im
Strategic Design
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
ist entweder
oder
ist zugeordnet
ist zugeordnet
wird gebucht auf
ist entweder oder
erhält
schließt
erhält
beantragt
ist erreichbar über
ist zugeordnet
erhält
Projekte
Mitarbeiter
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
46. Domain Driven Design 46 | 80
erbringt
teilt mit
wird verwaltet im
Strategic Design
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
ist entweder
oder
ist zugeordnet
ist zugeordnet
wird gebucht auf
ist entweder oder
erhält
schließt
erhält
beantragt
ist erreichbar über
ist zugeordnet
erhält
Projekte
Kunden
Mitarbeiter
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
47. Domain Driven Design 47 | 80
erbringt
teilt mit
wird verwaltet im
Strategic Design
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
ist entweder
oder
ist zugeordnet
ist zugeordnet
wird gebucht auf
ist entweder oder
erhält
schließt
erhält
beantragt
ist erreichbar über
ist zugeordnet
erhält
Projekte
Kunden Leistungen
Mitarbeiter
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
48. Domain Driven Design 48 | 80
erbringt
teilt mit
wird verwaltet im
Strategic Design
Mitarbeiter
FestangestellteFreelancer
Gehalt
Kunde
Projekt
Leistung
Stundenzettel
Honorar
Vertrag Kommunikations
-weg
Email Telefon AdresseMobil
Urlaub
Kunden-
projekt
Internes
Projekt
Abwesenheit
Provision
CRM
ist entweder
oder
ist zugeordnet
ist zugeordnet
wird gebucht auf
ist entweder oder
erhält
schließt
erhält
beantragt
ist erreichbar über
ist zugeordnet
erhält
Projekte
Kunden Leistungen
Buchhaltung
Mitarbeiter
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
50. Domain Driven Design 50 | 80
Strategic Design
Problemraum und Lösungsraum
Domain Domain Model
Problem Space Solution Space
Subdomain Bounded Context
(keine 1:1-Zuordnung!)
ModellDomäne Projektion
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
51. Domain Driven Design 51 | 80
Strategic Design
Was ist ein Bounded Context?
Eine abgeschlossene Einheit im Gesamtkontext
Wird von einem Team entwickelt
Steht in Relation zu anderen Bounded Contexts
Bounded
Context Schnittstellen
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
52. Domain Driven Design 52 | 80
Strategic Design
Wie werden Bounded Contexts definiert?
Vorteile großer Bounded Contexts
Größeres einheitliches Modell
Einfachere Aufgabenverteilung
Weniger schwierige Übersetzung
zwischen Modellen
Klarere Kommunikation im
gesamten Team durch
gemeinsame ubiquitäre Sprache
Vorteile kleiner Bounded Contexts
Reduzierter Kommunikations-
Overhead in jedem Team
Kleinere Code-Basis
Vereinfachte Continuous
Integration
Einfachere Umsetzung sehr
spezieller Anforderungen
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
54. Domain Driven Design 54 | 80
Context Map
Gesamtüberblick des Systems
Berücksichtigung von Legacy-Systemen
Priorisierung von Bounded Contexts
Identifikation von Beziehungen zwischen Bounded Contexts
Strategic Design
A context map is the overlap between project
management and software design.
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
57. Domain Driven Design 57 | 80
Strategic Design
Beziehungen zwischen Bounded Contexts
Kontextgrenzen
(besonders sorgfältig
definieren und testen!)
Bounded
Context
Bounded
Context
Team A Team B
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
58. Domain Driven Design 58 | 80
Warum sind die Beziehungen zwischen Bounded Contexts wichtig?
Bessere Organisation der Teams
Weniger Abstimmungsprobleme
Klarer definierte Zuständigkeiten
Besonderer Fokus auf Schnittstellen
Strategic Design
Describe the points of contact between the
models, outlining the explicit translation for any
communication and highlighting any sharing.
Eric Evans
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
59. Domain Driven Design 59 | 80
Strategic Design Patterns
Strategic Design
Shared
Kernel
Anticorruption
Layer
Conformist
Customer/
Supplier
Separate Ways
Open Host
Service
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
60. Domain Driven Design 60 | 80
Strategic Design
Shared Kernel
Teile des Codes oder der Infrastruktur werden geteilt.
Änderungen müssen mit dem anderen Team abgesprochen werden.
Der gemeinsame Teil wird besonders sorgfältig von beiden Teams getestet.
Bounded
Context
Bounded
Context
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
62. Domain Driven Design 62 | 80
Strategic Design
Customer/Supplier development teams
Das Supplier-Team entwickelt unabhängig, stellt aber dem Customer-Team alle
relevanten Schnittstellen und Services zur Verfügung.
Das Customer-Team hat ein Veto-Recht.
Gemeinsame Akzeptanztests schließen ungewollte Auswirkungen aus.
Veto
Supplier Customer
Bounded
Context
Bounded
Context
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
64. Domain Driven Design 64 | 80
Strategic Design
Conformist
Ein Bounded Context wird an einen anderen angelehnt.
Design-Entscheidungen werden übernommen.
Besonders empfehlenswert bei Legacy-Systemen oder bei Entwicklung in
verschiedenen Abteilungen/Hierarchiestufen.
Bounded
Context
Bounded
Context
Conform
Modeling
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
65. Domain Driven Design 65 | 80
Strategic Design
Interne
Projekte
Kunden-
projekte
Conform
Modeling
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
66. Domain Driven Design 66 | 80
Translation
Bounded
Context
Bounded
Context
Strategic Design
Anticorruption Layer
Eine klar definierte Schnittstelle sichert den Datenaustausch.
Ermöglicht gemeinsame Nutzung von Informationen, wenn ein Shared-Kernel-
Pattern nicht möglich ist.
Besonders empfehlenswert bei Legacy-Systemen
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
70. Domain Driven Design 70 | 80
Open Host Service
Ein Bounded Context definiert Services, die Zugang zum System geben.
Besonders empfehlenswert, wenn viele Schnittstellen definiert werden müssen
Strategic Design
Bounded
Context
Bounded
Context
Bounded
Context
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
76. Domain Driven Design 76 | 80
Agenda
Warum Domain Driven Design?
Die Domäne
Modelle und Modellierung
Strategic Design
Fazit
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
77. Domain Driven Design 77 | 80
Fazit
DDD wirkt als Stabilisierungsfaktor in komplexen Softwareprojekten.
Die ubiquitäre Sprache sorgt für ein gemeinsames Domänenverständnis.
Das Domänenmodell ist unmittelbare Basis für die Entwicklung und bleibt
eng mit dem Code gekoppelt.
Priorisierungen werden durch Distillation für alle nachvollziehbar.
Bounded Contexts helfen bei der Definition von abgeschlossenen
Systemteilen und ihren Beziehungen untereinander.
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
78. Domain Driven Design 78 | 80
DDD wirkt als Stabilisierungsfaktor in komplexen Softwareprojekten.
Die ubiquitäre Sprache sorgt für ein gemeinsames Domänenverständnis.
Das Domänenmodell ist unmittelbare Basis für die Entwicklung und bleibt
eng mit dem Code gekoppelt.
Priorisierungen werden durch Distillation für alle nachvollziehbar.
Bounded Contexts helfen bei der Definition von abgeschlossenen
Systemteilen und ihren Beziehungen untereinander.
Fazit
1. For most software projects, the primary focus should
be on the domain and domain logic.
2. Complex domain designs should be based on a
model.
Domain Driven Design
Eric Evans
76
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
79. Domain Driven Design 79 | 80
Referenzen
Evans, Eric: Domain-driven Design - Tackling Complexity in the Heart of Software. 1. Aufl.. Boston:
Addison-Wesley Professional, 2004.
Avram, Abel ; Marinescu, Floyd: Domain-Driven Design Quickly. Raleigh, North Carolina: Lulu.com,
2007.
Evans, Eric: Domain-Driven Design Reference : Definitions and Pattern Summaries. Indianapolis:
Dog Ear Publishing, 2014.
Vernon, Vaughn: Implementing Domain-Driven Design. 1. Aufl.. Amsterdam: Addison-Wesley,
2013.
Millett, Scott ; Tune, Nick: Patterns, Principles, and Practices of Domain-Driven Design. New York:
John Wiley & Sons, 2015.
Domain Driven Design Example
https://www.mirkosertic.de/blog/2013/04/domain-driven-design-example/
Sub-domains and Bounded Contexts in Domain-Driven Design
http://gorodinski.com/blog/2013/04/29/sub-domains-and-bounded-contexts-in-domain-driven-
design-ddd/
DDD: Strategic Design: Core, Supporting, and Generic Subdomains
http://blog.jonathanoliver.com/ddd-strategic-design-core-supporting-and-generic-subdomains/
Domain Driven Design 101
https://www.slideshare.net/rdingwall/domain-driven-design-101
DDD in practice
https://www.infoq.com/articles/ddd-in-practice
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
80. Domain Driven Design 80 | 80
Impulsvorträge für Ihr Unternehmen
Überblick über das gesamte Angebot an Impulsvorträgen unter:
www.iks-gmbh.com/impulsvortraege
Ihr Nutzen:
Unabhängiges, aktuelles Expertenwissen.
Individuell auf Ihr Publikum und Ihr Unternehmen zugeschnittene Vorträge.
Referenten mit langjähriger und branchenübergreifender Expertise in der IT-
Beratung.
Praxisnahe Vorträge, die aus Projektarbeit entstanden sind, frei von
Produktwerbung.
Ideale Ergänzung für Ihre Führungskräftetreffen, Abteilungsmeetings, Hausmessen,
Innovation Days, Konferenzen, Open Spaces, Kick-off-Meetings oder
Zukunftsworkshops.