SlideShare a Scribd company logo
Colour Modelling 
Modelling with the 3rd dimension 
by Doug English 
Co-founder & Head of Engineering @ Culture Amp
Object Oriented Modelling asks us 
to focus on ‘real world objects’ 
Aeroplane Passenger 
Flight Plan Airport
and their relationships 
* 
* 
Aeroplane Passenger 
* 
1 
* 
* 
Flight Plan Airport
but temporality causes us issues 
* 
* 
Aeroplane Passenger 
current historical 
* 
1 
* * 
1 
1 
Flight Plan Airport
but temporality causes us issues 
* 
* 
? 
Aeroplane Passenger 
current historical 
* 
1 
* 
* 
1 
1 
Flight Plan Airport
and the more concepts we add the 
messier things get 
AirHost Pilot 
Customs 
Aeroplane Passenger 
Flight Plan Airport 
Luggage 
Hanger Airline Itinerary 
Country 
Ticket 
RunWay 
(Admit it, we’ve all seen domain models worse than this!)
my background 
Consulted as a Domain Modeller 
with large scale industry models (eg IFW, OFX) 
at multinationals (NAB, ANZ) 
Mentored by Jeff De Luca 
(Architect of Feature Driven Development) 
5 years of experience applying and adapting 
my learnings to startups
what I’ve learned 
You can’t model a domain you don’t understand. 
It’s critical to work hand-in-hand with domain experts!! 
Don’t try and model the “entire” domain. 
Model only what your solution needs to care about. 
Your domain model must be the share language between 
all stakeholders - and used to name classes in the code!!
Colour Modelling categorises 
everything into one of 4 archetypes 
<< party, place, thing >> 
<< party, place, thing >> << description >> 
Description 
Party, Place, 
Thing 
<< role >> << << moment-moment-interval interval >> 
>> 
Moment- 
Role Interval 
(They’re all ‘real world’ just some are ‘concepts’, not ‘objects’)
that tend to connect consistently 
<< party, place, thing >> 
<< party, place, thing >> << description >> 
Description 
0.. * 1 
Party, Place, 
Thing 
1 
0.. 1 
<< role >> << << moment-moment-interval interval >> 
>> 
Moment- 
0.. * 
1 
Role Interval
and tend to have similar attributes 
<< party, place, thing >> Description << description >> 
<< moment-interval >> 
Party, Place, Thing 
Moment-Interval 
0.. * 
<< party, place, thing >> 
identityNumber 
name 
customValue 
getCustomValueOrDefault 
listRoles 
accessAcrossRoles 
<< << role role >> 
>> << moment-interval >> 
Role 
1 description 
itemNumber 
defaultValue 
listPPTs 
findAvailable 
calculateTotalFor 
assignedNumber 
status 
isAvailable 
listMIs 
assessAcrossMIs 
referenceNumber 
dateOrDateTimeOrInterval 
status 
addRemoveDetail 
calculateTotal 
complete 
0.. 1 
0.. * 
1 
1 
<< moment-interval >> 
<< mi-detail >> 
<< momentM-inI-tDerevtaali l>> 
quantity 
calculateTotal 
0.. *
the Domain Neutral Component 
PlaceDescription << description >> PartyDescription << description >> 
0.. * 0.. * 
Party <<party>> 1 0.. 1 << Role role >> 
<< Role role >> 0.. 1 
Place <<place>> 1 1 
0.. * 0.. * 
<< moment-interval >> 
PriorMI << moment-interval >> NextMI 
ThingDescription << description >> 
1 
<< role >> T<<thhiinng>g> 
Role << role >> 
0.. * 1 
MI-Detail << mi-detail >> 
<< moment-interval >> 
Moment-Interval 
0.. * 
0.. * 
0.. * 1 
0.. * 
1 
1 
1 
1 
1 
0.. 1
<<party>> 
0.. 1 
1 
Culture Amp’s core domain 
0.. * 0.. * 
0.. * 1 Account << moment-interval >> Response 
Question <<thing>> 
<< moment-interval >> 
SurveyType << description >> 
Person 
Participant << role >> 
0.. * 
0.. * 
1 
1 
1 
Answer 
<< moment-interval >> 
Survey 
<< mi-detail >> 0.. * QuestionInSurvey << mi-detail >> 
0.. * 0.. * 
1 1 
<< party >>
Granting access to Administrators 
Account 0.. * 
0.. 1 
1 
SurveyAdministrator << role >> 
1 
0.. * 
<< moment-interval >> 
Person 
0.. * 
AccountAdministrator << role >> 
1 
AccountAdminGrant << moment-interval >> 
<< moment-interval >> SurveyAdminGrant 
Survey << moment-interval >> 
0.. * 
1 
0.. 1 
1 
0.. * 
<<party>> 
1 1
<< description >> 
resources 
Java Modeling In Color With UML: 
Enterprise Components and Process 
by Peter Coad, Jeff de Luca and Eric Lefebvre 
www.petercoad.com/download/bookpdfs/jmcuch01.pdf 
by Peter Coad 
http://www.step-10.com/SoftwareDesign/ModellingInColour/index.html 
by Peter Coad 
http://bit.ly/fdd-presentation 
by Daniel Vacanti
<< description >> 
Questions? 
Culture Amp is hiring! 
Interested in playing with 
Colour Modelling in the real world? 
! 
Come and talk to us! 
doug@cultureamp.com

More Related Content

What's hot

Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan Gole
Chetan Gole
 
Object Oriented Analysis & Design
Object Oriented Analysis & DesignObject Oriented Analysis & Design
Object Oriented Analysis & Design
Meghaj Mallick
 
Componentes vs Servicos
Componentes vs ServicosComponentes vs Servicos
Componentes vs Servicos
Marcelo Sávio
 
Agile modeling
Agile modelingAgile modeling
Agile modeling
Amir Moghimi
 
Open Close Principle
Open Close PrincipleOpen Close Principle
Open Close Principle
Thaichor Seng
 
1869495 er diagrams
1869495 er diagrams1869495 er diagrams
1869495 er diagrams
Malebogo Babutsi
 
Mentor coordinator performance appraisal
Mentor coordinator performance appraisalMentor coordinator performance appraisal
Mentor coordinator performance appraisal
ethanedison09
 
Object Oriented Programming ppt presentation
Object Oriented Programming ppt presentationObject Oriented Programming ppt presentation
Object Oriented Programming ppt presentation
AyanaRukasar
 
Grasp patterns and its types
Grasp patterns and its typesGrasp patterns and its types
Grasp patterns and its types
Syed Hassan Ali
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design pattern
Mindfire Solutions
 
DockerCon SF 2015: The Distributed System Toolkit
DockerCon SF 2015: The Distributed System ToolkitDockerCon SF 2015: The Distributed System Toolkit
DockerCon SF 2015: The Distributed System Toolkit
Docker, Inc.
 
Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)
Dennis Traub
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
Sanae BEKKAR
 
V model in SDLC
V model in SDLCV model in SDLC
V model in SDLC
Jasour Obeidat
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process Models
Nana Sarpong
 
SDLC
SDLCSDLC
Win runner testing tool
Win runner testing toolWin runner testing tool
Win runner testing tool
mansirajpara
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
Christophe Marchal
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
Paulo Clavijo
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 

What's hot (20)

Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan Gole
 
Object Oriented Analysis & Design
Object Oriented Analysis & DesignObject Oriented Analysis & Design
Object Oriented Analysis & Design
 
Componentes vs Servicos
Componentes vs ServicosComponentes vs Servicos
Componentes vs Servicos
 
Agile modeling
Agile modelingAgile modeling
Agile modeling
 
Open Close Principle
Open Close PrincipleOpen Close Principle
Open Close Principle
 
1869495 er diagrams
1869495 er diagrams1869495 er diagrams
1869495 er diagrams
 
Mentor coordinator performance appraisal
Mentor coordinator performance appraisalMentor coordinator performance appraisal
Mentor coordinator performance appraisal
 
Object Oriented Programming ppt presentation
Object Oriented Programming ppt presentationObject Oriented Programming ppt presentation
Object Oriented Programming ppt presentation
 
Grasp patterns and its types
Grasp patterns and its typesGrasp patterns and its types
Grasp patterns and its types
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design pattern
 
DockerCon SF 2015: The Distributed System Toolkit
DockerCon SF 2015: The Distributed System ToolkitDockerCon SF 2015: The Distributed System Toolkit
DockerCon SF 2015: The Distributed System Toolkit
 
Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
V model in SDLC
V model in SDLCV model in SDLC
V model in SDLC
 
SDLC and Software Process Models
SDLC and Software Process ModelsSDLC and Software Process Models
SDLC and Software Process Models
 
SDLC
SDLCSDLC
SDLC
 
Win runner testing tool
Win runner testing toolWin runner testing tool
Win runner testing tool
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 

Similar to Colour Modelling - domain modelling with the 3rd dimension

Building a Location-based platform with MongoDB from Zero.
Building a Location-based platform with MongoDB from Zero.Building a Location-based platform with MongoDB from Zero.
Building a Location-based platform with MongoDB from Zero.
Ravi Teja
 
Accessibility: A Journey to Accessible Rich Components
Accessibility: A Journey to Accessible Rich ComponentsAccessibility: A Journey to Accessible Rich Components
Accessibility: A Journey to Accessible Rich Components
Achievers Tech
 
Connecting your Python App to OpenERP through OOOP
Connecting your Python App to OpenERP through OOOPConnecting your Python App to OpenERP through OOOP
Connecting your Python App to OpenERP through OOOP
raimonesteve
 
Building apps for microsoft teams - aossg
Building apps for microsoft teams - aossgBuilding apps for microsoft teams - aossg
Building apps for microsoft teams - aossg
Jenkins NS
 
"R & Text Analytics" (15 January 2013)
"R & Text Analytics" (15 January 2013)"R & Text Analytics" (15 January 2013)
"R & Text Analytics" (15 January 2013)
Portland R User Group
 
Stakeholder Driven EA
Stakeholder Driven EAStakeholder Driven EA
Stakeholder Driven EA
Real IRM
 
The Ring programming language version 1.10 book - Part 7 of 212
The Ring programming language version 1.10 book - Part 7 of 212The Ring programming language version 1.10 book - Part 7 of 212
The Ring programming language version 1.10 book - Part 7 of 212
Mahmoud Samir Fayed
 
AtlasCamp 2015: Confluence add-on devs can learn from Lego
AtlasCamp 2015: Confluence add-on devs can learn from LegoAtlasCamp 2015: Confluence add-on devs can learn from Lego
AtlasCamp 2015: Confluence add-on devs can learn from Lego
Atlassian
 
Database design
Database designDatabase design
Database design
BuhaHemal
 
Who killed object oriented design?
Who killed object oriented design?Who killed object oriented design?
Who killed object oriented design?
Amir Barylko
 
The Ring programming language version 1.5.1 book - Part 5 of 180
The Ring programming language version 1.5.1 book - Part 5 of 180The Ring programming language version 1.5.1 book - Part 5 of 180
The Ring programming language version 1.5.1 book - Part 5 of 180
Mahmoud Samir Fayed
 
The well tempered search application
The well tempered search applicationThe well tempered search application
The well tempered search application
Ted Sullivan
 
4 jobs and_position_(sit_s___eit_s)_part_4
4 jobs and_position_(sit_s___eit_s)_part_44 jobs and_position_(sit_s___eit_s)_part_4
4 jobs and_position_(sit_s___eit_s)_part_4
Oracle HRMS Functional Consultant
 
1Introduction to OOAD
1Introduction to OOAD1Introduction to OOAD
1Introduction to OOAD
Shahid Riaz
 
The Ring programming language version 1.5.4 book - Part 6 of 185
The Ring programming language version 1.5.4 book - Part 6 of 185The Ring programming language version 1.5.4 book - Part 6 of 185
The Ring programming language version 1.5.4 book - Part 6 of 185
Mahmoud Samir Fayed
 
Python slide
Python slidePython slide
The Ring programming language version 1.5.3 book - Part 6 of 184
The Ring programming language version 1.5.3 book - Part 6 of 184The Ring programming language version 1.5.3 book - Part 6 of 184
The Ring programming language version 1.5.3 book - Part 6 of 184
Mahmoud Samir Fayed
 
Introduction to Python and TensorFlow
Introduction to Python and TensorFlowIntroduction to Python and TensorFlow
Introduction to Python and TensorFlow
Bayu Aldi Yansyah
 
Introduction to Python3 Programming Language
Introduction to Python3 Programming LanguageIntroduction to Python3 Programming Language
Introduction to Python3 Programming Language
Tushar Mittal
 
Building conversational experiences with Actions on Google
Building conversational experiences with Actions on GoogleBuilding conversational experiences with Actions on Google
Building conversational experiences with Actions on Google
Ido Green
 

Similar to Colour Modelling - domain modelling with the 3rd dimension (20)

Building a Location-based platform with MongoDB from Zero.
Building a Location-based platform with MongoDB from Zero.Building a Location-based platform with MongoDB from Zero.
Building a Location-based platform with MongoDB from Zero.
 
Accessibility: A Journey to Accessible Rich Components
Accessibility: A Journey to Accessible Rich ComponentsAccessibility: A Journey to Accessible Rich Components
Accessibility: A Journey to Accessible Rich Components
 
Connecting your Python App to OpenERP through OOOP
Connecting your Python App to OpenERP through OOOPConnecting your Python App to OpenERP through OOOP
Connecting your Python App to OpenERP through OOOP
 
Building apps for microsoft teams - aossg
Building apps for microsoft teams - aossgBuilding apps for microsoft teams - aossg
Building apps for microsoft teams - aossg
 
"R & Text Analytics" (15 January 2013)
"R & Text Analytics" (15 January 2013)"R & Text Analytics" (15 January 2013)
"R & Text Analytics" (15 January 2013)
 
Stakeholder Driven EA
Stakeholder Driven EAStakeholder Driven EA
Stakeholder Driven EA
 
The Ring programming language version 1.10 book - Part 7 of 212
The Ring programming language version 1.10 book - Part 7 of 212The Ring programming language version 1.10 book - Part 7 of 212
The Ring programming language version 1.10 book - Part 7 of 212
 
AtlasCamp 2015: Confluence add-on devs can learn from Lego
AtlasCamp 2015: Confluence add-on devs can learn from LegoAtlasCamp 2015: Confluence add-on devs can learn from Lego
AtlasCamp 2015: Confluence add-on devs can learn from Lego
 
Database design
Database designDatabase design
Database design
 
Who killed object oriented design?
Who killed object oriented design?Who killed object oriented design?
Who killed object oriented design?
 
The Ring programming language version 1.5.1 book - Part 5 of 180
The Ring programming language version 1.5.1 book - Part 5 of 180The Ring programming language version 1.5.1 book - Part 5 of 180
The Ring programming language version 1.5.1 book - Part 5 of 180
 
The well tempered search application
The well tempered search applicationThe well tempered search application
The well tempered search application
 
4 jobs and_position_(sit_s___eit_s)_part_4
4 jobs and_position_(sit_s___eit_s)_part_44 jobs and_position_(sit_s___eit_s)_part_4
4 jobs and_position_(sit_s___eit_s)_part_4
 
1Introduction to OOAD
1Introduction to OOAD1Introduction to OOAD
1Introduction to OOAD
 
The Ring programming language version 1.5.4 book - Part 6 of 185
The Ring programming language version 1.5.4 book - Part 6 of 185The Ring programming language version 1.5.4 book - Part 6 of 185
The Ring programming language version 1.5.4 book - Part 6 of 185
 
Python slide
Python slidePython slide
Python slide
 
The Ring programming language version 1.5.3 book - Part 6 of 184
The Ring programming language version 1.5.3 book - Part 6 of 184The Ring programming language version 1.5.3 book - Part 6 of 184
The Ring programming language version 1.5.3 book - Part 6 of 184
 
Introduction to Python and TensorFlow
Introduction to Python and TensorFlowIntroduction to Python and TensorFlow
Introduction to Python and TensorFlow
 
Introduction to Python3 Programming Language
Introduction to Python3 Programming LanguageIntroduction to Python3 Programming Language
Introduction to Python3 Programming Language
 
Building conversational experiences with Actions on Google
Building conversational experiences with Actions on GoogleBuilding conversational experiences with Actions on Google
Building conversational experiences with Actions on Google
 

Recently uploaded

Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
Luigi Fugaro
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
OnePlan Solutions
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and MoreManyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
narinav14
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
aeeva
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 

Recently uploaded (20)

Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...Transforming Product Development using OnePlan To Boost Efficiency and Innova...
Transforming Product Development using OnePlan To Boost Efficiency and Innova...
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and MoreManyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 

Colour Modelling - domain modelling with the 3rd dimension

  • 1. Colour Modelling Modelling with the 3rd dimension by Doug English Co-founder & Head of Engineering @ Culture Amp
  • 2. Object Oriented Modelling asks us to focus on ‘real world objects’ Aeroplane Passenger Flight Plan Airport
  • 3. and their relationships * * Aeroplane Passenger * 1 * * Flight Plan Airport
  • 4. but temporality causes us issues * * Aeroplane Passenger current historical * 1 * * 1 1 Flight Plan Airport
  • 5. but temporality causes us issues * * ? Aeroplane Passenger current historical * 1 * * 1 1 Flight Plan Airport
  • 6. and the more concepts we add the messier things get AirHost Pilot Customs Aeroplane Passenger Flight Plan Airport Luggage Hanger Airline Itinerary Country Ticket RunWay (Admit it, we’ve all seen domain models worse than this!)
  • 7. my background Consulted as a Domain Modeller with large scale industry models (eg IFW, OFX) at multinationals (NAB, ANZ) Mentored by Jeff De Luca (Architect of Feature Driven Development) 5 years of experience applying and adapting my learnings to startups
  • 8. what I’ve learned You can’t model a domain you don’t understand. It’s critical to work hand-in-hand with domain experts!! Don’t try and model the “entire” domain. Model only what your solution needs to care about. Your domain model must be the share language between all stakeholders - and used to name classes in the code!!
  • 9. Colour Modelling categorises everything into one of 4 archetypes << party, place, thing >> << party, place, thing >> << description >> Description Party, Place, Thing << role >> << << moment-moment-interval interval >> >> Moment- Role Interval (They’re all ‘real world’ just some are ‘concepts’, not ‘objects’)
  • 10. that tend to connect consistently << party, place, thing >> << party, place, thing >> << description >> Description 0.. * 1 Party, Place, Thing 1 0.. 1 << role >> << << moment-moment-interval interval >> >> Moment- 0.. * 1 Role Interval
  • 11. and tend to have similar attributes << party, place, thing >> Description << description >> << moment-interval >> Party, Place, Thing Moment-Interval 0.. * << party, place, thing >> identityNumber name customValue getCustomValueOrDefault listRoles accessAcrossRoles << << role role >> >> << moment-interval >> Role 1 description itemNumber defaultValue listPPTs findAvailable calculateTotalFor assignedNumber status isAvailable listMIs assessAcrossMIs referenceNumber dateOrDateTimeOrInterval status addRemoveDetail calculateTotal complete 0.. 1 0.. * 1 1 << moment-interval >> << mi-detail >> << momentM-inI-tDerevtaali l>> quantity calculateTotal 0.. *
  • 12. the Domain Neutral Component PlaceDescription << description >> PartyDescription << description >> 0.. * 0.. * Party <<party>> 1 0.. 1 << Role role >> << Role role >> 0.. 1 Place <<place>> 1 1 0.. * 0.. * << moment-interval >> PriorMI << moment-interval >> NextMI ThingDescription << description >> 1 << role >> T<<thhiinng>g> Role << role >> 0.. * 1 MI-Detail << mi-detail >> << moment-interval >> Moment-Interval 0.. * 0.. * 0.. * 1 0.. * 1 1 1 1 1 0.. 1
  • 13. <<party>> 0.. 1 1 Culture Amp’s core domain 0.. * 0.. * 0.. * 1 Account << moment-interval >> Response Question <<thing>> << moment-interval >> SurveyType << description >> Person Participant << role >> 0.. * 0.. * 1 1 1 Answer << moment-interval >> Survey << mi-detail >> 0.. * QuestionInSurvey << mi-detail >> 0.. * 0.. * 1 1 << party >>
  • 14. Granting access to Administrators Account 0.. * 0.. 1 1 SurveyAdministrator << role >> 1 0.. * << moment-interval >> Person 0.. * AccountAdministrator << role >> 1 AccountAdminGrant << moment-interval >> << moment-interval >> SurveyAdminGrant Survey << moment-interval >> 0.. * 1 0.. 1 1 0.. * <<party>> 1 1
  • 15. << description >> resources Java Modeling In Color With UML: Enterprise Components and Process by Peter Coad, Jeff de Luca and Eric Lefebvre www.petercoad.com/download/bookpdfs/jmcuch01.pdf by Peter Coad http://www.step-10.com/SoftwareDesign/ModellingInColour/index.html by Peter Coad http://bit.ly/fdd-presentation by Daniel Vacanti
  • 16. << description >> Questions? Culture Amp is hiring! Interested in playing with Colour Modelling in the real world? ! Come and talk to us! doug@cultureamp.com