DATA FLOW DIAGRAMS
Summary of technique from Page-Jones
Diagram symbols
Circles are processes.
Directional lines are data flows.
Boxes are data sources or sinks.
Parallel lines are data stores.
Conventions
Each process must have at least one data flow going in.
Each process must produce at least one outgoing data flow.
Use a data store whenever data is created but not immediately used.
Data flow going into a store means update.
Data flow going out of a store means read only.
Drawing the CONTEXT DIAGRAM
Create an EVENT LIST of users, events, and inputs and outputs for each event.
Draw the system as one process. Draw each user as a source/sink box.
Draw each input or output as a data flow linking a user to the system. (If an event does not have an input or output, eliminate it. If you think of a data flow not covered in the EVENT LIST, add an event.) Label each data flow. (No data stores are shown on the context diagram).
Enter each data flow in the DATA DICTIONARY.
Cross check. Make sure each event in EVENT LIST has an associated data flow. Make sure each data flow on the CONTEXT DIAGRAM has an associated event. (You could write the event number next to each data flow.)
Draw a Preliminary DFD
Use a large sheet of paper or a chalkboard.
Draw a process circle for each event in the EVENT LIST.
Add input and output data flows. (Refer to EVENT LIST.)
Name each process. Use a verb followed by a direct object.
Add data stores for each process which receives data but does notsend any out of the system. Also, DO NOT connect one process to another in this preliminary DFD. Show all data as being stored after generation.
Optinal: Control flows may be represented as dotted lines.
Draw a Levelled DFD
Identify subsystems. Group together processes that use the same data. If you can't describe a process briefly, subdivide it on a lower level diagram.
Verify data flows. Check that all inputs/outputs for a diagram are shown in the lower level diagrams. Check that data stores are not shown if they are accessed by only one process.
Perform "balance analysis" to ensure that data flows have been "conserved" across levels.
Complete the data definitions in the DATA DICTIONARY. Check that every data flow in the DFD appears in the DD.
Writing mini-specs
Write a functional mini-spec (sometimes called process specification) for each process on the lower-level DFD's.
The mini-spec must describe some transformation of the input data into the output data. If data is not transformed in some way, you don't have a process.
The mini-spec states WHAT the transformation is, not HOW it is to be carried out.
Use only nouns that are in the DATA DICTIONARY.
The mini-spec is written using structured English or decision trees.