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
463 tangled classes belonging to
10 different components
@cairolali
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
@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

Was ist angesagt?

Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsBelsoft
 
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPagesCollaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPagesBelsoft
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15die.agilen GmbH
 
Collaboration day 2016 panagenda
Collaboration day 2016   panagendaCollaboration day 2016   panagenda
Collaboration day 2016 panagendaBelsoft
 

Was ist angesagt? (6)

Technische schulden abbauen
Technische schulden abbauenTechnische schulden abbauen
Technische schulden abbauen
 
Bewerbung
BewerbungBewerbung
Bewerbung
 
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - Apps
 
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPagesCollaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
Collaboration day 2016 - Aus alt mach neu - Modernisierung mit xPages
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
 
Collaboration day 2016 panagenda
Collaboration day 2016   panagendaCollaboration day 2016   panagenda
Collaboration day 2016 panagenda
 

Ähnlich wie The joy of multiple models

Digitalisierung mit Skype for Business
Digitalisierung mit Skype for Business Digitalisierung mit Skype for Business
Digitalisierung mit Skype for Business A. Baggenstos & Co. AG
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichVerein FM Konferenz
 
Quibiq Flyer - Azure Integration Migration
Quibiq Flyer - Azure Integration MigrationQuibiq Flyer - Azure Integration Migration
Quibiq Flyer - Azure Integration MigrationQUIBIQ Hamburg
 
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
 
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011die.agilen GmbH
 
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere PortalFrank Rahn
 
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhoneWebapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhonedie.agilen GmbH
 
Authoring Management
Authoring ManagementAuthoring Management
Authoring Managementvzimmermann
 
SharePoint Days 2013 - Knowledge Days rund um SharePoint
SharePoint Days 2013 - Knowledge Days rund um SharePointSharePoint Days 2013 - Knowledge Days rund um SharePoint
SharePoint Days 2013 - Knowledge Days rund um SharePointHLMC Events GmbH
 
Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365
Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365
Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365eLink Distribution AG
 
Office 365 Akademie News - Januar 2020
Office 365 Akademie News - Januar 2020Office 365 Akademie News - Januar 2020
Office 365 Akademie News - Januar 2020Thomas Maier
 
Breakfast Briefing: Von Lync zu Skype for Business
Breakfast Briefing: Von Lync zu Skype for Business Breakfast Briefing: Von Lync zu Skype for Business
Breakfast Briefing: Von Lync zu Skype for Business A. Baggenstos & Co. AG
 
Hirschtec homeoffice
Hirschtec homeofficeHirschtec homeoffice
Hirschtec homeofficeHIRSCHTEC
 
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AGCCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AGCommunardo GmbH
 
Seamless365 2019 broschure
Seamless365 2019 broschureSeamless365 2019 broschure
Seamless365 2019 broschureSeamless365
 
Iak10 ikea family community
Iak10 ikea family communityIak10 ikea family community
Iak10 ikea family communityWebster59
 
Database Change Management
Database Change ManagementDatabase Change Management
Database Change ManagementDominik Hirt
 
OmniBlue Business Profile 2023_v1.0.pdf
OmniBlue Business Profile 2023_v1.0.pdfOmniBlue Business Profile 2023_v1.0.pdf
OmniBlue Business Profile 2023_v1.0.pdfOmniBlue
 

Ähnlich wie The joy of multiple models (20)

Digitalisierung mit Skype for Business
Digitalisierung mit Skype for Business Digitalisierung mit Skype for Business
Digitalisierung mit Skype for Business
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
 
Quibiq Flyer - Azure Integration Migration
Quibiq Flyer - Azure Integration MigrationQuibiq Flyer - Azure Integration Migration
Quibiq Flyer - Azure Integration Migration
 
Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführung
 
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
DDD - Domain Driven Design - TYPO3camp Stuttgart 2011
 
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
 
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhoneWebapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
Webapplikationen der Zukunft - HTML5 und CSS3 auf dem iPhone
 
Authoring Management
Authoring ManagementAuthoring Management
Authoring Management
 
SharePoint Days 2013 - Knowledge Days rund um SharePoint
SharePoint Days 2013 - Knowledge Days rund um SharePointSharePoint Days 2013 - Knowledge Days rund um SharePoint
SharePoint Days 2013 - Knowledge Days rund um SharePoint
 
Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365
Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365
Polycom Webinar: Native Anbindung von Polycom Endpunkten an Microfost Office 365
 
Office 365 Akademie News - Januar 2020
Office 365 Akademie News - Januar 2020Office 365 Akademie News - Januar 2020
Office 365 Akademie News - Januar 2020
 
Breakfast Briefing: Von Lync zu Skype for Business
Breakfast Briefing: Von Lync zu Skype for Business Breakfast Briefing: Von Lync zu Skype for Business
Breakfast Briefing: Von Lync zu Skype for Business
 
Hirschtec homeoffice
Hirschtec homeofficeHirschtec homeoffice
Hirschtec homeoffice
 
Nefos: Nefos Mobile iPad App
Nefos: Nefos Mobile iPad AppNefos: Nefos Mobile iPad App
Nefos: Nefos Mobile iPad App
 
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AGCCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
 
Seamless365 2019 broschure
Seamless365 2019 broschureSeamless365 2019 broschure
Seamless365 2019 broschure
 
Iak10 ikea family community
Iak10 ikea family communityIak10 ikea family community
Iak10 ikea family community
 
Database Change Management
Database Change ManagementDatabase Change Management
Database Change Management
 
Moderne & flexible Architektur mit BW/4HANA
Moderne & flexible Architektur mit BW/4HANAModerne & flexible Architektur mit BW/4HANA
Moderne & flexible Architektur mit BW/4HANA
 
OmniBlue Business Profile 2023_v1.0.pdf
OmniBlue Business Profile 2023_v1.0.pdfOmniBlue Business Profile 2023_v1.0.pdf
OmniBlue Business Profile 2023_v1.0.pdf
 

Mehr von Carola Lilienthal

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 De...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 De...Carola Lilienthal
 
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...Carola Lilienthal
 
Resolving technical debt in software architecture
Resolving technical debt in software architectureResolving technical debt in software architecture
Resolving technical debt in software architectureCarola Lilienthal
 
DDD Foundation: Improving legacy
DDD Foundation: Improving legacyDDD Foundation: Improving legacy
DDD Foundation: Improving legacyCarola Lilienthal
 
Its all about the domain honey engl
Its all about the domain honey englIts all about the domain honey engl
Its all about the domain honey englCarola Lilienthal
 
Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in phpCarola Lilienthal
 
Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritteCarola Lilienthal
 

Mehr von Carola Lilienthal (8)

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 De...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 De...
 
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
 
Improving legacy
Improving legacyImproving legacy
Improving legacy
 
Resolving technical debt in software architecture
Resolving technical debt in software architectureResolving technical debt in software architecture
Resolving technical debt in software architecture
 
DDD Foundation: Improving legacy
DDD Foundation: Improving legacyDDD Foundation: Improving legacy
DDD Foundation: Improving legacy
 
Its all about the domain honey engl
Its all about the domain honey englIts all about the domain honey engl
Its all about the domain honey engl
 
Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in php
 
Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritte
 

The joy of multiple models