colour modelling - domain modelling with the 3rd dimension

16
Colour Modelling Modelling with the 3rd dimension by Doug English Co-founder & Head of Engineering @ Culture Amp

Upload: douglas-english

Post on 28-Nov-2014

139 views

Category:

Software


1 download

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

Page 1: Colour Modelling - domain modelling with the 3rd dimension

Colour ModellingModelling with the 3rd dimension

by Doug English Co-founder & Head of Engineering @ Culture Amp

Page 2: Colour Modelling - domain modelling with the 3rd dimension

Object Oriented Modelling asks us to focus on ‘real world objects’

Aeroplane Passenger

AirportFlight Plan

Page 3: Colour Modelling - domain modelling with the 3rd dimension

Aeroplane Passenger

AirportFlight Plan

**

*

1

*

and their relationships

*

Page 4: Colour Modelling - domain modelling with the 3rd dimension

Aeroplane Passenger

AirportFlight Plan

**

*

1

* *

but temporality causes us issues

1

1current historical

Page 5: Colour Modelling - domain modelling with the 3rd dimension

Aeroplane Passenger

AirportFlight Plan

**

*

1

*

but temporality causes us issues

*

1

1current historical

?

Page 6: Colour Modelling - domain modelling with the 3rd dimension

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

Page 7: Colour Modelling - domain modelling with the 3rd dimension

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

Page 8: Colour Modelling - domain modelling with the 3rd dimension

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

Page 9: Colour Modelling - domain modelling with the 3rd dimension

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

Page 10: Colour Modelling - domain modelling with the 3rd dimension

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

Page 11: Colour Modelling - domain modelling with the 3rd dimension

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

Page 12: Colour Modelling - domain modelling with the 3rd dimension

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

Page 13: Colour Modelling - domain modelling with the 3rd dimension

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

Page 14: Colour Modelling - domain modelling with the 3rd dimension

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

Page 15: Colour Modelling - domain modelling with the 3rd dimension

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

Page 16: Colour Modelling - domain modelling with the 3rd dimension

<< description >>

Interested in playing with Colour Modelling in the real world?

!

Come and talk to us! [email protected]

Culture Amp is hiring!

Questions?