Sequence
The one vital thing that is missing so far is what happens to data over
time? What must happen before something else can happen? In what order do
things have to happen? What are the common and not-so-common exceptions? Again,
you'll likely want some examples.
Back to my small business, PhotoReady, selling stock photos over the
web. I keep a record of my customers, what they've bought, when they bought it,
the accompanying emails I get that tell me what has been sold and any VAT
receipts issued on request.
Ok, so what about the time / sequence view?
How is a Customer entity created? (i.e. how do I first get to know about
this customer?) Simple, I get an order from someone who isn't already a
customer. Or perhaps I get an initial email enquiry from someone before they
become a customer proper. (NB I'd still record them as a "customer" but, having
no orders recorded from them would tell me they are not yet a customer
proper.)
What causes me to change the details I hold about a customer? Well, in a
subsequent order they might include a note to the effect that that they want me
to use a different email address for them in any email correspondence. They
might send me an email directly asking me to change, say, a misspelling in
their name.
What causes me to remove a customer from my system? Well, they might ask
me to (but I won't if I'm in the middle of processing an order from them,
obviously I'd wait 'til after, unless I was planning an emailshot, in which
case I wouldn't want them to be included). Even after I remove them, I still
keep a record of their orders.
Every year or two - or at a whim - I archive off the info I hold on
inactive customers. I also go through my mailing list from time to time, taking
off customers whose email address no longer works or where they never read
their mail (if the mailbox is always full, I'll keep getting bouncebacks).
If I receive an "unofficial" email order, and not one where they've gone
through my shopping basket system, I won't email out the ordered items until I
get confirmation from PayPal (my order processor) of payment receipt, unless
they're a well-established and trusted customer.
Apart from where I decide it is time to archive off inactive customers
or to deal with bouncebacks, in each case it is the receipt of something that
triggers me to do something that causes a change to the data I hold in my
business system.
And there are some business rules in the above, as well. Did you spot
them? Hints: removing a customer; trusted and well-established; bouncebacks.
You should see a lot of overlap here with both structure and function.
The time / sequence view shows the sequence of processing, and the business
rules that guide the processing, that happens to entities, from triggering
event through to completion, for all types of events over the whole life of the
data entities.
|