SlideShare uma empresa Scribd logo
1 de 81
Baixar para ler offline
Domain Driven Design 1 | 80
Projekte. Beratung. Spezialisten.
Domain Driven Design
Ute May
Strategic Design
Domain Driven Design 2 | 80
Agenda
Warum Domain Driven Design?
Die Domäne
Modelle und Modellierung
Strategic Design
Fazit
Domain Driven Design 3 | 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
Domain Driven Design 4 | 80
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Domain Driven Design 49 | 80
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
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
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
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
Strategic Design
Context Map
Bounded
Context
Bounded
Context
Core
Domain
Bounded
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
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
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
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
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
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
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
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
Domain Driven Design 61 | 80
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
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
Strategic Design
Veto
Supplier Customer
Mitarbeiter
Leistungen
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
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
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
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
Domain Driven Design 67 | 80
Strategic Design
Translation
Kunden
Vorhandenes
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
Domain Driven Design 68 | 80
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
Strategic Design
Mitarbeiter
Vorhandenes
CRM
Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic
Design | Fazit | Referenzen
BEISPIEL Agentursoftware
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
Domain Driven Design 71 | 80
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
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
Domain Driven Design 73 | 80
Strategic Design Patterns
Strategic Design
Shared
Kernel
Anticorruption
Layer
Conformist
Customer/
Supplier
Separate Ways
Open Host
Service
KontrolleüberverbundeneSysteme
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
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
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
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
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
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
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
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.
WWW.IKS-GMBH.COM

Mais conteúdo relacionado

Mais procurados

Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführungdie.agilen GmbH
 
Domain driven design
Domain driven designDomain driven design
Domain driven designits_skm
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignNader Albert
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Alan Christensen
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledNicola Costantino
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignNaeem Sarfraz
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
 
Bringing Architecture Thinking to the People - An introduction into the PEOPL...
Bringing Architecture Thinking to the People - An introduction into the PEOPL...Bringing Architecture Thinking to the People - An introduction into the PEOPL...
Bringing Architecture Thinking to the People - An introduction into the PEOPL...Craig Martin
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignYoung-Ho Cho
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven DesignDavid Berliner
 
Hands-On With Reactive Web Design
Hands-On With Reactive Web DesignHands-On With Reactive Web Design
Hands-On With Reactive Web DesignOutSystems
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
 

Mais procurados (20)

Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführung
 
DDD Introduction
DDD IntroductionDDD Introduction
DDD Introduction
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
 
Domain Driven Design 101
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven Design
 
Scrum + bdd + ddd
Scrum + bdd + dddScrum + bdd + ddd
Scrum + bdd + ddd
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
EA foundations - 01 (views & viewpoints)
EA foundations - 01 (views & viewpoints)EA foundations - 01 (views & viewpoints)
EA foundations - 01 (views & viewpoints)
 
Bringing Architecture Thinking to the People - An introduction into the PEOPL...
Bringing Architecture Thinking to the People - An introduction into the PEOPL...Bringing Architecture Thinking to the People - An introduction into the PEOPL...
Bringing Architecture Thinking to the People - An introduction into the PEOPL...
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven Design
 
Data Mesh 101
Data Mesh 101Data Mesh 101
Data Mesh 101
 
Hands-On With Reactive Web Design
Hands-On With Reactive Web DesignHands-On With Reactive Web Design
Hands-On With Reactive Web Design
 
Microservices Decomposition Patterns
Microservices Decomposition PatternsMicroservices Decomposition Patterns
Microservices Decomposition Patterns
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 

Semelhante a Domain Driven Design - Strategic Design

DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven DesignTobiasFrischholz
 
Lean development 04
Lean development 04Lean development 04
Lean development 04SuperB2
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOpscusy GmbH
 
Beyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and SpeedBeyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and SpeedSebastian Bernt
 
USEEDS° :: Responsive Design im Projektalltag bei mobile.de
USEEDS° :: Responsive Design im Projektalltag bei mobile.deUSEEDS° :: Responsive Design im Projektalltag bei mobile.de
USEEDS° :: Responsive Design im Projektalltag bei mobile.deUSEEDS GmbH
 
Herausforderungen für UX-Teams in Responsive Design-Projekten am agilen Kontext
Herausforderungen für UX-Teams in Responsive Design-Projekten am agilen KontextHerausforderungen für UX-Teams in Responsive Design-Projekten am agilen Kontext
Herausforderungen für UX-Teams in Responsive Design-Projekten am agilen KontextUSEEDS GmbH
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der PraxisMichael Mirold
 
Dipl.-Ing. Leopold Peneder (HC Solutions)
Dipl.-Ing. Leopold Peneder (HC Solutions)Dipl.-Ing. Leopold Peneder (HC Solutions)
Dipl.-Ing. Leopold Peneder (HC Solutions)Agenda Europe 2035
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteQAware GmbH
 
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-UmgebungDas Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-UmgebungOPITZ CONSULTING Deutschland
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'scamunda services GmbH
 
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Community ITmitte.de
 
Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzQAware GmbH
 
Firmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AGFirmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AGRoland Löffler
 
Michael Sifkovits (IDS Scheer)
Michael Sifkovits (IDS Scheer)Michael Sifkovits (IDS Scheer)
Michael Sifkovits (IDS Scheer)Praxistage
 
SEO Produktspezifikation für RWD
SEO Produktspezifikation für RWDSEO Produktspezifikation für RWD
SEO Produktspezifikation für RWDConny Stier
 
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor IntegrationWebcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor IntegrationQUIBIQ Hamburg
 

Semelhante a Domain Driven Design - Strategic Design (20)

Domain Driven Design - Stabile Basis für langlebige Software
Domain Driven Design - Stabile Basis für langlebige SoftwareDomain Driven Design - Stabile Basis für langlebige Software
Domain Driven Design - Stabile Basis für langlebige Software
 
Domain Driven Design - Stabile Basis für langlebige Software
Domain Driven Design - Stabile Basis für langlebige SoftwareDomain Driven Design - Stabile Basis für langlebige Software
Domain Driven Design - Stabile Basis für langlebige Software
 
DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven Design
 
Lean development 04
Lean development 04Lean development 04
Lean development 04
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
 
Beyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and SpeedBeyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and Speed
 
USEEDS° :: Responsive Design im Projektalltag bei mobile.de
USEEDS° :: Responsive Design im Projektalltag bei mobile.deUSEEDS° :: Responsive Design im Projektalltag bei mobile.de
USEEDS° :: Responsive Design im Projektalltag bei mobile.de
 
Herausforderungen für UX-Teams in Responsive Design-Projekten am agilen Kontext
Herausforderungen für UX-Teams in Responsive Design-Projekten am agilen KontextHerausforderungen für UX-Teams in Responsive Design-Projekten am agilen Kontext
Herausforderungen für UX-Teams in Responsive Design-Projekten am agilen Kontext
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der Praxis
 
Dipl.-Ing. Leopold Peneder (HC Solutions)
Dipl.-Ing. Leopold Peneder (HC Solutions)Dipl.-Ing. Leopold Peneder (HC Solutions)
Dipl.-Ing. Leopold Peneder (HC Solutions)
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-UmgebungDas Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht's
 
Zinit.leistungen.webentwicklung.v1.0.de
Zinit.leistungen.webentwicklung.v1.0.deZinit.leistungen.webentwicklung.v1.0.de
Zinit.leistungen.webentwicklung.v1.0.de
 
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
 
Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue Schwarz
 
Firmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AGFirmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AG
 
Michael Sifkovits (IDS Scheer)
Michael Sifkovits (IDS Scheer)Michael Sifkovits (IDS Scheer)
Michael Sifkovits (IDS Scheer)
 
SEO Produktspezifikation für RWD
SEO Produktspezifikation für RWDSEO Produktspezifikation für RWD
SEO Produktspezifikation für RWD
 
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor IntegrationWebcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
 

Mais de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Mais de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH (20)

Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingtEs wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
 
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
 
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdfThementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
 
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
 
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdfThementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
 
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdfThementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
 
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdfThementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
 
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdfThementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
 
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdfThementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
 
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdfThementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
 
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 

Domain Driven Design - Strategic Design

  • 1. Domain Driven Design 1 | 80 Projekte. Beratung. Spezialisten. Domain Driven Design Ute May Strategic Design
  • 2. Domain Driven Design 2 | 80 Agenda Warum Domain Driven Design? Die Domäne Modelle und Modellierung Strategic Design Fazit
  • 3. Domain Driven Design 3 | 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
  • 4. Domain Driven Design 4 | 80 Was ist Domain Driven Design? Warum Domain Driven Design? Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  • 5. Domain Driven Design 5 | 80 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
  • 6. Domain Driven Design 6 | 80 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
  • 7. Domain Driven Design 7 | 80 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
  • 8. Domain Driven Design 8 | 80 Warum Domain Driven Design? Was macht Software stabil? Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  • 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
  • 49. Domain Driven Design 49 | 80 Strategic Design Problemraum und Lösungsraum ModellDomäne Projektion Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  • 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
  • 53. Domain Driven Design 53 | 80 Strategic Design Context Map Bounded Context Bounded Context Core Domain Bounded Context Bounded Context Bounded Context Bounded ContextBounded Context 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
  • 55. Domain Driven Design 55 | 80 Strategic Design Projekte Kunden Leistungen Buchhaltung Mitarbeiter Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL AgentursoftwareBEISPIEL Agentursoftware
  • 56. Domain Driven Design 56 | 80 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
  • 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
  • 61. Domain Driven Design 61 | 80 Strategic Design Mitarbeiter Kunden Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  • 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
  • 63. Domain Driven Design 63 | 80 Strategic Design Veto Supplier Customer Mitarbeiter Leistungen Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  • 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
  • 67. Domain Driven Design 67 | 80 Strategic Design Translation Kunden Vorhandenes CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  • 68. Domain Driven Design 68 | 80 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
  • 69. Domain Driven Design 69 | 80 Strategic Design Mitarbeiter Vorhandenes CRM Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  • 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
  • 71. Domain Driven Design 71 | 80 Strategic Design Leistungen Kunden- projekte Mitarbeiter Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen BEISPIEL Agentursoftware
  • 72. Domain Driven Design 72 | 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
  • 73. Domain Driven Design 73 | 80 Strategic Design Patterns Strategic Design Shared Kernel Anticorruption Layer Conformist Customer/ Supplier Separate Ways Open Host Service KontrolleüberverbundeneSysteme Kommunikationsaufwand / Teamqualität Single Bounded Context Warum Domain Driven Design? | Die Domäne | Modelle und Modellierung | Strategic Design | Fazit | Referenzen
  • 74. Domain Driven Design 74 | 80 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
  • 75. Domain Driven Design 75 | 80 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
  • 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.