Data flow modelling is a common component of many
software engineering methodologies in. It is exceptionally useful
for analysing and describing systems where there is a large amount
of calculation involved. However within the object modelling community
it seems to be losing ground in favour of other techniques - object
interaction diagrams can cover most of the needs met by data flow
diagrams. They tend to be less effective and more arbitrary in
producing designs. They are included here for completeness.
Data flow models consist a of a number of processes
which exchange information. A process transforms information it
receives and passes the transformed information on to other processes
or to objects in the system. Data flow models can be used to uncover
new operations and new attributes for the object model. Sometimes
new objects can be discovered too.
Processes are drawn as bubbles, with the name of
the process written inside. Arrowhead lines are used to connect
processes to each other and to objects in the system. The lines
are labelled with the information that is being passed. Objects
are drawn as rectangular boxes, just as in the object model, but
usually with just the name of these objects and not the attributes
and operations.
Let us look at a simple example.
The next stage is to devise operations and attributes
to support the calculations. From the above we can probably deduce
the following attributes and operations for the Customer, Invoice,
Sales and Product objects - of course there will be more attributes
and operations derived from other techniques or other data flow
diagrams.
Each process needs to be implemented as an operation in one or more of the objects. Each data item arising from an object must have a corresponding attribute or set of attributes in the source object.
Data flow diagrams are useful if:
The approach to data flow diagramming should be as follows:
The difference between data flow use in object methods
and other methods (e.g. SASD) is that the data flow diagram is
not used as a basis for devising the structure of the system.