Home > Embedded Software Design > Data Flow Diagram

Data Flow Diagram (DFD)

There are some great tools for data modeling and analysis but when it comes to keeping things simple it is hard to beat the basic data flow diagram.

This is not a data flow diagram tutorial but we can say how the diagrams improve your designs. First of all remember a program consists of two things, data and algorithms. So to understand a program we have to understand the origin of our data and what we are doing with it.

A complete example of a data flow diagram helps our embedded software design work several ways:

1. Maps out the flow of data from process beginning to end
2. Segments data flow into logical processes
3. Helps to define data structures
4. Helps to efficiently define program functions
5. Avoids redundancy of program functions
6. Highlights missing data
7. Tests against the original requirements
8. Helps to keep your flow charts on the same abstraction levels

Control extensions can be used with real time systems or in certain situations where we need to demonstrate how the data is controlled.

Data flow diagrams can be modeled at different levels of abstraction, where the lowest level is at program function level and the highest level is at library component level. With new development work, lower level functionality is sometimes unknown, and needs to be determined! So we start with a top down approach and figure out the lower levels as we go.

Not every single project is modeled but it does help to define customer requirements, scope of project, and the executive view of the embedded software system, architectural design.