SlideShare a Scribd company logo
1 of 63
Download to read offline
Cut & Shave
Domain Modelling
Herman Peeren
October 2019
Cut & Shave
Domain Modelling
Cut & Shave
Domain Modelling
Domain & model
Balloon - capacity
Planned Flight - date, departure place
Passengers
Tickets - buying, paying
(Re)Reservations
Gift-tickets
Crew - Skills
Car - driving license
→
Domain & image
in math
Domain & image / picture / model
→
Domain & model
domain → model
abstraction
domain ← model
e.g. new product design
model = example
Domain & model
Modelling
Model is built with LANGUAGE
always interpretation
implicit meaning, e.g. “capacity” of a basket
Modelling
Model is built with LANGUAGE
always interpretation
implicit meaning, e.g. “capacity” of a basket
ANY description of a domain is modelling!
Solution is limited by description of the problem
What you SAY is what you get
Language & world view
linguistic relativity
Sapir-Whorf hypothesis
language can have (some) effect on thought
Example:
different colors
Language & world view
linguistic relativity
Sapir-Whorf hypothesis
language can have (some) effect on thought
Example: no future tense:
Keith Chen’s investigation of saving behaviour
Example:
different colors
Language & world view
linguistic relativity
Sapir-Whorf hypothesis
language can have (some) effect on thought
Criticism of Whorfianism
Noam Chomsky: universal grammar
John McWhorter:
•	Tiny differences: different world-view??
•	Language features ramdomly distributed
•	Questionable classification of languages
•	Discrimination
Criticism of Whorfianism
Noam Chomsky: universal grammar
John McWhorter:
•	Tiny differences: different world-view??
•	Language features ramdomly distributed
•	Questionable classification of languages
•	Discrimination
Culture demonstrates our diversity.
Language demonstrates our similarity.
Criticism of Whorfianism
Noam Chomsky: universal grammar
Different words...
words slice the world into tiny pieces
different domain: different words (jargon)
or: what’s left of the Sapir-Whorf hypothesis
example: foreign keys – “customer knows this”
getting to know the customer’s domain!
morning flight - evening flight
use language of the domain
not a technical language as “template” over the domain
ERD - class diagram - entities - structure
Accidental complexity
Modelling = philosophy
... and vice versa
Philosophers have been modelling for ages
Their domain being not a particular domain,
but everything in general: “the world”, “the universe”.
The world is everything that is the case.
(Die Welt ist alles, was der Fall ist)
Wittgenstein, Tractatus logico-philosophicus, 1918
Picture-theory of language
Modelling = philosophy
... and vice versa
Aristotle
(4th century BC)
categorise, types of “being”
substance (exists on its own) versus accidentals (attributes, properties)
Modelling = philosophy
... and vice versa
Aristotle
(4th century BC)
categorise, types of “being”
substance (exists on its own) versus accidentals (attributes, properties)
value
redness of something;
a “value” doesn’t exist on its own.
Modelling = philosophy
... and vice versa
Aristotle
(4th century BC)
categorise, types of “being”
substance (exists on its own) versus accidentals (attributes, properties)
part - whole
invoice – invoicelines
(aggregation <> composition)
value
redness of something;
a “value” doesn’t exist on its own.
Modelling = philosophy
... and vice versa
Ockham
(14th century)
simplificate; not more entities than necessary
RAZOR
Modelling = philosophy
... and vice versa
BUT: Newton
(1643 - 1727)
TIME as extra entity,
which was useful
Modelling = philosophy
... and vice versa
BUT: Newton
(1643 - 1727)
TIME as extra entity,
which was useful
<>Leibniz
(1646 - 1716)
Modelling = philosophy
... and vice versa
BUT: Newton
(1643 - 1727)
TIME as extra entity,
which was useful
<>Leibniz
(1646 - 1716)
Time & space as an a priori idea
=> interpretation, implicitness.
=> Kant
(1724 - 1804)
Category Mistake
Gilbert Ryle
The Concept of Mind, 1949
Critique of “the Carthesian myth”:
mind & body as 2 entities:
the dogma of the “ghost in the machine”.
It is a logical error: a category mistake.
Category Mistake
Oxford: colleges, libraries, playing fields, scientific departments, administrative offices, etc.
Category Mistake
Oxford: colleges, libraries, playing fields, scientific departments, administrative offices, etc.
But where is the University?
Category Mistake
Cricket: bowlers, batsmen, fielders, umpirers, scorers.
Category Mistake
Cricket: bowlers, batsmen, fielders, umpirers, scorers.
But where is the team-spirit?
Category Mistake
things or facts of one kind are presented
as if they belong to another
Category Mistake
things or facts of one kind are presented
as if they belong to another
invoice and invoicelines
entity or value object
In class diagrams, ERDs and relational calculus everything is a class, entity or tuple (table).
No categories => category-mistakes are easily introduced and overlooked!
Category Mistake
things or facts of one kind are presented
as if they belong to another
Country and borders
(and the borders of those borders
and the borders of those borders
of those borders ad infinitam)
Bounded Context
In Domain Driven Design the boundaries of a model are called a
They treat bounded contexts like the borders of a country.
And talk about the boundaries of that bounded context...
country and its borders: category mistake!
Bounded Context
A model is bounded by language consistency.
The boundaries of a model are called a Bounded Context.
A Bounded Context is bounded (duh!) by language consistency.
Ockham’s razor: model == Bounded Context
Bounded Context
Different MEANING of same word in another context
example: “customer”
divide & conquer - separate models
Example bounded contexts:
•	flight planning
•	booking
•	payment, accounting
•	crew planning
think inside a box
Very good principle to divide in separate models!!!
Reduces complexity
•	 different computer language?? No: “language” = metaphore
•	 other metaphore: tool (Alvaro Videla) .
•	 a programming language is parasitic (Umberto Eco)
different language ⇒ different model
What do you mean by different language?
•	different computer language?? No: “language” = metaphore
•	 different natural language?? No, MEANING should be the same
model should not be “lost in translation”
different language ⇒ different model
What do you mean by different language?
•	different computer language?? No: “language” = metaphore
•	 different natural language?? No, MEANING should be the same
•	different paradigm?? No: MEANING is the same
•	 Example:
•	structural 1:n reservation (CRUD)
•	vs temporal / Event Sourcing: reserved & cancelled events
other implementation, not other meaning
different language ⇒ different model
What do you mean by different language?
Bounded Context
different language ⇒ different model
Document the model!
Code can document the model, but is not read by the business
Ubiquitous language
= model language
Wittgenstein
the limits of language
Whereof one cannot speak, thereof one must be silent.
(Wovon man nicht sprechen kann, darüber muss man schweigen)
Escape?
Creativity!
Expanding the limits of language
is possible (Gödel)
Expressing beyond the limits of language
is Art
We shape our world by modelling
expanding the language
expanding the language
specific language that is used in a domain
JARGON = language that is already expanded for a specific domain!
expanding the language
specific language that is used in a domain
JARGON = language that is already expanded for a specific domain!
creative
ADD new words to the model language
SHARE those new words with the domain experts
expanding the language
specific language that is used in a domain
JARGON = language that is already expanded for a specific domain!
creative
ADD new words to the model language
SHARE those new words with the domain experts
freedom
no excess entities (Occam)
but you can add “extra” entities, like time; if USEFUL.
domain modelling
•	use words from the domain
domain modelling
•	use words from the domain
•	avoid technical language
domain modelling
•	use words from the domain
•	avoid technical language
•	divide in separate models with consistency of MEANING
domain modelling
•	use words from the domain
•	avoid technical language
•	divide in separate models with consistency of MEANING
•	model-language is expandable
domain modelling
•	use words from the domain
•	avoid technical language
•	divide in separate models with consistency of MEANING
•	model-language is expandable
•	freedom to not let model correspond 1:1 with domain
domain modelling
•	use words from the domain
•	avoid technical language
•	divide in separate models with consistency of MEANING
•	model-language is expandable
•	freedom to not let model correspond 1:1 with domain
•	document the model
epilogue: girl power
what about ... the world?
environment & ethics
Average ballloon flight 50 litres propane gas
= about 1000 km car drive.
what about ... the world?
environment & ethics
Average ballloon flight 50 litres propane gas
= about 1000 km car drive.
Dilemma:
romantic activity, giving something extra to life,
versus not good for the whole planet.
what about ... the world?
environment & ethics
Average ballloon flight 50 litres propane gas
= about 1000 km car drive.
Dilemma:
romantic activity, giving something extra to life,
versus not good for the whole planet.
Developers have a responsibility:
do I agree with the business I work for?
All in all you’re just
another brick in the wall
Thank you!
hermanpeeren.nl
herman@yepr.nl
@HermanPeeren
slideshare.net/HermanPeeren

More Related Content

Similar to Cut & Shave

Architecture as language pp
Architecture as language ppArchitecture as language pp
Architecture as language ppAlex Brown
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingToine Bogers
 
"Multimodal Argument Decoded" Keynote Speech
"Multimodal Argument Decoded" Keynote Speech"Multimodal Argument Decoded" Keynote Speech
"Multimodal Argument Decoded" Keynote SpeechCheryl Ball
 
Presentation alex
Presentation alexPresentation alex
Presentation alexAlex Curtis
 
Ontology Engineering SSSC2009
Ontology Engineering SSSC2009Ontology Engineering SSSC2009
Ontology Engineering SSSC2009Elena Simperl
 
Category theory is general abolute nonsens
Category theory is general abolute nonsensCategory theory is general abolute nonsens
Category theory is general abolute nonsensPawel Szulc
 
How to write scientific papers correctly, clearly, and concisely - Part II Wr...
How to write scientific papers correctly, clearly, and concisely - Part II Wr...How to write scientific papers correctly, clearly, and concisely - Part II Wr...
How to write scientific papers correctly, clearly, and concisely - Part II Wr...Sajid Iqbal
 
Compiling a Monolingual Dictionary for Native Speakers
Compiling a Monolingual Dictionary for Native SpeakersCompiling a Monolingual Dictionary for Native Speakers
Compiling a Monolingual Dictionary for Native Speakersmostlyharmless
 
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matterPHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matterPeter Jones
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingYasir Khan
 
A Featherweight Approach to FOOL
A Featherweight Approach to FOOLA Featherweight Approach to FOOL
A Featherweight Approach to FOOLgreenwop
 
Ontology engineering: Ontology alignment
Ontology engineering: Ontology alignmentOntology engineering: Ontology alignment
Ontology engineering: Ontology alignmentGuus Schreiber
 
Lecture 4 academic writing in english
Lecture 4 academic writing in englishLecture 4 academic writing in english
Lecture 4 academic writing in englishannemiekwegman
 
A Panorama of Natural Language Processing
A Panorama of Natural Language ProcessingA Panorama of Natural Language Processing
A Panorama of Natural Language ProcessingTed Xiao
 
2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy
2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy 2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy
2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy KatherineHaratsis
 
Languages, Ontologies and Automatic Grammar Generation - Prof. Pedro Rangel H...
Languages, Ontologies and Automatic Grammar Generation - Prof. Pedro Rangel H...Languages, Ontologies and Automatic Grammar Generation - Prof. Pedro Rangel H...
Languages, Ontologies and Automatic Grammar Generation - Prof. Pedro Rangel H...Facultad de Informática UCM
 
Corpus linguistics
Corpus linguisticsCorpus linguistics
Corpus linguisticsIrum Malik
 
Understanding Objects
Understanding ObjectsUnderstanding Objects
Understanding ObjectsR. Sosa
 

Similar to Cut & Shave (20)

Architecture as language pp
Architecture as language ppArchitecture as language pp
Architecture as language pp
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
NLP_KASHK: Introduction
NLP_KASHK: Introduction NLP_KASHK: Introduction
NLP_KASHK: Introduction
 
"Multimodal Argument Decoded" Keynote Speech
"Multimodal Argument Decoded" Keynote Speech"Multimodal Argument Decoded" Keynote Speech
"Multimodal Argument Decoded" Keynote Speech
 
Presentation alex
Presentation alexPresentation alex
Presentation alex
 
Ontology Engineering SSSC2009
Ontology Engineering SSSC2009Ontology Engineering SSSC2009
Ontology Engineering SSSC2009
 
Category theory is general abolute nonsens
Category theory is general abolute nonsensCategory theory is general abolute nonsens
Category theory is general abolute nonsens
 
How to write scientific papers correctly, clearly, and concisely - Part II Wr...
How to write scientific papers correctly, clearly, and concisely - Part II Wr...How to write scientific papers correctly, clearly, and concisely - Part II Wr...
How to write scientific papers correctly, clearly, and concisely - Part II Wr...
 
Compiling a Monolingual Dictionary for Native Speakers
Compiling a Monolingual Dictionary for Native SpeakersCompiling a Monolingual Dictionary for Native Speakers
Compiling a Monolingual Dictionary for Native Speakers
 
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matterPHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
A Featherweight Approach to FOOL
A Featherweight Approach to FOOLA Featherweight Approach to FOOL
A Featherweight Approach to FOOL
 
Programing Language
Programing LanguagePrograming Language
Programing Language
 
Ontology engineering: Ontology alignment
Ontology engineering: Ontology alignmentOntology engineering: Ontology alignment
Ontology engineering: Ontology alignment
 
Lecture 4 academic writing in english
Lecture 4 academic writing in englishLecture 4 academic writing in english
Lecture 4 academic writing in english
 
A Panorama of Natural Language Processing
A Panorama of Natural Language ProcessingA Panorama of Natural Language Processing
A Panorama of Natural Language Processing
 
2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy
2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy 2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy
2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy
 
Languages, Ontologies and Automatic Grammar Generation - Prof. Pedro Rangel H...
Languages, Ontologies and Automatic Grammar Generation - Prof. Pedro Rangel H...Languages, Ontologies and Automatic Grammar Generation - Prof. Pedro Rangel H...
Languages, Ontologies and Automatic Grammar Generation - Prof. Pedro Rangel H...
 
Corpus linguistics
Corpus linguisticsCorpus linguistics
Corpus linguistics
 
Understanding Objects
Understanding ObjectsUnderstanding Objects
Understanding Objects
 

More from Herman Peeren

ProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfHerman Peeren
 
ExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfHerman Peeren
 
Programmeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldHerman Peeren
 
Improve our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingImprove our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingHerman Peeren
 
DCI DDD-BE April 2015
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015Herman Peeren
 
Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Herman Peeren
 
Next Generation Joomla!
Next Generation Joomla!Next Generation Joomla!
Next Generation Joomla!Herman Peeren
 
Behat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHPBehat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHPHerman Peeren
 
Design patterns illustrated 010PHP
Design patterns illustrated 010PHPDesign patterns illustrated 010PHP
Design patterns illustrated 010PHPHerman Peeren
 
Print, geen kunst aan
Print, geen kunst aanPrint, geen kunst aan
Print, geen kunst aanHerman Peeren
 
Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Herman Peeren
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensiesHerman Peeren
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templatesHerman Peeren
 
Joomla2.0 architecture
Joomla2.0 architectureJoomla2.0 architecture
Joomla2.0 architectureHerman Peeren
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Herman Peeren
 
Commercial gpljoomla
Commercial gpljoomlaCommercial gpljoomla
Commercial gpljoomlaHerman Peeren
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns IllustratedHerman Peeren
 

More from Herman Peeren (20)

ProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdf
 
ExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdf
 
Programmeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereld
 
Dci in PHP
Dci in PHPDci in PHP
Dci in PHP
 
Improve our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingImprove our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional Programming
 
DCI DDD-BE April 2015
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015
 
Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03
 
Event Sourcing
Event SourcingEvent Sourcing
Event Sourcing
 
Next Generation Joomla!
Next Generation Joomla!Next Generation Joomla!
Next Generation Joomla!
 
Behat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHPBehat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHP
 
Design patterns illustrated 010PHP
Design patterns illustrated 010PHPDesign patterns illustrated 010PHP
Design patterns illustrated 010PHP
 
Print, geen kunst aan
Print, geen kunst aanPrint, geen kunst aan
Print, geen kunst aan
 
Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies
 
#jd12nl Seblod 2
#jd12nl  Seblod 2#jd12nl  Seblod 2
#jd12nl Seblod 2
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templates
 
Joomla2.0 architecture
Joomla2.0 architectureJoomla2.0 architecture
Joomla2.0 architecture
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.
 
Commercial gpljoomla
Commercial gpljoomlaCommercial gpljoomla
Commercial gpljoomla
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
 

Recently uploaded

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
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
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
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-...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
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 ...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
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 ...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

Cut & Shave

  • 1. Cut & Shave Domain Modelling Herman Peeren October 2019
  • 2. Cut & Shave Domain Modelling
  • 3. Cut & Shave Domain Modelling
  • 4. Domain & model Balloon - capacity Planned Flight - date, departure place Passengers Tickets - buying, paying (Re)Reservations Gift-tickets Crew - Skills Car - driving license →
  • 6. Domain & image / picture / model →
  • 8. domain → model abstraction domain ← model e.g. new product design model = example Domain & model
  • 9. Modelling Model is built with LANGUAGE always interpretation implicit meaning, e.g. “capacity” of a basket
  • 10. Modelling Model is built with LANGUAGE always interpretation implicit meaning, e.g. “capacity” of a basket ANY description of a domain is modelling! Solution is limited by description of the problem What you SAY is what you get
  • 11. Language & world view linguistic relativity Sapir-Whorf hypothesis language can have (some) effect on thought
  • 12. Example: different colors Language & world view linguistic relativity Sapir-Whorf hypothesis language can have (some) effect on thought
  • 13. Example: no future tense: Keith Chen’s investigation of saving behaviour Example: different colors Language & world view linguistic relativity Sapir-Whorf hypothesis language can have (some) effect on thought
  • 14. Criticism of Whorfianism Noam Chomsky: universal grammar
  • 15. John McWhorter: • Tiny differences: different world-view?? • Language features ramdomly distributed • Questionable classification of languages • Discrimination Criticism of Whorfianism Noam Chomsky: universal grammar
  • 16. John McWhorter: • Tiny differences: different world-view?? • Language features ramdomly distributed • Questionable classification of languages • Discrimination Culture demonstrates our diversity. Language demonstrates our similarity. Criticism of Whorfianism Noam Chomsky: universal grammar
  • 17. Different words... words slice the world into tiny pieces different domain: different words (jargon) or: what’s left of the Sapir-Whorf hypothesis
  • 18. example: foreign keys – “customer knows this” getting to know the customer’s domain! morning flight - evening flight use language of the domain not a technical language as “template” over the domain
  • 19. ERD - class diagram - entities - structure Accidental complexity
  • 20. Modelling = philosophy ... and vice versa Philosophers have been modelling for ages Their domain being not a particular domain, but everything in general: “the world”, “the universe”. The world is everything that is the case. (Die Welt ist alles, was der Fall ist) Wittgenstein, Tractatus logico-philosophicus, 1918 Picture-theory of language
  • 21. Modelling = philosophy ... and vice versa Aristotle (4th century BC) categorise, types of “being” substance (exists on its own) versus accidentals (attributes, properties)
  • 22. Modelling = philosophy ... and vice versa Aristotle (4th century BC) categorise, types of “being” substance (exists on its own) versus accidentals (attributes, properties) value redness of something; a “value” doesn’t exist on its own.
  • 23. Modelling = philosophy ... and vice versa Aristotle (4th century BC) categorise, types of “being” substance (exists on its own) versus accidentals (attributes, properties) part - whole invoice – invoicelines (aggregation <> composition) value redness of something; a “value” doesn’t exist on its own.
  • 24. Modelling = philosophy ... and vice versa Ockham (14th century) simplificate; not more entities than necessary RAZOR
  • 25. Modelling = philosophy ... and vice versa BUT: Newton (1643 - 1727) TIME as extra entity, which was useful
  • 26. Modelling = philosophy ... and vice versa BUT: Newton (1643 - 1727) TIME as extra entity, which was useful <>Leibniz (1646 - 1716)
  • 27. Modelling = philosophy ... and vice versa BUT: Newton (1643 - 1727) TIME as extra entity, which was useful <>Leibniz (1646 - 1716) Time & space as an a priori idea => interpretation, implicitness. => Kant (1724 - 1804)
  • 28. Category Mistake Gilbert Ryle The Concept of Mind, 1949 Critique of “the Carthesian myth”: mind & body as 2 entities: the dogma of the “ghost in the machine”. It is a logical error: a category mistake.
  • 29. Category Mistake Oxford: colleges, libraries, playing fields, scientific departments, administrative offices, etc.
  • 30. Category Mistake Oxford: colleges, libraries, playing fields, scientific departments, administrative offices, etc. But where is the University?
  • 31. Category Mistake Cricket: bowlers, batsmen, fielders, umpirers, scorers.
  • 32. Category Mistake Cricket: bowlers, batsmen, fielders, umpirers, scorers. But where is the team-spirit?
  • 33. Category Mistake things or facts of one kind are presented as if they belong to another
  • 34. Category Mistake things or facts of one kind are presented as if they belong to another invoice and invoicelines entity or value object In class diagrams, ERDs and relational calculus everything is a class, entity or tuple (table). No categories => category-mistakes are easily introduced and overlooked!
  • 35. Category Mistake things or facts of one kind are presented as if they belong to another Country and borders (and the borders of those borders and the borders of those borders of those borders ad infinitam)
  • 36. Bounded Context In Domain Driven Design the boundaries of a model are called a They treat bounded contexts like the borders of a country. And talk about the boundaries of that bounded context... country and its borders: category mistake!
  • 37. Bounded Context A model is bounded by language consistency. The boundaries of a model are called a Bounded Context. A Bounded Context is bounded (duh!) by language consistency. Ockham’s razor: model == Bounded Context
  • 38. Bounded Context Different MEANING of same word in another context example: “customer” divide & conquer - separate models Example bounded contexts: • flight planning • booking • payment, accounting • crew planning think inside a box Very good principle to divide in separate models!!! Reduces complexity
  • 39. • different computer language?? No: “language” = metaphore • other metaphore: tool (Alvaro Videla) . • a programming language is parasitic (Umberto Eco) different language ⇒ different model What do you mean by different language?
  • 40. • different computer language?? No: “language” = metaphore • different natural language?? No, MEANING should be the same model should not be “lost in translation” different language ⇒ different model What do you mean by different language?
  • 41. • different computer language?? No: “language” = metaphore • different natural language?? No, MEANING should be the same • different paradigm?? No: MEANING is the same • Example: • structural 1:n reservation (CRUD) • vs temporal / Event Sourcing: reserved & cancelled events other implementation, not other meaning different language ⇒ different model What do you mean by different language?
  • 42. Bounded Context different language ⇒ different model Document the model! Code can document the model, but is not read by the business
  • 44.
  • 45. Wittgenstein the limits of language Whereof one cannot speak, thereof one must be silent. (Wovon man nicht sprechen kann, darüber muss man schweigen)
  • 46.
  • 47. Escape? Creativity! Expanding the limits of language is possible (Gödel) Expressing beyond the limits of language is Art We shape our world by modelling
  • 49. expanding the language specific language that is used in a domain JARGON = language that is already expanded for a specific domain!
  • 50. expanding the language specific language that is used in a domain JARGON = language that is already expanded for a specific domain! creative ADD new words to the model language SHARE those new words with the domain experts
  • 51. expanding the language specific language that is used in a domain JARGON = language that is already expanded for a specific domain! creative ADD new words to the model language SHARE those new words with the domain experts freedom no excess entities (Occam) but you can add “extra” entities, like time; if USEFUL.
  • 53. domain modelling • use words from the domain • avoid technical language
  • 54. domain modelling • use words from the domain • avoid technical language • divide in separate models with consistency of MEANING
  • 55. domain modelling • use words from the domain • avoid technical language • divide in separate models with consistency of MEANING • model-language is expandable
  • 56. domain modelling • use words from the domain • avoid technical language • divide in separate models with consistency of MEANING • model-language is expandable • freedom to not let model correspond 1:1 with domain
  • 57. domain modelling • use words from the domain • avoid technical language • divide in separate models with consistency of MEANING • model-language is expandable • freedom to not let model correspond 1:1 with domain • document the model
  • 58.
  • 60. what about ... the world? environment & ethics Average ballloon flight 50 litres propane gas = about 1000 km car drive.
  • 61. what about ... the world? environment & ethics Average ballloon flight 50 litres propane gas = about 1000 km car drive. Dilemma: romantic activity, giving something extra to life, versus not good for the whole planet.
  • 62. what about ... the world? environment & ethics Average ballloon flight 50 litres propane gas = about 1000 km car drive. Dilemma: romantic activity, giving something extra to life, versus not good for the whole planet. Developers have a responsibility: do I agree with the business I work for? All in all you’re just another brick in the wall