Wednesday, June 13, 2012

DFD's and ELH's ... Back to The Future?

I was recently asked by a client and also at a conference, "we need to be able to model flows of data - how do we do that"? How to model Data Flows.....hmmm that'll be Data Flow Diagrams then.

These were one of the great features in methods like LSDM and SSADM and was pretty well supported by early generation CASE tools. I still remember with some fondness how useful these were and we used them extensively in the 80's and 90's. With DFD's there was some problem with determining how to create diagrams of the appropriate level, but TBH this was really a question of practitioner experience. Simplified Level 1 DFD

As the fundamental problem that was addresed by DFD's still exists, I'm not really sure why modeling tools now don't support this any more.

I was also asked during a data modelling class, "we know we shouldnt create separate entities for each state that one could be in, but how do we model the change of entity state"?

Just in case youre not sure what this means, a simple example of state change would be how a Suspect becomes a Prospect, then a Customer, then a Gold Customer and maybe a lapsed Customer. All these are examples of when the entity has changed state over the history of its lifetime.
Here's a simple example for a Purchase Order: Purchase Order Simplified ELH

So for a bonus point, the approach to modelling the change of state of a Data Entity over time is Entity Life Histories and State Transition Diagrams.  Simple State Transition Diagram
These were also very popular in the 80's and 90's but again seemed to become unpopular for a while and not widely supported by modeling or CASE tools. Fortunately their importance is now being recognised again & I've increasingly seen these (or similar approaches) being picked up again recently.

The problems that DFD's, ELH's and State Transition Diagrams address haven't gone away, so let's use the approaches that actually work! Maybe it's a case of back to the future?