El diseño orientado al flujo de datos (DOFD) define representaciones que transforman el flujo de información en la estructura del programa. El DOFD tiene sus orígenes en conceptos de diseño anteriores como la modularidad y el diseño estructurado, y amplía estas técnicas integrando el flujo de información en el proceso de diseño. El DOFD permite una traducción sencilla de los diagramas de flujo de datos de la especificación a una descripción de la estructura del programa mediante cinco pasos.