Dear Friend,
Exciting times on the project here in Singapore! We're busy building
an object model and scenario views for consumer, commercial, and corporate
lending (a surprisingly interesting problem domain ;-)
In fact, we've made very significant progress over the past two
days. Strategy 97-1 was a major factor. Please read, consider, and apply.
I think you will appreciate its impact.
We've added special colors to our model here (Strategy 97-2). A real
improvement. I will use this new strategy again and again. I hope you will,
too.
We're working in a domain where timelines are quite helpful (Strategy
97-3).
Strategy 97-4 is something we've encountered in several scenario walkthroughs.
So I thought it might be a good one to pass along to you too.
Sincerely and with best wishes,
Peter Coad
PS. With special thanks to my friends and colleagues at United Overseas
Bank.
Strategy 97-1 "Model Beyond the Boundary"
When someone sets or implies a system boundary, be sure to extend your
model beyond the boundary. Here's why:
-
To understand context (must know a bit about what's outside, to effectively
model what is inside).
-
To discover abstractions that apply within your system and within related
systems. Wrap your model around those core abstractions.
-
To gain a different perspective, changing the way you view your own system
(very much needed, especially when working with team members who have limited
their thinking to fit within a defined system boundary for some time).
Here's what to look for:
-
Look for broader context. If it's a lending system, consider deposits and
investments.
-
Look for what happens before and what happens next. If it's a credit line
application system, consider prospecting for customers (before) and credit
line implementation (after).
Strategy 97-2"Show Your Colors."
Build your models with color Post-It notes:
| Color |
Meaning |
OM Book term |
| yellow |
party, role |
actor, participant |
| pink |
moment, interval |
transaction |
| green |
thing |
specific item, place |
| blue |
description |
item |
Use this pattern as a guide:
Post-It is a trademark of 3M.
[ Note: Later Party was changed to green and included in the Party,Place,Thing
archetype - Steve 2/2001]
Strategy 97-3 "Use A Time Line to Select and Organize Moments
and Intervals."
Develop a time line of significant things that happen in your domain. For
example, in an application for a credit line, it's: opened, submitted,
approved, selected, offered, accepted, implemented.
Which of these moments and intervals should you include in your model?
Follow these guidelines:
-
Group the ones that need just a date-time stamp; drop those date-time stamps
into one class. Example: submitted, offered, accepted --> Application class,
with attributes dateTimeSubmitted, dateTimeOffered, dateTimeAccepted.
-
Toss the ones your system has no responsibility for remembering. Example:
selected.
-
Sequence the moment/interval classes left-to-right (people are used to
seeing sequences that way). Then add object connections from one class
to the next, and to the next.
Strategy 97-4 "Use Status Collections to End Repetitive
Status Querying."
Rather than asking each member of a group what its status is, again
and again, hold members in some status collections.
Example. Rather than ask each and every dividend object whether it is
payable:
instead, a security object could simply hold collections of payable
dividends and paid dividends, like so: