Date post: | 23-Jan-2018 |
Category: |
Software |
Upload: | iks-gesellschaft-fuer-informations-und-kommunikationssysteme-mbh |
View: | 213 times |
Download: | 2 times |
Domain Driven Design 1 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Projekte. Beratung. Spezialisten.
Domain Driven Design
Ute May
Strategic Design
Domain Driven Design 2 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Agenda
Warum Domain Driven Design?
Die Domäne
Modelle und Modellierung
Strategic Design
Fazit
Domain Driven Design 3 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 4 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Was ist Domain Driven Design?
Warum Domain Driven Design?
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 5 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Was ist Domain Driven Design?
Ein Philosophie-Ansatz für komplexe Software-Projekte
Warum Domain Driven Design?
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 6 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Was ist Domain Driven Design?
Ein Philosophie-Ansatz für komplexe Software-Projekte
Was macht Software-Projekte komplex?
Warum Domain Driven Design?
Komplexität der
technischen Lösung
Komplexität von
Legacy-Systemen
Komplexität der
Fachdomäne
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 7 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Warum Domain Driven Design?
Risiken komplexer Software-Projekte
Mangelnde Kenntnis des Fachbereiches
Sprachliche Missverständnisse zwischen Entwicklern und Fachbereich
Erosion der Software (Big Ball of Mud, Spagetticode)
Abhängigkeit von kurzlebiger Technik
…
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 8 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Warum Domain Driven Design?
Was macht Software stabil?
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 9 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 10 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 11 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 12 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 13 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 14 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 15 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 16 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Warum Domain Driven Design?
Konsequenzen
Enge Zusammenarbeit von Fachexperten und Entwicklern
Späte Beschäftigung mit Implementierungsdetails
Neue Rolle des Entwicklers
REST
SOAPPerformance
GUIJava
SpringDB
DDD
?Domäne
?
??
?
?
?
EntwicklerEntwickler
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 17 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 18 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Die Domäne
Klassischer Ansatz
GUI DBCode
Business Logik
Domain Driven Design 76
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 19 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Die Domäne
Klassischer Ansatz
Domain Driven Design
User Interface
Infrastructure
Domain
Application
GUI DBCode
Business Logik
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 20 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 21 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 22 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 23 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 24 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 25 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 26 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 27 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Die ubiquitäre Sprache
Die Domäne
CodeTests
DokumentationDiskussionen
Fachkonzept
Ubiquitäre Sprache
Entwickler Fachexperten Analysten Tester
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 28 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 29 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 30 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 31 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 32 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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äneModell
Projektion
Reflektion
Konzeption
Revision
System
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 33 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 34 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 35 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 36 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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ßterhälterhält
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 37 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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ßterhä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
Domain Driven Design 38 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 39 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 40 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 41 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 42 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 43 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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ßterhä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
Domain Driven Design 44 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 45 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
erbringt
teilt mitwird 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
Domain Driven Design 46 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
erbringt
teilt mitwird 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
KundenMitarbeiter
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 47 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
erbringt
teilt mitwird 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 LeistungenMitarbeiter
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 48 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
erbringt
teilt mitwird 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
Domain Driven Design 49 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Problemraum und Lösungsraum
ModellDomäne Projektion
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 50 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 51 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 52 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 53 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Context Map
Bounded
ContextBounded
Context
Core
DomainBounded
Context
Bounded
Context
Bounded
Context
Bounded
ContextBounded
Context
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 54 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 55 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Projekte
Kunden Leistungen
Buchhaltung
Mitarbeiter
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL AgentursoftwareBEISPIEL Agentursoftware
Domain Driven Design 56 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Leistungen
Mitarbeiter
Interne
Projekte
Kunden-
projekte
LeistungenMitarbeiterKunden
Buchhaltung
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 57 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Beziehungen zwischen Bounded Contexts
Kontextgrenzen(besonders sorgfältig
definieren und testen!)
Bounded
ContextBounded
Context
Team A Team B
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 58 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 59 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design Patterns
Strategic Design
Shared
Kernel
Anticorruption
Layer
ConformistCustomer/
Supplier
Separate WaysOpen Host
Service
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 60 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 61 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Mitarbeiter Kunden
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 62 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 63 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Veto
Supplier Customer
MitarbeiterLeistungen
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 64 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
ContextConform
Modeling
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 65 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Interne
Projekte
Kunden-
projekteConform
Modeling
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 66 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 67 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Translation
KundenVorhandenes
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 68 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Separate Ways
Keine Abhängigkeiten
Keine gemeinsamen Code-Teile oder Infrastruktur
Vorteilhaft für sehr spezialisierte Lösungen
Bounded
Context
Bounded
Context
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 69 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
MitarbeiterVorhandenes
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 70 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 71 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Leistungen
Kunden-
projekte
Mitarbeiter
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 72 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design Patterns
Strategic Design
Shared
Kernel
Anticorruption
Layer
ConformistCustomer/
Supplier
Separate WaysOpen Host
Service
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 73 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design Patterns
Strategic Design
Shared
Kernel
Anticorruption
Layer
Conformist
Customer/
Supplier
Separate Ways
Open Host
Service
Ko
ntr
olle ü
ber
verb
un
den
e S
yst
em
e
Kommunikationsaufwand / Teamqualität
Single
Bounded
Context
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 74 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Leistungen
Mitarbeiter
Interne
Projekte
Kunden-
projekte
LeistungenMitarbeiterKunden
Buchhaltung
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 75 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Strategic Design
Leistungen
Mitarbeiter
Interne
Projekte
Kunden-
projekte
LeistungenMitarbeiterKunden
Buchhaltung
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 76 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 77 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 78 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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
Domain Driven Design 79 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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 Examplehttps://www.mirkosertic.de/blog/2013/04/domain-driven-design-example/
Sub-domains and Bounded Contexts in Domain-Driven Designhttp://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 101https://www.slideshare.net/rdingwall/domain-driven-design-101
DDD in practicehttps://www.infoq.com/articles/ddd-in-practice
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
Domain Driven Design 80 | 80
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
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.