colour modelling - domain modelling with the 3rd dimension
DESCRIPTION
This is the slide pack that I presented at the Melbourne Ruby meetup on September 24, 2014 - http://www.meetup.com/Ruby-On-Rails-Oceania-Melbourne/events/195632942/ Hope you enjoy! Any questions, my email is [email protected]TRANSCRIPT
Colour ModellingModelling 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
AirportFlight Plan
Aeroplane Passenger
AirportFlight Plan
**
*
1
*
and their relationships
*
Aeroplane Passenger
AirportFlight Plan
**
*
1
* *
but temporality causes us issues
1
1current historical
Aeroplane Passenger
AirportFlight Plan
**
*
1
*
but temporality causes us issues
*
1
1current historical
?
Aeroplane Passenger
AirportFlight Plan
PilotAirHost
Luggage
ItineraryAirlineHanger
Country
Ticket
Customs
RunWay
(Admit it, we’ve all seen domain models worse than this!)
and the more concepts we add the messier things get
Mentored by Jeff De Luca (Architect of Feature Driven Development)
Consulted as a Domain Modeller with large scale industry models (eg IFW, OFX)
at multinationals (NAB, ANZ)
5 years of experience applying and adapting my learnings to startups
my background
Don’t try and model the “entire” domain. Model only what your solution needs to care about.
You can’t model a domain you don’t understand. It’s critical to work hand-in-hand with domain experts!!
Your domain model must be the share language between all stakeholders - and used to name classes in the code!!
what I’ve learned
Colour Modelling categorises everything into one of 4 archetypes
<< party, place, thing >> << description >>
<< moment-interval >><< role >>
Description
Moment-IntervalRole
<< description >>
<< moment-interval >><< role >>
Party, Place, Thing
<< party, place, thing >>
(They’re all ‘real world’ just some are ‘concepts’, not ‘objects’)
<< party, place, thing >> << description >>
<< moment-interval >><< role >>
Description
Moment-IntervalRole
0.. * 1
0.. 1
0.. *
1
1
<< description >>
<< moment-interval >><< role >>
Party, Place, Thing
<< party, place, thing >>
that tend to connect consistently
Description<< party, place, thing >> << description >>
<< moment-interval >>
Party, Place, Thing
Moment-Interval
0.. *
<< party, place, thing >>
<< moment-interval >><< role >>Role
<< role >>
identityNumbernamecustomValue
getCustomValueOrDefaultlistRoles accessAcrossRoles
1 descriptionitemNumberdefaultValue
listPPTs findAvailable calculateTotalFor
assignedNumber status
isAvailable listMIs assessAcrossMIs
referenceNumber dateOrDateTimeOrInterval status
addRemoveDetail calculateTotalcomplete
0.. 1
0.. *
1
1<< moment-interval >>MI-Detail
<< moment-interval >>
calculateTotal
quantity
<< mi-detail >>
0.. *
and tend to have similar attributes
ThingDescription<< description >>
Thing<<thing>><< role >>
Role<< role >>
0.. *1
MI-Detail<< mi-detail >>
PriorMI<< moment-interval >>
NextMI << moment-interval >>
Moment-Interval<< moment-interval >>
PlaceDescription<< description >>
PartyDescription<< description >>
Place<<place>>
Party<<party>>
Role<< role >>
Role<< role >>
0.. *
0.. *0.. * 0.. *
0.. *0.. *
0.. * 0.. *
0.. 1 0.. 11
1 1
1
1
1
1
11
1
0.. 1
the Domain Neutral Component
Question<<thing>>
0.. *1Account<< moment-interval >>
Response<< moment-interval >>
SurveyType<< description >>
Person<<party>>
Participant<< role >>
0.. *
0.. *
0.. * 0.. *
0.. 1
1
1
1
1
Answer
Survey
<< mi-detail >>0.. *QuestionInSurvey
<< mi-detail >>
<< moment-interval >>
0.. * 0.. *1 1
Culture Amp’s core domain<< party >>
0.. *Account<< moment-interval >>
SurveyAdminGrant<< moment-interval >>
Person
SurveyAdministrator<< role >>
0.. *0.. *
0.. 1
1
1
Survey<< moment-interval >>
AccountAdminGrant<< moment-interval >>
AccountAdministrator<< role >>
0.. *1
0.. 1
1
0.. *1
<<party>>
Granting access to Administrators
1 1
<< description >>
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
http://www.step-10.com/SoftwareDesign/ModellingInColour/index.html
http://bit.ly/fdd-presentationby Daniel Vacanti
by Peter Coad
by Peter Coad
resources
<< description >>
Interested in playing with Colour Modelling in the real world?
!
Come and talk to us! [email protected]
Culture Amp is hiring!
Questions?