DATA FLOW DIAGRAMS
- At the core of most structured methods
- Proposed originally by Yourdon, improved by DeMarco, and popularised in Europe by Gane and Sarson.
- Simple notion contains only 4 symbols.
- Graphic multidimensional approach avoiding the ambiguity and linear nature of text.
Four Elements
Process:
- An activity that receives data and transforms it in some way.
- 3 parts: Reference number; Location of processing or role (name of business area); and Description, a meaningful name describing the process.
Data store:
- Reference and Name.
- Anywhere data is stored and retrieved, not necessarily computer based.
External entity:
- Reference and name.
- An ellipse represents something that provides or uses data of the system but is external to it. It is outside the scope of the system.
Data Flow:
- Name and direction.
- Represents data moving in and out of the system and between elements of the system.
Diagrams Involved are layered.(levelled)
- First the context of the system is established with a context diagram.(also known as a level 0 (zero) DFD)
- Then a document-flow diagram is produced from the context diagram.
- Then the first level DFD is produced.
These initial diagrams are all based on the current system and hence are called Current Physical Diagrams.
Drawing the Context Diagram
Step 1. List the documents used in the system
Step 2. List all the sources and recipients of the documents.
Step 3: Draw a box representing the system. Decide which of the areas in step 2 are within the system and which outside. Those areas inside the system will be hidden within the box. Show the flow of documents to and from the list of sources and recipients.
Types of Data in DFD.
- Standing: day to day, up to date.
- Historical: reference and archive.
- Temporary: data required for a process but not retained.
- Extracted: retrieved from various places to produce reports etc.
Steps for decomposing top level DFD
- Make each process box the system boundary, data flows in and out of this process are now flows across the new low level boundary.
- Draw the sources and recipients of these flows outside the new low level boundary ( external entities, other processes, data stores)
- Identify the sub-processes that act on and produce these data flows.
- Label them n.1, n.2 etc. where n is the number of the process being decomposed.
- Check for consistency as before.
- Check data flows against higher level DFDs that they are balanced (add up correctly)
- Review with the user.
Validating DFDs
Has each process a strong imperative verb and object?
Are the input data flows related to the output data flows?
Can the flows be reduced?
Have all data stores flows in and out?
Are symbols correctly labelled and uniquely referenced?
Do external entities communicate with at least one process?
Does the user think that it is an accurate portrayal of the business area?