Diagram tokov údajov

Diagram tokov údajov, prípadne DFD (angl. Data Flow Diagram), je modelovací nástroj používaný v softvérovom inžinierstve, umožňujúci graficky znázorniť „toky“ údajov prúdiace cez informačný systém. Diagram tokov údajov sa tiež používa na vizualizáciu procesu spracovávania údajov. Je bežnou praxou že návrhár najskôr nakreslí kontextovú úroveň DFD, ktorá znázorňuje interakciu medzi systémom a okolitými elementami. Táto úroveň DFD sa neskôr „rozbije“ na ďalšie úrovne, ktoré modelujú jednotlivé časti systému detailnejšie.

Komponenty 

Diagram tokov údajov ilustruje procesy, pamäti, externé entity v informačných systémoch a toky údajov medzi nimi. Na tvorbu DFD sa používajú štyri komponenty:

 Proces (kružnica, prípadne zaoblený obdĺžnik)
 Tok (šípka)
 Pamäť (štvorec, prípadne ovál)
 Terminátor (dve horizontálne čiary)

Proces 

Proces reprezentuje časť systému, ktorá transformuje vstupy na výstupy. Údaje ktoré vstupujú do procesu by mali byť odlišné od tých ktoré z procesu vychádzajú. Procesy bývajú zvyčajne pomenované jediným slovom, prípadne jednoduchou vetou, ktorá popisuje čo proces robí.

Tok 

Tok reprezentuje cestu, po ktorej sa pohybujú informácie z jednej časti systému do druhej. V niektorých prípadoch vyjadrujú toky pohyb fyzických materiálov. V reálnych systémoch sa často vyskytujú súčasne toky vyjadrujúce pohyb materiálov a údajov. Všetky toky by mali byť unikátne pomenované, pričom meno by malo vyjadrovať význam prenašaných informácií.

Pamäť 

Pamäť reprezentuje súbor informácií v pokoji. Pamäť obyčajne uchováva údaje jednej kategórie (napr. študenti, objednávky). Tok smerujúci von z pamäťi je chápaný ako čítanie, zatiaľ čo tok smerujúci do pamäti je chápaný ako zápis, rušenie, prípadne úprava existujúcich údajov.

Pamäť je pasívna časť systému – žiadne údaje nie sú prenášané z/do pamäti, pokiaľ o to proces nepožiada.

Terminátor 

Terminátor reprezentuje externé entity, s ktorými systém komunikuje. Keďže návrhár nemôže ovplyvniť spôsob chovania sa externých entít, v DFD sa nesmú vyskytovať žiadne priame toky medzi terminátormi.

Softvérové inžinierstvo
Diagramy