Diagrama de fluxo de dados
# Diagrama de fluxo de dados

Um diagrama de fluxo de dados é uma maneira de representar um fluxo de dados através de um processo ou sistema (geralmente um sistema de informação). O DFD também fornece informações sobre as saídas e entradas de cada entidade e do próprio processo. Um diagrama de fluxo de dados não tem fluxo de controle  — não  há regras de decisão nem loops. Operações específicas baseadas nos dados podem ser representadas por um fluxograma.
Existem várias notações para exibir diagramas de fluxo de dados. A notação apresentada acima foi descrita em 1979 por Tom DeMarco como parte da análise estruturada.
Para cada fluxo de dados, pelo menos um dos endpoints (origem e/ou destino) deve existir em um processo. A representação refinada de um processo pode ser feita em outro diagrama de fluxo de dados, que subdivide esse processo em subprocessos.
O diagrama de fluxo de dados é uma ferramenta que faz parte da análise estruturada e da modelagem de dados. Ao usar UML, o diagrama de atividades geralmente assume a função do diagrama de fluxo de dados. Uma forma especial de plano de fluxo de dados é um plano de fluxo de dados orientado ao sítio eletrônico.
Os diagramas de fluxo de dados podem ser considerados como redes de Petri invertidas, porque os lugares em tais redes correspondem à semântica das memórias de dados. Analogamente, a semântica de transições de redes de Petri e fluxos de dados e funções de diagramas de fluxo de dados devem ser consideradas equivalentes.

## História

A notação DFD baseia-se na teoria dos grafos, originalmente usada na pesquisa operacional para modelar o fluxo de trabalho nas organizações. O DFD originou-se do diagrama de atividades usado na análise estruturada e metodologia técnica de projeto no final da década de 1970. Os divulgadores do DFD incluem Edward Yourdon, Larry Constantine, Tom DeMarco, Chris Gane e Trish Sarson.
Os diagramas de fluxo de dados (DFD) rapidamente se tornaram uma forma popular de visualizar as principais etapas e dados envolvidos nos processos do sistema de software. Os DFDs geralmente eram usados ​​para mostrar o fluxo de dados em um sistema de computador, embora pudessem, em teoria, ser aplicados à modelagem de processos de negócios. Os DFDs foram úteis para documentar os principais fluxos de dados ou para explorar um novo design de alto nível em termos de fluxo de dados.