Title: Advanced Domain Modeling
1Advanced Domain Modeling
- Architecting for Agility with Color Models
- David J. Anderson
- Program Manager, Microsoft
- dander_at_microsoft.com
Based on the work of Peter Coad, Stephen R.
Palmer and others
2Objectives
- Peter Coad and Patterns
- A brief history of how color modeling came about
- Archetypes and the Domain Neutral Components
- Modeling for Agility
- Loose coupling and Law of Demeter
- Advances in Color Modeling since 1999
- The role of ltltrolegtgts
- Getting the blues
- Whole-part relationships
- Patterns of color communicate architecture smells
- Enterprise components from color models
3History - 1992
4History - 1995
Object Models Strategies, Patterns
Applications, 1st ed., Coad, Mayfield North,
Yourdon Press, Prentice Hall, 1995
5History Spring 1997
- Moment or Interval a generalization of the idea
of a transaction e.g. - Warranty Period
- Period of Employment
- Loan Approval Request
- Funds Disbursement
still referred to as Transaction in, Object
Models Strategies, Patterns Applications, 2nd
ed., Coad, Mayfield North, Yourdon Press,
Prentice Hall, 1997
6History September 1997
Color instantly communicates the pattern of class
relationships to the viewer
If the colors are not configured in the correct
pattern then there are strong clues that the
model could be improved!
7Dec 1998 Archetypes
Philip Bradley argues for Archetypes not
stereotypes.
a model from which all things of the same kind
more or less follow
rather than
a conventional, formulaic, over-simplified
conception, opinion or image
And that, all business flows should or ought to
be basically the same.
Data Model Patterns - Conventions of
Thought, David Hay, Dorset House, 1996
The Universal Data Model
Phil Bradley was Development Manager Persistence
Layer, PowerLender Project, United Overseas Bank,
Singapore 1997 - 1999
8History January 1999
9Architecture Board
10Component Map
11Archived Iteration
12Definition of an Agile Model
- Elegant
- Enough to get the job done and no more
- Extensible
- Loosely coupled
- Robust and resilient to change
- Communicates clearly
In anything at all, perfection is finally
attained not when there is no longer anything to
add, but when there is no longer anything to take
away
Antoine de Saint Exupery
13Behavior of Colors
assessPerformance() salesMadeInPeriod()
averageSalesOverPeriod() assessAccuray() assessSpe
ed() isActive() isSuspended()
totalValue() isComplete() isUrgent()
_findByIdNumber() _findByName() isOfType() getVal
ue() assessAcrossRoles() listRolesPlayedBy()
totalUnitsAvailable() totalUnitsManufactured() ass
essRoleAllowed()
Courtesy Stephen R. Palmer
- Instances of Archetypes share similar attributes
- Instances of Archetypes share similar methods
14Where do ltltRolegtgts come from?
OK!
Better!
15Naming Conventions for Roles
- When no domain specific term for a ltltrolegtgt
exists use the template - PersonPlaceThing In Moment-Interval
- Or, GreenInPink e.g.
- ItemInSale
Note the actual aggregating ltltMoment-Intervalgtgt
is used for naming rather than the ltltMI-Detailgtgt
16Roles and Inheritance
Courtesy Stephen R. Palmer
17Inherit from a Role superclass
Courtesy Stephen R. Palmer
18Manage roles with a description
Courtesy Stephen R. Palmer
19Subsequent Roles
Courtesy Stephen R. Palmer
20Moment-Intervals get the Blues
- Missing from the original DNC in 1999
- Pink Classes can have Descriptions just like
Greens
21Whole-Part Relationships
22Color Differences Can Be OK
(A) This model has a whole-part color conflict
but it is not wrong. It is simply less flexible
and more coupled
(B) This model resolves the color conflict and is
more loosely coupled but requires 2 more classes
23Just Plain Wrong
- Some color combinations in Whole-Part
relationships should immediately raise the red
flag for the modeling team - As a general rule, question all aggregation and
composition where color changes across the
association
24Subsequent Blues
- Description classes can have object inheritance
relationships with subsequent descriptions - Generally, there will only be one green class in
the chain. Greens may aggregate or collect other
greens but object inheritance should be
yellow-green, green-blue or blue-blue
25Class or Object Inheritance
Courtesy Stephen R. Palmer
26Simple Corporate Structure Example
27Types of Blues
- Blue Catalog Descriptions, but also Enumerations
and encapsulated (plug-in) Business Rules - Each rule can have its own interface plug-in
point and implementors can be hooked in at runtime
28Putting It All Together
29Law of Demeter
A different view of the DNC showing the dynamic
dependencies between classes. Classes only hold
dependencies to their immediate neighbors The DNC
is very loosely coupled
30LoD Compliant Sequence Diagram
31Wrong not LoD Compliant
32Possible Component Boundaries
33DNC as Component Model
34Business Workflow Example
Component Boundary
A sequence of ltlt Moment-Intervals gtgt can be
packaged together as a component
35Re-usable Enterprise Components
Pinks and yellows are re-usable across multiple
greens the core Enterprise Components
Greens and blues are re-usable across discrete
Enterprise Applications modeled as sequences of
pinks
36Two more possible schemes
37One-way Dependency
38Resolving 2-way Dependencies
39More 2-way Dependencies
40Summary Color Modeling
- Easily learned - Easily taught
- But yet, a craft - perfected over time
- DNC is reliable and repeatable
- - a basic pattern even novice modelers can follow
- Archetypes easily identified from requirements
documents - Eliminates class discovery problems
- Leads to elegant, robust, extensible, agile
models - Take-away modeling rather than addition
- Typically an order-of-magnitude speed improvement
for class diagrams over traditional verb-noun
approach - Only one pattern to learn!
41Questions?
42Contact Details
David J. Anderson Program Manager,
Microsoft dander_at_microsoft.com http//www.agileman
agement.net/
43References
Object Models Strategies, Patterns
Applications, 2nd ed., Coad, Mayfield North,
Yourdon Press, Prentice Hall, 1997 Java Modeling
in Color with UML Enterprise Components and
Process, Coad, Lefebvre, De Luca, Prentice Hall,
1999 Data Model Patterns Conventions of
Thought, David Hay, Dorset House, 1996 The Coad
Letter 68 - The Domain Neutral Component,
Stephen R. Palmer, 2002 http//www.thecoadletter.c
om/article/0,1410,29697,00.html The Coad Letter
71 From Association to DNC, Stephen R. Palmer,
2002 http//www.thecoadletter.com/article/0,1410,2
9683,00.html The Coad Letter 74 Historic
Values, Stephen R. Palmer, 2002 http//www.thecoad
letter.com/article/0,1410,29680,00.html The Coad
Letter 76 Modeling User Roles, Stephen R.
Palmer, 2002 http//www.thecoadletter.com/article/
0,1410,29678,00.html The Coad Letter 77 Object
Models to DNC, Stephen R. Palmer,
2002 http//www.thecoadletter.com/article/0,1410,2
9677,00.html The Coad Letter 79 The Example
Teaches, Stephen R. Palmer, 2002 http//www.thecoa
dletter.com/article/0,1410,29675,00.html The Coad
Letter 82 Description Class Archetype, Stephen
R. Palmer, 2002 http//www.thecoadletter.com/artic
le/0,1410,29672,00.html The Coad Letter 87
Good Ideas Behind Color Modeling, Stephen R.
Palmer, 2002 http//www.thecoadletter.com/article/
0,1410,29667,00.html The Coad Letter 103 Party
Time, Stephen R. Palmer, 2002 http//www.thecoadle
tter.com/article/0,1410,29661,00.html The Coad
Letter 107 Party Time Modeling Legal IDs,
Stephen R. Palmer, 2003 http//www.thecoadletter.c
om/article/0,1410,29605,00.html