Cut & Shave

Herman Peeren
Herman Peerenindependent software developer at Yepr
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
Cut & Shave
Wittgenstein
the limits of language
Whereof one cannot speak, thereof one must be silent.
(Wovon man nicht sprechen kann, darüber muss man schweigen)
Cut & Shave
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
Cut & Shave
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
1 of 63

Recommended

Narrative to Reporting(For Researchers) by
Narrative to Reporting(For Researchers)Narrative to Reporting(For Researchers)
Narrative to Reporting(For Researchers)DrAmitPurushottam
328 views28 slides
Advance composition june 2015 by
Advance composition june 2015Advance composition june 2015
Advance composition june 2015Nyehr Gamarcha
160 views68 slides
Advances In Wsd Acl 2005 by
Advances In Wsd Acl 2005Advances In Wsd Acl 2005
Advances In Wsd Acl 2005University of Minnesota, Duluth
709 views208 slides
Advances In Wsd Aaai 2005 by
Advances In Wsd Aaai 2005Advances In Wsd Aaai 2005
Advances In Wsd Aaai 2005University of Minnesota, Duluth
526 views208 slides
Advances In Wsd Aaai 2005 by
Advances In Wsd Aaai 2005Advances In Wsd Aaai 2005
Advances In Wsd Aaai 2005University of Minnesota, Duluth
1.2K views208 slides

More Related Content

Similar to Cut & Shave

Architecture as language pp by
Architecture as language ppArchitecture as language pp
Architecture as language ppAlex Brown
2.3K views35 slides
Natural Language Processing by
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingToine Bogers
703 views91 slides
NLP_KASHK: Introduction by
NLP_KASHK: Introduction NLP_KASHK: Introduction
NLP_KASHK: Introduction Hemantha Kulathilake
121 views16 slides
"Multimodal Argument Decoded" Keynote Speech by
"Multimodal Argument Decoded" Keynote Speech"Multimodal Argument Decoded" Keynote Speech
"Multimodal Argument Decoded" Keynote SpeechCheryl Ball
2.3K views13 slides
Presentation alex by
Presentation alexPresentation alex
Presentation alexAlex Curtis
44 views16 slides
Ontology Engineering SSSC2009 by
Ontology Engineering SSSC2009Ontology Engineering SSSC2009
Ontology Engineering SSSC2009Elena Simperl
661 views29 slides

Similar to Cut & Shave(20)

Architecture as language pp by Alex Brown
Architecture as language ppArchitecture as language pp
Architecture as language pp
Alex Brown2.3K views
Natural Language Processing by Toine Bogers
Natural Language ProcessingNatural Language Processing
Natural Language Processing
Toine Bogers703 views
"Multimodal Argument Decoded" Keynote Speech by Cheryl Ball
"Multimodal Argument Decoded" Keynote Speech"Multimodal Argument Decoded" Keynote Speech
"Multimodal Argument Decoded" Keynote Speech
Cheryl Ball2.3K views
Ontology Engineering SSSC2009 by Elena Simperl
Ontology Engineering SSSC2009Ontology Engineering SSSC2009
Ontology Engineering SSSC2009
Elena Simperl661 views
Category theory is general abolute nonsens by Pawel Szulc
Category theory is general abolute nonsensCategory theory is general abolute nonsens
Category theory is general abolute nonsens
Pawel Szulc828 views
How to write scientific papers correctly, clearly, and concisely - Part II Wr... by Sajid Iqbal
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 Iqbal471 views
Compiling a Monolingual Dictionary for Native Speakers by mostlyharmless
Compiling a Monolingual Dictionary for Native SpeakersCompiling a Monolingual Dictionary for Native Speakers
Compiling a Monolingual Dictionary for Native Speakers
mostlyharmless2K views
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter by Peter Jones
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
Peter Jones223 views
Natural Language Processing by Yasir Khan
Natural Language ProcessingNatural Language Processing
Natural Language Processing
Yasir Khan4K views
A Featherweight Approach to FOOL by greenwop
A Featherweight Approach to FOOLA Featherweight Approach to FOOL
A Featherweight Approach to FOOL
greenwop2.7K views
Ontology engineering: Ontology alignment by Guus Schreiber
Ontology engineering: Ontology alignmentOntology engineering: Ontology alignment
Ontology engineering: Ontology alignment
Guus Schreiber1.2K views
Lecture 4 academic writing in english by annemiekwegman
Lecture 4 academic writing in englishLecture 4 academic writing in english
Lecture 4 academic writing in english
annemiekwegman1.6K views
A Panorama of Natural Language Processing by Ted Xiao
A Panorama of Natural Language ProcessingA Panorama of Natural Language Processing
A Panorama of Natural Language Processing
Ted Xiao2.2K views
2012 TESOL Seminar 2: Building a 4x4 toolkit for academic literacy by KatherineHaratsis
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
KatherineHaratsis3.7K views

More from Herman Peeren

ExtensionGenerator-JoomlaDagen2023-slides.pdf by
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfHerman Peeren
2 views37 slides
Programmeren, talen en het begrijpen van de wereld by
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldHerman Peeren
736 views51 slides
Dci in PHP by
Dci in PHPDci in PHP
Dci in PHPHerman Peeren
963 views25 slides
Improve our PHP code with ideas from Functional Programming by
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
893 views14 slides
DCI DDD-BE April 2015 by
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015Herman Peeren
691 views19 slides
Design patterns illustrated-2015-03 by
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Herman Peeren
1.3K views98 slides

More from Herman Peeren(20)

ExtensionGenerator-JoomlaDagen2023-slides.pdf by Herman Peeren
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdf
Herman Peeren2 views
Programmeren, talen en het begrijpen van de wereld by Herman Peeren
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereld
Herman Peeren736 views
Improve our PHP code with ideas from Functional Programming by Herman Peeren
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
Herman Peeren893 views
Design patterns illustrated-2015-03 by Herman Peeren
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03
Herman Peeren1.3K views
Next Generation Joomla! by Herman Peeren
Next Generation Joomla!Next Generation Joomla!
Next Generation Joomla!
Herman Peeren1.3K views
Behat, Behavioral Driven Development (BDD) in PHP by Herman Peeren
Behat, Behavioral Driven Development (BDD) in PHPBehat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHP
Herman Peeren1.7K views
Design patterns illustrated 010PHP by Herman Peeren
Design patterns illustrated 010PHPDesign patterns illustrated 010PHP
Design patterns illustrated 010PHP
Herman Peeren3.7K views
Jooctrine - Doctrine ORM in Joomla! by Herman Peeren
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!
Herman Peeren7K views
#jd12nl Joomla 2.5 extensies by Herman Peeren
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies
Herman Peeren743 views
Joomla2.0 architecture by Herman Peeren
Joomla2.0 architectureJoomla2.0 architecture
Joomla2.0 architecture
Herman Peeren1.3K views
Webservices: connecting Joomla! with other programs. by Herman Peeren
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.
Herman Peeren21.1K views
Design Patterns Illustrated by Herman Peeren
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
Herman Peeren42.7K views
Flash templates for Joomla! by Herman Peeren
Flash templates for Joomla!Flash templates for Joomla!
Flash templates for Joomla!
Herman Peeren3.3K views

Recently uploaded

How Workforce Management Software Empowers SMEs | TraQSuite by
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteTraQSuite
7 views3 slides
.NET Deserialization Attacks by
.NET Deserialization Attacks.NET Deserialization Attacks
.NET Deserialization AttacksDharmalingam Ganesan
7 views50 slides
What is API by
What is APIWhat is API
What is APIartembondar5
15 views15 slides
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...NimaTorabi2
17 views17 slides
Winter Projects GDSC IITK by
Winter Projects GDSC IITKWinter Projects GDSC IITK
Winter Projects GDSC IITKSahilSingh368445
416 views60 slides
nintendo_64.pptx by
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
7 views7 slides

Recently uploaded(20)

How Workforce Management Software Empowers SMEs | TraQSuite by TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite7 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi217 views
Bootstrapping vs Venture Capital.pptx by Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic16 views
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67026 views
Understanding HTML terminology by artembondar5
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminology
artembondar58 views
How to build dyanmic dashboards and ensure they always work by Wiiisdom
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always work
Wiiisdom16 views
Quality Engineer: A Day in the Life by John Valentino
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the Life
John Valentino10 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino8 views
Top-5-production-devconMunich-2023-v2.pptx by Tier1 app
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptx
Tier1 app9 views
predicting-m3-devopsconMunich-2023-v2.pptx by Tier1 app
predicting-m3-devopsconMunich-2023-v2.pptxpredicting-m3-devopsconMunich-2023-v2.pptx
predicting-m3-devopsconMunich-2023-v2.pptx
Tier1 app14 views
Automated Testing of Microsoft Power BI Reports by RTTS
Automated Testing of Microsoft Power BI ReportsAutomated Testing of Microsoft Power BI Reports
Automated Testing of Microsoft Power BI Reports
RTTS11 views

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
  • 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)
  • 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
  • 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