In: Computer Science
DFR diagrams could become highly complex. In your own words, where does the complexity of DFD stem from? Also, provide strategies to minimise the complexity of DFD diagrams?
DFD (Data Flow Diagram) is a graphical representation of flow of data in an information system.
Complexities in DFD:
1. DFD is refined in to greater level of details, the analyst performs an implicit function decomposition of the system, there by accomplishing the fourth operational analysis principle for function.
2. There are many levels of DFD like level 0, level1 DFD, level 2 DFD and beyond. These are partitioned in to levels, for representing increasing information flow and functional details.
3. Many guidelines are to be followed while deriving DFD- Some of them are
a. The level 0 data flow diagram should depict software or system as a single bubble.
b. Primary input and output should be noted carefully.
c. Refinement should begin by isolating candidate process, data objects and stores to be represented at the next level.
d. All arrows and bubbles should be labeled with meaningful names.
e. One bubble at a time should be refined.
f. Information flow continuity must be maintained from level to level.
4. If the DFD is not managed and processed correctly, it is fairly redundant..
5. There is a natural tendency to over complicate the data flow diagram. This occurs when the analyst attempts to show too much detail too early or represents procedural aspects of the software in lieu of information flow.
6. Logical and physical DFD’s are there. Logical DFD focuses on what happens in a particular information flow. While physical DFD focuses on how things happen in an information flow.
7. The DFD also provides additional information that is used during the analysis of the information domain and server as a basis for the modeling of function. A description of each function presented in the DFD is contained in a process specification.
Strategies to minimize the complexity of DFD:
1. Whenever you are improving an existing process or implementing a new process, a DFD will make the task easier.
2. All names should be unique, so that it will be easier to refer to elements in the DFD.
3. Try to layout your diagrams, so as to minimize the number of data flows which cross over each other. Sometimes it will be inevitable that in a DFD it needs to cross each other. In that case you need a think before and you should be able to place external entities, process and thus you can minimize it..
4. As far as possible redundancy should be reduced.
5. There is no rules in DFD regarding what to include and what not to. But a process must have at least one input and one output. First identify major inputs and outputs in your system. Then build a context diagram by drawing a single process node and connect it to the related external entities. Then expand the context diagrams in to levels. Last confirm the accuracy of your DFD.