SlideShare ist ein Scribd-Unternehmen logo
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG
The joy of multiple models
Wie man einen Monolithen mit DDD aufschneidet
Dr. Carola Lilienthal, cl@wps.de, @cairolali
www.wps.de
@cairolali
Dr. Carola Lilienthal
Geschäftsführerin
cl@wps.de
www.wps.de
+49 40 229 499-0
+49 40 229 499-299
+49 170 184 77 11
Diplom-Informatikerin
@cairolali
@cairolali
cl@wps.de
www.llsa.de
@cairolali
Software-
Architektur
Domain
Storytelling
Arbeitsplatz
der Zukunft
Individual-
software
Business-Software,
die Spaß macht!
WPS – Workplace Solutions GmbH
The joy of multiple models
463 tangled classes belonging to
10 different components
@cairolali
The joy of multiple models
Team Head
Team Tail
Team Body
Team Leg
Team Head
Team Tail
Team Body
Team Leg
Team Head
Team Tail
Team Body
Team Leg
Team Head
Team Tail
Team Body
Team Leg
Team Emma
Team Berta
Team Erna
Team Lisl
@cairolali
DIE DOMÄNE IN DER SOFTWARE IST EIN MODELL
▪ Eine interne Repräsentation der betrachteten Domäne
▪ Ausgehend von der Domäne werden die Kernelemente:
▪ Organisiere
▪ Systematisiere
▪ Zerlege in Bestandteile
▪ Gruppiere diese Bestandteile in Module
@cairolali
JEDER BOUNDED CONTEXT HAT SEIN EIGENES MODELL
ZIEL:
▪ Jedes Team kann an seinem eigenen Domänen-Modell arbeiten
▪ Man kennt seine Grenzen
▪ Man bleibt in seinen Grenzen
@cairolali
DAS GROSSE VEREINHEITLICHTE MODELL
▪ Umfasst die vollständige Domäne eines Unternehmens
▪ Ein nicht erreichbares Ideal
▪ Oft nicht lohnenswert anzuvisieren
➔Hoher Koordinationsaufwand in Teams
➔Führt oft zu einem big ball of mud
The joy of multiple models
The joy of multiple models
@cairolali
WIE SCHNEIDE ICH MEINE DOMÄNE?
▪ Nach Abteilungen in der Organisation bzw. Gruppen von Domänenexperten
▪ Nach Unterschieden in der Verwendung/Definition von Schlüsselkonzepten in der Domäne
▪ Nach Grenzen im Geschäftsprozess, die die Domänenexperten beschreiben
▪ Information läuft in eine Richtung
▪ Prozesse werden in unterschiedlichen
Rhythmen ausgeführt
▪ Prozesse werden von verschiedenen
Triggern ausgelöst.
@cairolali
@cairolali
Trigger
Trigger
@cairolali
Einmal pro Woche
Trigger
Trigger
@cairolali
Einmal pro Woche
Trigger
Trigger
Immer wenn ein
Kunde kommt
@cairolali
Einmal pro Woche
Trigger
Informationsfluss
Trigger
Immer wenn ein
Kunde kommt
@cairolali
Einmal pro Woche
Informationsfluss
Trigger
Immer wenn ein
Kunde kommt
Abteilung
Kinomanagement
Abteilung
Kartenverkauf
Trigger
@cairolali
Einmal pro Woche
Informationsfluss
Trigger
Trigger
Immer wenn ein
Kunde kommt
Abteilung
Kinomanagement
Abteilung
Kartenverkauf
@cairolali
LIVING IN A BOX – BOUNDED CONTEXT
→ Jedes Modell bekommt einen Kontext
▪ Kontext = Grundsätzliche Voraussetzungen, damit Begriffe eine bestimmte Bedeutung erhalten
▪ Wird ein Modell aufgespalten, so ist für jedes Teilmodell eine Kontextdefinition erforderlich
@cairolali
Fach-
sprache
Techno
Babble
?
UBIQUITOUS LANGUAGE
@cairolali
Fach-
sprache
Techno
Babble
Fach-
sprache
UBIQUITOUS LANGUAGE
@cairolali
Fach-
sprache
Techno
Babble
UBIQUITOUS LANGUAGE
@cairolali
Techno
Babble
Fach-
sprache
UBIQUITOUS LANGUAGE
@cairolali
Fach-
sprache
{
Techno
Babble
}
?
UBIQUITOUS LANGUAGE
@cairolali
Fach-
sprache
{
Fach-
sprache
}
UBIQUITOUS LANGUAGE
@cairolali
TAKTISCHES UND STRATEGISCHES MODELLIEREN
Strategisches Modellieren (im Großen)
▪ Teile die Domäne in getrennte Bounded Contexts auf
▪ Jeder BC hat seine eigene ubiquitous language und sein eigenes Domänenmodell
Taktisches Modellieren (im Kleinen)
▪ Innerhalb eines Bounded Context
▪ Ubiquitous Language als Grundlage
▪ Building Blocks: Entity, Value Object,
Aggregate, Service, Repository, Factory
@cairolali
BUILDING BLOCKS = MUSTER FÜR DIE MIKRO ARCHITEKTUR
User Interface
Domain
Application
SchichtungdurchMuster
Bounded Context
Repository
Factory
Model
View
ValueObject
Service
Entity/
Aggregate
Controller
@cairolali
@cairolali
BUILDING BLOCKS
Wurzel-Entity
Entity
Entity
Entity
Entity
VO
VO VO
VO
VO VO VO VO
VO
VO
VO
VO
Aggregate
Service
@cairolali
MAKRO ARCHITEKTUR FAST OHNE VERLETZUNGEN
@cairolali
Problem A
Problem B
CHAOS IN DER MIKRO ARCHITEKTUR
◼ 98% aller Klassen kennen 10 andere Klassen
◼ „Problem A“ braucht 21 Klassen und wird von 49 Klassen verwendet
◼ „Problem B“ braucht 63 Klassen und wird von 18 Klassen verwendet
◼ 30% aller Klassen in Zyklen
◼ 60% aller Packages in Zyklen
@cairolali
WAS WIR NICHT BAUEN WOLLEN
✘
ANEMIC DOMAIN MODEL
▪ „blutarme“ fachliche Objekte
▪ Schnittstelle ohne Aussagekraft
▪ aus Gettern/Settern
▪ Viele String Parameter
▪ Eigentliche Fachlichkeit außerhalb
Entities + Value Objects in Services
oder im UI
▪ Viele Util, Helper und Manager Klassen
@cairolali
ANEMIC → FEHLENDE ROBUSTHEIT
▪ Designschulden
▪ Unklarer, schwer verständlicher Entwurf
▪ Verteilte Fachlichkeit
▪ Copy & Paste - Programmierung
→ Teure Wartung
→ Duplizierter Code
→ Viele Refactorings
→ Schlechte Testbarkeit
@cairolali
GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM
119 Klassen aus 4 Komponenten
+ 28 weitere Klassen
@cairolali
GROSSE ZYKLEN VERSCHMUTZEN DAS SYSTEM
327 Klassen aus 8 Komponenten
brauchen sich gegenseitig
@cairolali
MODULARITY MATURITY INDEX (MMI)
612.869 LOC
14.756.435 LOC
252.062 LOC
804.093 LOC
543.388 LOC
1.035.668 LOC
486.358 LOC
175.258 LOC
42.311 LOC
193.383 LOC
643.466 LOC
245.754 LOC
2.890.204 LOC
141.696 LOC
512.086 LOC
9.988.363 LOC
200.591 LOC
922.949 LOC
22.658 LOC
663.862 LOC
3.270.188 LOC
1.521.357 LOC
0
2
4
6
8
10
@cairolali
MEETUPS
@DDDger
@cairolali
KONFERENZEN
Germanys first DDD conference
Schulungen zu Architektur und Domain-Driven Design
Architekturanalyse mit IhremTeam
wps.de
@cairolali
Dr. Carola Lilienthal
Geschäftsführerin
cl@wps.de
www.wps.de
+49 40 229 499-0
+49 40 229 499-299
+49 170 184 77 11
Diplom-Informatikerin
@cairolali
@cairolali
cl@wps.de
www.llsa.de
Vielen Dank für Ihre Aufmerksamkeit!

Weitere ähnliche Inhalte

PDF
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
PDF
Monolithen mit ddd zerlegen
PDF
Technische Schulden in Architekturen erkennen und beseitigen
PPTX
Its all about the domain honey
PDF
Langlebige architekturen
PDF
Its all about the domain honey
PDF
From pair programming to mob architecting
PDF
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
Monolithen mit ddd zerlegen
Technische Schulden in Architekturen erkennen und beseitigen
Its all about the domain honey
Langlebige architekturen
Its all about the domain honey
From pair programming to mob architecting
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden

Was ist angesagt? (6)

PDF
Technische schulden abbauen
PDF
Bewerbung
PDF
Collaboration day 2016 - Connections - Apps
PDF
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
PDF
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
PDF
Collaboration day 2016 panagenda
Technische schulden abbauen
Bewerbung
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Collaboration day 2016 panagenda
Anzeige

Ähnlich wie The joy of multiple models (20)

PDF
Digitalisierung mit Skype for Business
PDF
Scrum Masters HH Meetup - Scenario Casting
PDF
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
PDF
Quibiq Flyer - Azure Integration Migration
PDF
Domain-driven design - eine Einführung
PDF
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
PDF
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
PDF
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
PDF
dachnug51 - Wir möchten das auch - HCL Connections beim Kosmos Verlag.pdf
PPT
Authoring Management
PDF
SharePoint Days 2013 - Knowledge Days rund um SharePoint
PDF
Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365
PDF
Office 365 Akademie News - Januar 2020
PDF
Breakfast Briefing: Von Lync zu Skype for Business
PDF
Hirschtec homeoffice
PDF
Nefos: Nefos Mobile iPad App
PDF
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
PDF
Seamless365 2019 broschure
PPSX
Iak10 ikea family community
PDF
Database Change Management
Digitalisierung mit Skype for Business
Scrum Masters HH Meetup - Scenario Casting
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
Quibiq Flyer - Azure Integration Migration
Domain-driven design - eine Einführung
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
dachnug51 - Wir möchten das auch - HCL Connections beim Kosmos Verlag.pdf
Authoring Management
SharePoint Days 2013 - Knowledge Days rund um SharePoint
Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365
Office 365 Akademie News - Januar 2020
Breakfast Briefing: Von Lync zu Skype for Business
Hirschtec homeoffice
Nefos: Nefos Mobile iPad App
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
Seamless365 2019 broschure
Iak10 ikea family community
Database Change Management
Anzeige

Mehr von Carola Lilienthal (8)

PDF
its all about the domain honey! Experiences from 15 years of Domain-Driven De...
PDF
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
PDF
Improving legacy
PDF
Resolving technical debt in software architecture
PDF
DDD Foundation: Improving legacy
PDF
Its all about the domain honey engl
PDF
Reducing technical debt in php
PDF
Große ziele kleine schritte
its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
Improving legacy
Resolving technical debt in software architecture
DDD Foundation: Improving legacy
Its all about the domain honey engl
Reducing technical debt in php
Große ziele kleine schritte

The joy of multiple models