Ein Datenflussdiagramm oder Datenflussplan (engl. data flow diagram) stellt die Art der Verwendung, die Bereitstellung und Veränderung von Daten innerhalb eines Programms dar. Es kann auch dazu verwendet werden, den Datenfluss eines Prozesses oder einer Tätigkeit wiederzugeben (z. B. die Datenverwendung und Veränderung bei der Angebotserstellung in einem Handelsunternehmen). Ein Datenflussdiagramm hat keinen Kontrollfluss, es gibt keine Entscheidungsregeln und keine Schleifen. Die konkreten Operationen auf den Daten können durch einen Programmablaufplan dargestellt werden.
Beim Datenflussdiagramm werden vier Elementtypen mit folgender Semantik unterschieden:
Es gibt verschiedene Notationen zur Darstellung von Datenflussdiagrammen. Die oben vorgestellte Notation wurde 1979 von Tom DeMarco im Rahmen der Strukturierten Analyse beschrieben.
Bei jedem Datenfluss muss mindestens einer der Endpunkte (Quelle und/oder Ziel) ein Prozess sein. Die verfeinerte Darstellung eines Prozesses kann in einem weiteren Datenflussdiagramm erfolgen, das diesen Prozess in Subprozesse unterteilt.
Das Datenflussdiagramm gehört zu den Modellierungsinstrumenten der Strukturierten Analyse. Bei Verwendung der UML übernimmt gewöhnlich das Aktivitätsdiagramm die Rolle des Datenflussdiagramms. Eine Sonderform des Datenflussplans ist der stellenorientierte Datenflussplan, auch „wer/was-Diagramm“ genannt. Dabei werden die Tätigkeiten den einzelnen Teilnehmern in vertikalen Swimlanes pro Teilnehmer zugeordnet.
Weiterhin kann man Datenflussdiagramme als invertierte Petri-Netze auffassen, denn Plätze in solchen Netzen entsprechen der Semantik von Datenspeichern. Analog dazu ist die Semantik von Transitionen aus Petri-Netzen und Datenflüssen und Funktionen aus Datenflussdiagrammen als äquivalent anzusehen.