SlideShare a Scribd company logo
1 of 41
Download to read offline
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG
It’s all about the domain, honey !
Experiences from 15 years of Domain-Driven Design
Dr. Carola Lilienthal @cairolali cl@wps.de
CAROLA
@cairolali
Quelle: http://www.schulbilder.org/malvorlage-informatiker-i10418.html
ARCHITECT
www.sustainable-software-architecture.com
Berlin
Hamburg
We hire
throughout
Germany!
Wir stellen
deutschlandweit
ein!
Stuttgart
@cairolali
WHAT IS THE GOAL?
Sustainable
Architecture
the sad norm…
Release cycle or time
Number
of
delivered
feature
per
release
@cairolali
10 42
81
165
120 15 Mio
5 Mio
1 Mio
500.000
100.000
Size in Lines of Code
@cairolali
NEW SOLUTION: MICROSERVICES!
@cairolali
NEW SOLUTION – SAME PROBLEM
Simon Brown
@cairolali
▪ 15 years of development
▪ 3 Million LOC in Java
▪ 463 tangled classes from 10 modules
▪ This cycle contains 500.000 LOC
BIG BALL OF MUD ON CLASS LEVEL
@cairolali
▪ 20 years of developement
▪ 10 Million Lines of Code in Java
▪ 90 Modules
▪ No dependency control!
BIG BALL OF MUD ON MODULE LEVEL
@cairolali
▪ Within a module:
▪ high cohesion = strong coupling
▪ Single Responsibility Principle
▪ Separation of concern
▪ Outside a module:
▪ loose coupling = low coupling
▪ Information hiding
▪ Separation of concern
HIGH COHESION AND LOOSE COUPLING
@cairolali
HIGH COHERSION AND LOW COUPLING FOR MODUES
Loose coupling = As little coupling as possible!
Technical
Layering
Module B
Module A Module C
User Interface User Interface
User Interface
Domain
Application
Domain
Application
Domain
Application
@cairolali
THE NEED OF DOMAIN ARCHITECTURE
An architecture (with or without
microservices) only then has
high cohesion and low coupling
if it follows a
domain architecture!
@cairolali
ONE DOMAIN MODEL AND DATABASE FOR ALL
Module B
Module A Module C
User Interface User Interface
User Interface
Domain
Application Application Application
@cairolali
ONE SHARED MODEL
Several domain use cases Models allocated to their use cases
@cairolali
Security Business
Bild 215
Account Managing
Account Credit
Customer
Credit Business
Presentation
Application
Presentation
Application
Presentation
Application
Security
@cairolali
Bild 216
Security Business
Credit Business
Account Managing
Account
Credit
Security
Credit
Customer
Presentation
Application
Presentation
Application
Presentation
Application
Customer
Credit
Account
Securities
Account
Security
Customer
Credit
Security
@cairolali
MODELS IN MICROSERVICES
➔ domains need to be divided into subdomains with smaller models
▪ Separate models
▪ Allow independent changes (separation of concern)
▪ have to represent a smaller
set of the requirements (high cohesion)
▪ Need a clear boarder (loose coupling)
➔ Each model and its subdomain should be small enough to be programmed by one team.
@cairolali
STRATEGIC DESIGN
▪ Find the subdomains in the
domain and decompose your
software accordingly.
▪ Set explicit boundaries with
the bounded contexts for
▪ domain-oriented parts in
the software and
▪ in the team organization
▪ Goal: high cohesion
+ loose coupling
Domain Software System
Bounded
Context A
Bounded
Context B
Team A
Team B
Bounded
Context C
Team C
Subdomain
A
Subdomain
B
Subdomain
C
Event Storming https://www.eventstorming.com/
Domain Storytelling https://domainstorytelling.org/
@cairolali
TICKET AGENT
CUSTOMER
WEEKLY SCHEDULE
<< work in progress >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
7
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
@cairolali
TICKET AGENT
WEEKLY SCHEDULE
<< work in progress >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Trigger
CUSTOMER
7
@cairolali
TICKET AGENT
WEEKLY SCHEDULE
<< work in progress >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Trigger
once a week
CUSTOMER
7
@cairolali
TICKET AGENT
WEEKLY SCHEDULE
<< work in progress >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Trigger
once a week
each time a
customer asks
for a ticket
CUSTOMER
7
@cairolali
TICKET AGENT
WEEKLY SCHEDULE
<< work in progress >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Trigger
once a week
each time a
customer asks
for a ticket
Cinema management
Ticket sales
CUSTOMER
7
@cairolali
TICKET AGENT
WEEKLY SCHEDULE
<< work in progress >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Trigger
once a week
each time a
customer asks
for a ticket
Cinema management
Ticket sales
information flow
CUSTOMER
7
@cairolali
TICKET AGENT
WEEKLY SCHEDULE
<< work in progress >>
REQUESTED NUMBER
OF SEATS
AUDITORIUM PLAN
LIST OF AUDITORIUM
PLANS
SOLD SEATS
TICKETS
FILM SHOW
FOUND
SEATS
AUDITORIUM PLAN
WEEKLY SCHEDULE
<< finalized >>
FILM DISTRIBUTOR
CINEMA
MANAGER
AD
AGENCY ADVERTISMENT
BOOKING PLAN
PLAN FOR
FILM SHOWS
COUNTRYWIDE
NUMBER OF VISITORS
AVAILABILITY
OF FILMS
1
6
2
10
5
3
8
4
9
11
12
13
14
AUDITORIUM PLAN
15
STARTS
WORKING ON
CHECKS THE
NEGOTIATES
WITH
FINALIZES
THE
AND CREATES FOR
THE UPCOMMING
WEEK
MONEY TICKETS
TICKETS
ASKS FOR
FOR A
OPENS A
CLOSES THE
FROM THE
OFFERS
TO GIVES
TO
SEARCHES
ON
THE
ON
THE
MARKS
PRINTS
GIVES THE
TO
THE
Trigger
Trigger
once a week
each time a
customer asks
for a ticket
Cinema management
Ticket sales
information flow
WEEKLY SCHEDULE
<< printed >>
CUSTOMER
7
@cairolali
WeeklyPlanningService
•PlanFilmInHall
•AdPlanningForFilm
•ExpectedNumVisitors
•GenerateFinalSchedule
TicketSaleService
•SearchTimeForFilm
•SearchSeatsInHall
•BookSeats
•SellPlaces
UI WeeklyPlanning UI TicketSales UI WeeklyPlanning UI TicketSales
WeeklyScheduleService
•SearchTimeForFilm
•PlanFilmInHall
•AdPlanningForFilm
•ExpectedNumVisitors
•GenerateFinalSchedule
AuditoriumPlanService
•SearchSeatsInHall
•BookSeats
•SellPlaces
•GeneratePlans
Bounded Context
Cinema Management
Bounded Context
TicketSales
Service Weekly Schedule Service Auditorium Plans
Service
Tickets
Division according to entities
with direct coupling
Bounded contexts according to business
processes with "asynchronous" coupling
WeeklySchedule WeeklySchedule
WeeklySchedule
WeeklySchedule
Auditorium Plans Auditorium Plans
AuditoriumPlans
Auditorium Plans
Ticket
Ticket
@cairolali
HOW DO I CUT MY LEGACY TO FIT THE DOMAIN?
▪ According to boundaries in the business process described by the domain experts
▪ Information flow
▪ Process rhythms
▪ Process triggers
▪ According to differences in the
use/definition of key concepts in the domain
▪ By departments in the organization or
groups of domain experts
@cairolali
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
MODULARITY MATURITY INDEX (MMI)
@cairolali
ANALYSING MODULARITY WITH TOOLS
Structure101
Sotograph
Lattix
TeamScale
Sonargraph
@cairolali
@cairolali
cl@wps.de
www.sustainable-software-architecture.com
THANK YOU FOR YOUR ATTENTION!

More Related Content

Similar to its all about the domain, honey! Experiences from 15 years of Domain-Driven Design

How to survive product feature prioritization (and still get what you want)
How to survive product feature prioritization (and still get what you want)How to survive product feature prioritization (and still get what you want)
How to survive product feature prioritization (and still get what you want)Stephen Strubel
 
Proposal For Shooting Documentary Feature Film PowerPoint Presentation Slides
Proposal For Shooting Documentary Feature Film PowerPoint Presentation SlidesProposal For Shooting Documentary Feature Film PowerPoint Presentation Slides
Proposal For Shooting Documentary Feature Film PowerPoint Presentation SlidesSlideTeam
 
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)Vladik Khononov
 
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED CALAVERAS COUNTY ...
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED  CALAVERAS COUNTY ...GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED  CALAVERAS COUNTY ...
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED CALAVERAS COUNTY ...DeniseMathre1
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCAdrian Cockcroft
 
Gabor Event Services: Conferences, National Launches and Tours
Gabor Event Services: Conferences, National Launches and ToursGabor Event Services: Conferences, National Launches and Tours
Gabor Event Services: Conferences, National Launches and ToursFraser D. Sullivan, MBA
 
Design Drive Interactive Case Studies
Design Drive Interactive Case StudiesDesign Drive Interactive Case Studies
Design Drive Interactive Case StudiesSam Vayner
 
Rapiscan presentation 260313
Rapiscan presentation 260313Rapiscan presentation 260313
Rapiscan presentation 260313SKV-VNA
 
The Ultimate Startup Pitch Deck Template and Example Startup Pitch
The Ultimate Startup Pitch Deck Template and Example Startup PitchThe Ultimate Startup Pitch Deck Template and Example Startup Pitch
The Ultimate Startup Pitch Deck Template and Example Startup PitchSilvia Mah PhD, MBA
 
Shooting Short Film Proposal PowerPoint Presentation Slides
Shooting Short Film Proposal PowerPoint Presentation SlidesShooting Short Film Proposal PowerPoint Presentation Slides
Shooting Short Film Proposal PowerPoint Presentation SlidesSlideTeam
 
Ensol Global Company Presentation
Ensol Global Company PresentationEnsol Global Company Presentation
Ensol Global Company Presentationensol global
 
How to PM Hardware Products by Western Digital Sr. PM
How to PM Hardware Products by Western Digital Sr. PMHow to PM Hardware Products by Western Digital Sr. PM
How to PM Hardware Products by Western Digital Sr. PMProduct School
 
Effective virtual meetings for project success
Effective virtual meetings for project successEffective virtual meetings for project success
Effective virtual meetings for project successFrederick Oware
 
From Project to Product: Unlocking Product Agility
From Project to Product: Unlocking Product AgilityFrom Project to Product: Unlocking Product Agility
From Project to Product: Unlocking Product AgilityCprime
 

Similar to its all about the domain, honey! Experiences from 15 years of Domain-Driven Design (20)

How to survive product feature prioritization (and still get what you want)
How to survive product feature prioritization (and still get what you want)How to survive product feature prioritization (and still get what you want)
How to survive product feature prioritization (and still get what you want)
 
Proposal For Shooting Documentary Feature Film PowerPoint Presentation Slides
Proposal For Shooting Documentary Feature Film PowerPoint Presentation SlidesProposal For Shooting Documentary Feature Film PowerPoint Presentation Slides
Proposal For Shooting Documentary Feature Film PowerPoint Presentation Slides
 
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)
7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)
 
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED CALAVERAS COUNTY ...
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED  CALAVERAS COUNTY ...GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED  CALAVERAS COUNTY ...
GENERAL VENTURES EDD DIRECTOR KATHRYN GALLIONPAGE 3 EDITED CALAVERAS COUNTY ...
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCC
 
Rotomaker PPT
Rotomaker PPTRotomaker PPT
Rotomaker PPT
 
EVOLVE'15 | Maximize | Andy Lapin | Kelley Blue Book
EVOLVE'15 | Maximize | Andy Lapin | Kelley Blue BookEVOLVE'15 | Maximize | Andy Lapin | Kelley Blue Book
EVOLVE'15 | Maximize | Andy Lapin | Kelley Blue Book
 
Gabor Event Services: Conferences, National Launches and Tours
Gabor Event Services: Conferences, National Launches and ToursGabor Event Services: Conferences, National Launches and Tours
Gabor Event Services: Conferences, National Launches and Tours
 
Design Drive Interactive Case Studies
Design Drive Interactive Case StudiesDesign Drive Interactive Case Studies
Design Drive Interactive Case Studies
 
Rapiscan presentation 260313
Rapiscan presentation 260313Rapiscan presentation 260313
Rapiscan presentation 260313
 
Pci1
Pci1Pci1
Pci1
 
SOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDDSOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDD
 
The Ultimate Startup Pitch Deck Template and Example Startup Pitch
The Ultimate Startup Pitch Deck Template and Example Startup PitchThe Ultimate Startup Pitch Deck Template and Example Startup Pitch
The Ultimate Startup Pitch Deck Template and Example Startup Pitch
 
Shooting Short Film Proposal PowerPoint Presentation Slides
Shooting Short Film Proposal PowerPoint Presentation SlidesShooting Short Film Proposal PowerPoint Presentation Slides
Shooting Short Film Proposal PowerPoint Presentation Slides
 
Ensol Global Company Presentation
Ensol Global Company PresentationEnsol Global Company Presentation
Ensol Global Company Presentation
 
VoxLab Training brochure
VoxLab Training brochureVoxLab Training brochure
VoxLab Training brochure
 
How to PM Hardware Products by Western Digital Sr. PM
How to PM Hardware Products by Western Digital Sr. PMHow to PM Hardware Products by Western Digital Sr. PM
How to PM Hardware Products by Western Digital Sr. PM
 
Effective virtual meetings for project success
Effective virtual meetings for project successEffective virtual meetings for project success
Effective virtual meetings for project success
 
From Project to Product: Unlocking Product Agility
From Project to Product: Unlocking Product AgilityFrom Project to Product: Unlocking Product Agility
From Project to Product: Unlocking Product Agility
 
Henry Suguna Raj.
Henry Suguna Raj.Henry Suguna Raj.
Henry Suguna Raj.
 

More from 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
 
Resolving technical debt in software architecture
Resolving technical debt in software architectureResolving technical debt in software architecture
Resolving technical debt in software architectureCarola 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
 
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigtTechnische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigtCarola Lilienthal
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honeyCarola Lilienthal
 
From pair programming to mob architecting
From pair programming to mob architecting From pair programming to mob architecting
From pair programming to mob architecting Carola Lilienthal
 
Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in phpCarola Lilienthal
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honeyCarola Lilienthal
 
Technische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigenTechnische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigenCarola Lilienthal
 
Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritteCarola Lilienthal
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenCarola Lilienthal
 

More from Carola Lilienthal (16)

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...
 
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
 
Monolithen mit ddd zerlegen
Monolithen mit ddd zerlegenMonolithen mit ddd zerlegen
Monolithen mit ddd zerlegen
 
The joy of multiple models
The joy of multiple modelsThe joy of multiple models
The joy of multiple models
 
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
 
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigtTechnische Schulden tun weh! Wie man sie erkennt und beseitigt
Technische Schulden tun weh! Wie man sie erkennt und beseitigt
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honey
 
From pair programming to mob architecting
From pair programming to mob architecting From pair programming to mob architecting
From pair programming to mob architecting
 
Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in php
 
Its all about the domain honey
Its all about the domain honeyIts all about the domain honey
Its all about the domain honey
 
Technische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigenTechnische Schulden in Architekturen erkennen und beseitigen
Technische Schulden in Architekturen erkennen und beseitigen
 
Langlebige architekturen
Langlebige architekturenLanglebige architekturen
Langlebige architekturen
 
Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritte
 
Technische schulden abbauen
Technische schulden abbauenTechnische schulden abbauen
Technische schulden abbauen
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
 

Recently uploaded

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 

Recently uploaded (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 

its all about the domain, honey! Experiences from 15 years of Domain-Driven Design

  • 1. WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG It’s all about the domain, honey ! Experiences from 15 years of Domain-Driven Design Dr. Carola Lilienthal @cairolali cl@wps.de
  • 3.
  • 6.
  • 7.
  • 10.
  • 12. @cairolali WHAT IS THE GOAL? Sustainable Architecture the sad norm… Release cycle or time Number of delivered feature per release
  • 13. @cairolali 10 42 81 165 120 15 Mio 5 Mio 1 Mio 500.000 100.000 Size in Lines of Code
  • 15. @cairolali NEW SOLUTION – SAME PROBLEM Simon Brown
  • 16. @cairolali ▪ 15 years of development ▪ 3 Million LOC in Java ▪ 463 tangled classes from 10 modules ▪ This cycle contains 500.000 LOC BIG BALL OF MUD ON CLASS LEVEL
  • 17. @cairolali ▪ 20 years of developement ▪ 10 Million Lines of Code in Java ▪ 90 Modules ▪ No dependency control! BIG BALL OF MUD ON MODULE LEVEL
  • 18. @cairolali ▪ Within a module: ▪ high cohesion = strong coupling ▪ Single Responsibility Principle ▪ Separation of concern ▪ Outside a module: ▪ loose coupling = low coupling ▪ Information hiding ▪ Separation of concern HIGH COHESION AND LOOSE COUPLING
  • 19. @cairolali HIGH COHERSION AND LOW COUPLING FOR MODUES Loose coupling = As little coupling as possible! Technical Layering Module B Module A Module C User Interface User Interface User Interface Domain Application Domain Application Domain Application
  • 20. @cairolali THE NEED OF DOMAIN ARCHITECTURE An architecture (with or without microservices) only then has high cohesion and low coupling if it follows a domain architecture!
  • 21. @cairolali ONE DOMAIN MODEL AND DATABASE FOR ALL Module B Module A Module C User Interface User Interface User Interface Domain Application Application Application
  • 22. @cairolali ONE SHARED MODEL Several domain use cases Models allocated to their use cases
  • 23. @cairolali Security Business Bild 215 Account Managing Account Credit Customer Credit Business Presentation Application Presentation Application Presentation Application Security
  • 24. @cairolali Bild 216 Security Business Credit Business Account Managing Account Credit Security Credit Customer Presentation Application Presentation Application Presentation Application Customer Credit Account Securities Account Security Customer Credit Security
  • 25. @cairolali MODELS IN MICROSERVICES ➔ domains need to be divided into subdomains with smaller models ▪ Separate models ▪ Allow independent changes (separation of concern) ▪ have to represent a smaller set of the requirements (high cohesion) ▪ Need a clear boarder (loose coupling) ➔ Each model and its subdomain should be small enough to be programmed by one team.
  • 26.
  • 27. @cairolali STRATEGIC DESIGN ▪ Find the subdomains in the domain and decompose your software accordingly. ▪ Set explicit boundaries with the bounded contexts for ▪ domain-oriented parts in the software and ▪ in the team organization ▪ Goal: high cohesion + loose coupling Domain Software System Bounded Context A Bounded Context B Team A Team B Bounded Context C Team C Subdomain A Subdomain B Subdomain C
  • 30. @cairolali TICKET AGENT CUSTOMER WEEKLY SCHEDULE << work in progress >> REQUESTED NUMBER OF SEATS AUDITORIUM PLAN LIST OF AUDITORIUM PLANS SOLD SEATS TICKETS FILM SHOW FOUND SEATS AUDITORIUM PLAN WEEKLY SCHEDULE << finalized >> FILM DISTRIBUTOR CINEMA MANAGER AD AGENCY ADVERTISMENT BOOKING PLAN PLAN FOR FILM SHOWS COUNTRYWIDE NUMBER OF VISITORS AVAILABILITY OF FILMS 1 6 2 10 5 3 8 4 7 9 11 12 13 14 AUDITORIUM PLAN 15 STARTS WORKING ON CHECKS THE NEGOTIATES WITH FINALIZES THE AND CREATES FOR THE UPCOMMING WEEK MONEY TICKETS TICKETS ASKS FOR FOR A OPENS A CLOSES THE FROM THE OFFERS TO GIVES TO SEARCHES ON THE ON THE MARKS PRINTS GIVES THE TO THE
  • 31. @cairolali TICKET AGENT WEEKLY SCHEDULE << work in progress >> REQUESTED NUMBER OF SEATS AUDITORIUM PLAN LIST OF AUDITORIUM PLANS SOLD SEATS TICKETS FILM SHOW FOUND SEATS AUDITORIUM PLAN WEEKLY SCHEDULE << finalized >> FILM DISTRIBUTOR CINEMA MANAGER AD AGENCY ADVERTISMENT BOOKING PLAN PLAN FOR FILM SHOWS COUNTRYWIDE NUMBER OF VISITORS AVAILABILITY OF FILMS 1 6 2 10 5 3 8 4 9 11 12 13 14 AUDITORIUM PLAN 15 STARTS WORKING ON CHECKS THE NEGOTIATES WITH FINALIZES THE AND CREATES FOR THE UPCOMMING WEEK MONEY TICKETS TICKETS ASKS FOR FOR A OPENS A CLOSES THE FROM THE OFFERS TO GIVES TO SEARCHES ON THE ON THE MARKS PRINTS GIVES THE TO THE Trigger Trigger CUSTOMER 7
  • 32. @cairolali TICKET AGENT WEEKLY SCHEDULE << work in progress >> REQUESTED NUMBER OF SEATS AUDITORIUM PLAN LIST OF AUDITORIUM PLANS SOLD SEATS TICKETS FILM SHOW FOUND SEATS AUDITORIUM PLAN WEEKLY SCHEDULE << finalized >> FILM DISTRIBUTOR CINEMA MANAGER AD AGENCY ADVERTISMENT BOOKING PLAN PLAN FOR FILM SHOWS COUNTRYWIDE NUMBER OF VISITORS AVAILABILITY OF FILMS 1 6 2 10 5 3 8 4 9 11 12 13 14 AUDITORIUM PLAN 15 STARTS WORKING ON CHECKS THE NEGOTIATES WITH FINALIZES THE AND CREATES FOR THE UPCOMMING WEEK MONEY TICKETS TICKETS ASKS FOR FOR A OPENS A CLOSES THE FROM THE OFFERS TO GIVES TO SEARCHES ON THE ON THE MARKS PRINTS GIVES THE TO THE Trigger Trigger once a week CUSTOMER 7
  • 33. @cairolali TICKET AGENT WEEKLY SCHEDULE << work in progress >> REQUESTED NUMBER OF SEATS AUDITORIUM PLAN LIST OF AUDITORIUM PLANS SOLD SEATS TICKETS FILM SHOW FOUND SEATS AUDITORIUM PLAN WEEKLY SCHEDULE << finalized >> FILM DISTRIBUTOR CINEMA MANAGER AD AGENCY ADVERTISMENT BOOKING PLAN PLAN FOR FILM SHOWS COUNTRYWIDE NUMBER OF VISITORS AVAILABILITY OF FILMS 1 6 2 10 5 3 8 4 9 11 12 13 14 AUDITORIUM PLAN 15 STARTS WORKING ON CHECKS THE NEGOTIATES WITH FINALIZES THE AND CREATES FOR THE UPCOMMING WEEK MONEY TICKETS TICKETS ASKS FOR FOR A OPENS A CLOSES THE FROM THE OFFERS TO GIVES TO SEARCHES ON THE ON THE MARKS PRINTS GIVES THE TO THE Trigger Trigger once a week each time a customer asks for a ticket CUSTOMER 7
  • 34. @cairolali TICKET AGENT WEEKLY SCHEDULE << work in progress >> REQUESTED NUMBER OF SEATS AUDITORIUM PLAN LIST OF AUDITORIUM PLANS SOLD SEATS TICKETS FILM SHOW FOUND SEATS AUDITORIUM PLAN WEEKLY SCHEDULE << finalized >> FILM DISTRIBUTOR CINEMA MANAGER AD AGENCY ADVERTISMENT BOOKING PLAN PLAN FOR FILM SHOWS COUNTRYWIDE NUMBER OF VISITORS AVAILABILITY OF FILMS 1 6 2 10 5 3 8 4 9 11 12 13 14 AUDITORIUM PLAN 15 STARTS WORKING ON CHECKS THE NEGOTIATES WITH FINALIZES THE AND CREATES FOR THE UPCOMMING WEEK MONEY TICKETS TICKETS ASKS FOR FOR A OPENS A CLOSES THE FROM THE OFFERS TO GIVES TO SEARCHES ON THE ON THE MARKS PRINTS GIVES THE TO THE Trigger Trigger once a week each time a customer asks for a ticket Cinema management Ticket sales CUSTOMER 7
  • 35. @cairolali TICKET AGENT WEEKLY SCHEDULE << work in progress >> REQUESTED NUMBER OF SEATS AUDITORIUM PLAN LIST OF AUDITORIUM PLANS SOLD SEATS TICKETS FILM SHOW FOUND SEATS AUDITORIUM PLAN WEEKLY SCHEDULE << finalized >> FILM DISTRIBUTOR CINEMA MANAGER AD AGENCY ADVERTISMENT BOOKING PLAN PLAN FOR FILM SHOWS COUNTRYWIDE NUMBER OF VISITORS AVAILABILITY OF FILMS 1 6 2 10 5 3 8 4 9 11 12 13 14 AUDITORIUM PLAN 15 STARTS WORKING ON CHECKS THE NEGOTIATES WITH FINALIZES THE AND CREATES FOR THE UPCOMMING WEEK MONEY TICKETS TICKETS FOR A OPENS A CLOSES THE FROM THE OFFERS TO GIVES TO SEARCHES ON THE ON THE MARKS PRINTS GIVES THE TO THE Trigger Trigger once a week each time a customer asks for a ticket Cinema management Ticket sales information flow CUSTOMER 7
  • 36. @cairolali TICKET AGENT WEEKLY SCHEDULE << work in progress >> REQUESTED NUMBER OF SEATS AUDITORIUM PLAN LIST OF AUDITORIUM PLANS SOLD SEATS TICKETS FILM SHOW FOUND SEATS AUDITORIUM PLAN WEEKLY SCHEDULE << finalized >> FILM DISTRIBUTOR CINEMA MANAGER AD AGENCY ADVERTISMENT BOOKING PLAN PLAN FOR FILM SHOWS COUNTRYWIDE NUMBER OF VISITORS AVAILABILITY OF FILMS 1 6 2 10 5 3 8 4 9 11 12 13 14 AUDITORIUM PLAN 15 STARTS WORKING ON CHECKS THE NEGOTIATES WITH FINALIZES THE AND CREATES FOR THE UPCOMMING WEEK MONEY TICKETS TICKETS ASKS FOR FOR A OPENS A CLOSES THE FROM THE OFFERS TO GIVES TO SEARCHES ON THE ON THE MARKS PRINTS GIVES THE TO THE Trigger Trigger once a week each time a customer asks for a ticket Cinema management Ticket sales information flow WEEKLY SCHEDULE << printed >> CUSTOMER 7
  • 37. @cairolali WeeklyPlanningService •PlanFilmInHall •AdPlanningForFilm •ExpectedNumVisitors •GenerateFinalSchedule TicketSaleService •SearchTimeForFilm •SearchSeatsInHall •BookSeats •SellPlaces UI WeeklyPlanning UI TicketSales UI WeeklyPlanning UI TicketSales WeeklyScheduleService •SearchTimeForFilm •PlanFilmInHall •AdPlanningForFilm •ExpectedNumVisitors •GenerateFinalSchedule AuditoriumPlanService •SearchSeatsInHall •BookSeats •SellPlaces •GeneratePlans Bounded Context Cinema Management Bounded Context TicketSales Service Weekly Schedule Service Auditorium Plans Service Tickets Division according to entities with direct coupling Bounded contexts according to business processes with "asynchronous" coupling WeeklySchedule WeeklySchedule WeeklySchedule WeeklySchedule Auditorium Plans Auditorium Plans AuditoriumPlans Auditorium Plans Ticket Ticket
  • 38. @cairolali HOW DO I CUT MY LEGACY TO FIT THE DOMAIN? ▪ According to boundaries in the business process described by the domain experts ▪ Information flow ▪ Process rhythms ▪ Process triggers ▪ According to differences in the use/definition of key concepts in the domain ▪ By departments in the organization or groups of domain experts
  • 39. @cairolali 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 MODULARITY MATURITY INDEX (MMI)
  • 40. @cairolali ANALYSING MODULARITY WITH TOOLS Structure101 Sotograph Lattix TeamScale Sonargraph