Diagramas de Fluxo de Dados (DFD): Níveis, Símbolos e Exemplos Práticos
Aprenda a criar diagramas de fluxo de dados com a notação correta. Abrange níveis DFD 0-2, símbolos Yourdon-DeMarco vs Gane-Sarson e exemplos reais.
Quando um sistema falha ou um processo produz resultados incorretos, a primeira pergunta geralmente é "onde os dados deram errado?" Os diagramas de fluxo de dados (DFDs) respondem a essa pergunta tornando o movimento de dados explícito — mostrando exatamente de onde os dados vêm, para onde vão, como são transformados e onde são armazenados.
Ao contrário dos fluxogramas que modelam o fluxo de controle (o que acontece a seguir), os DFDs modelam o fluxo de dados (quais dados se movem para onde). Essa distinção os torna a ferramenta certa para análise de sistemas, design de software e documentação de integrações de dados complexas.
O que é um diagrama de fluxo de dados?
Um diagrama de fluxo de dados é uma representação visual de como os dados se movem através de um sistema. Ele mostra:
- Entidades externas — fontes e destinos de dados fora do sistema
- Processos — transformações que convertem dados de entrada em dados de saída
- Armazenamentos de dados — lugares onde os dados ficam em repouso
- Fluxos de dados — o movimento de dados entre os elementos acima
Os DFDs não mostram tempo, lógica de decisão ou quem realiza as tarefas. Eles mostram exclusivamente o movimento de dados. Esse escopo focado os torna úteis para entender e projetar sistemas sem se perder em detalhes de implementação.
Símbolos de DFD
Duas notações dominam: Yourdon-DeMarco e Gane-Sarson. Elas representam os mesmos conceitos com formas diferentes.
Notação Yourdon-DeMarco
A notação original de análise estruturada, amplamente usada em engenharia de software:
| Elemento | Símbolo | Descrição |
|---|---|---|
| Processo | Círculo (bolha) | Transforma dados; rotulado com frase verbal |
| Armazenamento de dados | Retângulo aberto | Armazena dados; rotulado com substantivo |
| Entidade externa | Retângulo | Fonte ou destino fora do sistema |
| Fluxo de dados | Seta com rótulo | Dados nomeados movendo-se entre elementos |
┌──────────┐ ╭──────────╮ ┌═══════════════╗
│ Cliente │───────→ │ Validar │───────→ ║ D1: Pedidos ║
└──────────┘ Pedido │ Pedido │ Válido ╠═══════════════╣
╰──────────╯ Pedido ║ ║
Notação Gane-Sarson
Comum em sistemas de informação e análise de negócios:
| Elemento | Símbolo | Descrição |
|---|---|---|
| Processo | Retângulo com cantos arredondados (cabeçalho dividido) | Rotulado com ID e nome do processo |
| Armazenamento de dados | Retângulo aberto à esquerda | Rotulado com número D e nome |
| Entidade externa | Retângulo | Fonte ou destino fora do sistema |
| Fluxo de dados | Seta com rótulo | Dados nomeados movendo-se entre elementos |
┌──────────┐ ┌────────────────┐ ┌═══╦════════════╗
│ Cliente │───────→ │ 1.0 │───────→ ║D1 ║ Pedidos ║
└──────────┘ Pedido │ Validar Pedido │ Válido ╚═══╩════════════╝
└────────────────┘ Pedido
Qual notação usar?
Ambas transmitem as mesmas informações. Escolha com base no seu contexto:
- Yourdon-DeMarco: preferida em engenharia de software, academia e quando se usam métodos de análise estruturada
- Gane-Sarson: comum em sistemas de informação de negócios e contextos empresariais
Escolha uma e mantenha consistência em todos os diagramas de um projeto.
Níveis de DFD
Os DFDs são organizados hierarquicamente. Diagramas de nível mais alto fornecem visão geral; diagramas de nível mais baixo fornecem detalhes. Cada nível decompõe um único processo do nível acima em seus subprocessos internos.
Nível 0: Diagrama de contexto
O diagrama de contexto mostra o sistema inteiro como um único processo, circundado por entidades externas. Ele define o limite do sistema e mostra quais dados cruzam esse limite.
Pedido do Cliente
┌──────────┐ ─────────────────→ ╭──────────────────────╮
│ Cliente │ │ │
└──────────┘ ←───────────────── │ Sistema de Gestão │
Confirmação do Pedido│ de Pedidos │
│ │
┌──────────┐ ─────────────────→ ╰──────────────────────╯
│Fornecedor│ Atualização de Estoque │
└──────────┘ ↓
┌──────────────┐
│ Proc. Pagam. │
└──────────────┘
Um diagrama de contexto deve caber em uma página e mostrar apenas fluxos de dados que cruzam o limite — sem detalhes internos. Se você estiver adicionando processos internos, está no nível errado.
Nível 1: Diagrama de visão geral
O diagrama de nível 1 decompõe o único processo de contexto em seus principais subprocessos. Essas são as áreas funcionais primárias do sistema.
┌──────────┐ ╭──────────╮ ╭──────────╮
│ Cliente │───────→ │ 1.0 │───────→ │ 2.0 │───┐
└──────────┘ Pedido │ Receber │Validado │ Processar│ │
│ Pedido │ Pedido │ Pagamento│ │
╰──────────╯ ╰──────────╯ │
│ ↓
↓ ╭──────────╮
┌════════════════╗ │ 3.0 │
║ D1: Pedidos ║────────────→ │ Cumprir │
╚════════════════╝ Dados Pedido │ Pedido │
╰──────────╯
│
↓
┌──────────┐
│Parceiro │
│ de Env. │
└──────────┘
Diagramas de nível 1 tipicamente têm 3-7 processos. Se você tiver mais, considere agrupar em menos processos de nível mais alto.
Nível 2: Diagrama detalhado
O nível 2 decompõe cada processo de nível 1 em seus subpassos. Cada bolha do nível 1 ganha seu próprio diagrama de nível 2.
Por exemplo, expandindo o processo 1.0 "Receber Pedido" acima:
┌──────────┐ ╭──────────╮ ╭──────────╮
│ Cliente │──────────→ │ 1.1 │──────────→ │ 1.2 │
└──────────┘ Ped. Bruto │ Validar │ Dados Vál. │ Verificar│
│ Formato │ │ Estoque │
╰──────────╯ ╰──────────╯
│ │ │
Inválido │ Em estoque
Pedido Sem │
↓ estoque↓
┌──────────┐ ╭──────────╮
│ Cliente │ │ 1.3 │
└──────────┘ │ Reservar │
│ Itens │
╰──────────╯
│
↓
┌════════════╗
║ D1: Pedidos║
╚════════════╝
Quão fundo ir?
Pare de decompor quando um processo for:
- Simples o suficiente para descrever em algumas frases
- Implementado por uma única pessoa ou função atômica do sistema
- Já no nível de detalhe necessário para implementação
A maioria dos sistemas não precisa de mais que o nível 2. O nível 3 é raro e geralmente indica que o sistema é muito complexo ou que a decomposição não está bem estruturada.
DFD vs fluxograma
Esses são frequentemente confundidos porque ambos usam caixas e setas. Eles respondem a perguntas diferentes.
| Aspecto | Diagrama de Fluxo de Dados | Fluxograma |
|---|---|---|
| Mostra | Como os dados se movem pelo sistema | Como o controle flui pelo processo |
| Pergunta principal | Para onde vão os dados? | O que acontece a seguir? |
| Tempo/sequência | Não modelado (apenas transformações) | Central — sequência é a estrutura principal |
| Lógica de decisão | Não representada | Explícita (nós de decisão em losango) |
| Quem realiza | Não mostrado | Pode mostrar com formato de raia |
| Armazenamento de dados | Símbolo explícito de armazenamento | Não representado |
| Ideal para | Análise de sistemas, arquitetura de dados | Documentação de processo, guias de procedimento |
Um fluxograma mostra os passos de um processo de aprovação de empréstimo. Um DFD mostra quais dados o sistema de candidatura de empréstimo recebe, onde são armazenados e quais saídas produz.
Use um DFD quando estiver analisando ou projetando um sistema. Use um fluxograma quando estiver documentando um procedimento.
Passo a passo: criando um DFD
Passo 1: Definir o limite do sistema
Identifique o que está dentro e fora do seu sistema:
- Dentro: processos, armazenamentos de dados e fluxos de dados que você controla
- Fora: entidades externas — clientes, parceiros, sistemas externos
Tudo fora do limite é uma entidade externa. Dados cruzando o limite aparecem como fluxos no diagrama de contexto.
Passo 2: Desenhar o diagrama de contexto (Nível 0)
- Coloque o sistema inteiro como um único círculo rotulado no centro
- Identifique todas as entidades externas e posicione-as ao redor
- Desenhe fluxos de dados cruzando o limite com rótulos descritivos
- Verifique a completude: algum dado entrando ou saindo do sistema está sem rótulo?
Passo 3: Identificar processos principais (Nível 1)
Decomponha o sistema em 3-7 processos principais:
- Nomeie cada processo com uma frase verbal ("Validar Pedido", "Processar Pagamento")
- Numere-os (1.0, 2.0, 3.0)
- Identifique quais fluxos de dados os conectam
Passo 4: Adicionar armazenamentos de dados
Identifique onde os dados ficam entre os processos:
- Bancos de dados: registros de clientes, histórico de pedidos, estoque
- Arquivos: arquivos de log, configuração
- Dados externos: dados passados para/de sistemas externos (frequentemente representados como fluxos de limite, não armazenamentos internos)
Nomeie cada armazenamento de dados com um substantivo e atribua um número D (D1, D2).
Passo 5: Conectar com fluxos de dados
Desenhe setas rotuladas entre elementos:
- Fluxos devem ter nomes descritivos ("pedido do cliente", "registro validado", "fatura")
- Fluxos conectam processos a processos, processos a armazenamentos de dados e entidades externas a processos
- Armazenamentos de dados não se conectam diretamente a entidades externas (os dados devem passar por um processo)
Passo 6: Decompor para o Nível 2
Para cada processo principal no Nível 1, desenhe um diagrama de Nível 2 separado mostrando seus subprocessos internos. Os fluxos de dados que entram e saem do processo de Nível 1 tornam-se os fluxos de limite do diagrama de Nível 2.
Passo 7: Verificar consistência
Verifique se:
- Todo fluxo de dados que entra em um processo é usado por esse processo
- Todo fluxo de dados saindo de um processo se origina desse processo
- Armazenamentos de dados são acessados apenas por processos (não diretamente por entidades externas)
- Os fluxos de limite do Nível 1 correspondem aos fluxos do diagrama de contexto
Exemplo real: sistema de pedidos de e-commerce
Nível 0: Diagrama de contexto
┌──────────┐ Solicitação de Pedido ╭──────────────────────╮
│ Cliente │ ────────────────────────→ │ │
└──────────┘ │ Sistema de │
↑ Status do Pedido │ Pedidos E-Commerce │
└───────────────────────────── ─ │ │
╰──────────────────────╯
┌──────────┐ Resultado do Pagam. │ ↑
│ Gateway │ ────────────────────→ │ │
│ Pgto. │ ←──────────────────── │ Dados de
└──────────┘ Solicitação de Cobrança ↓ Envio
┌──────────────┐
│ Parceiro de │
│ Envio │
└──────────────┘
Nível 1: Processos principais
Cliente ─── Solicitação ──→ ╭──────────╮
│ 1.0 │ ──→ D1: Pedidos
│ Validar │
│ Pedido │
╰──────────╯
│
Pedido Validado
↓
Gateway ←── Cobrança ── ╭──────────╮ ── Registro ──→ D2: Pagamentos
Pgto. Solicitação │ 2.0 │ de Pgto.
Gateway ── Resultado ──→│ Processar│
│ Pagamento│
╰──────────╯
│
Pedido Confirmado
↓
╭──────────╮
D1: Pedidos ── Dados ──────→│ 3.0 │ ── Solicitação ──→ Parceiro
D3: Produtos ─ Estoque ───→ │ Cumprir │ de Envio de Envio
│ Pedido │
╰──────────╯
│
Dados de Envio
↓
╭──────────╮
│ 4.0 │ ── Atualização ──→ Cliente
│ Rastrear │ de Status
│ e Notif. │
╰──────────╯
Nível 2: Decompondo o processo 1.0 (Validar Pedido)
Cliente ─── Ped. Bruto ──→ ╭──────────╮
│ 1.1 │ ── Inválido ──→ Cliente (Erro)
│ Verificar│
│ Formato │
╰──────────╯
│
Pedido Formatado
↓
╭──────────╮
D3: Produtos ─ Info Estoque→│ 1.2 │ ── Indisponível ──→ Cliente
│ Verificar│
│ Estoque │
╰──────────╯
│
Pedido Disponível
↓
╭──────────╮
D4: Clientes ─ Dados Auth ─→│ 1.3 │ ── Não verificado ──→ Cliente
│ Verificar│
│ Cliente │
╰──────────╯
│
Pedido Validado
↓
D1: Pedidos (armazenado)
Erros comuns em DFDs
Conectar entidades externas diretamente a armazenamentos de dados. Armazenamentos de dados são internos; entidades externas não podem acessá-los diretamente. Todos os dados que cruzam o limite do sistema devem passar por um processo.
Fluxos de dados sem rótulo. Cada seta deve ter um nome descritivo. "Dados" ou "Info" não são descritivos. Um fluxo deve ser nomeado pelo que os dados representam: "pedido do cliente", "confirmação de pagamento", "nível de estoque".
Processos sem entradas ou saídas. Um processo deve ter pelo menos um fluxo de entrada e um fluxo de saída. Um círculo sem dados de entrada "cria" dados do nada — isso não é um processo, é uma entidade externa. Um círculo sem dados de saída descarta tudo — modele isso como uma escrita em armazenamento de dados ou remova o processo.
Misturar fluxo de controle com fluxo de dados. Decisões, sequência e lógica de controle não pertencem aos DFDs. Se você estiver desenhando losangos de decisão, está criando um fluxograma, não um DFD. Os DFDs mostram apenas o movimento de dados.
Muitos detalhes no nível 1. O nível 1 deve ter 3-7 processos principais. Se você está mostrando 15 processos no nível 1, pulou a decomposição hierárquica. Agrupe processos relacionados em bolhas de nível mais alto e use o nível 2 para mostrar detalhes.
Níveis inconsistentes. Os fluxos de dados que entram no processo 2.0 no diagrama de nível 1 devem corresponder aos fluxos de limite no diagrama de nível 2 para o processo 2.0. Inconsistência significa que os diagramas não representam o mesmo sistema.
Armazenamentos de dados compartilhados entre subsistemas sem explicação. Se múltiplos processos acessam o mesmo armazenamento de dados, certifique-se de que é intencional e que o acesso faz sentido. Usar excessivamente um único armazenamento de dados "banco de dados principal" oculta decisões importantes de arquitetura de dados.
Criando diagramas de fluxo de dados com Flowova
Mapear fluxos de dados manualmente é tedioso — identificar todos os fluxos de limite, numerar processos consistentemente e manter níveis sincronizados exige esforço significativo.
O criador de diagramas de fluxo de dados da Flowova gera estruturas DFD a partir de descrições de sistemas em linguagem simples. Descreva as entradas, saídas e processos principais do seu sistema e obtenha um diagrama rascunho que você pode refinar. Isso é especialmente útil para criar diagramas de contexto e visões gerais de nível 1 rapidamente, depois detalhar no nível 2 para os processos que precisam.
Conclusão
Os DFDs são a ferramenta certa quando você precisa entender ou comunicar como os dados se movem por um sistema — não o que acontece passo a passo, mas de onde os dados se originam, o que os transforma, onde são armazenados e onde finalmente vão.
Comece com um diagrama de contexto para estabelecer o limite do sistema. Decomponha para o nível 1 para identificar processos principais. Vá para o nível 2 apenas para processos que precisam de maior esclarecimento. Mantenha os fluxos de dados nomeados especificamente, evite misturar lógica de controle no diagrama e verifique consistência entre níveis.
Recursos relacionados
- Símbolos de Fluxograma e Significados — Referência de notação padrão
- Guia de Diagrama BPMN — Padrão de modelagem de processos de negócio
- Criador de Diagrama de Fluxo de Dados — Crie DFDs com IA
- Templates de Arquitetura de Sistemas — Templates de diagrama de arquitetura prontos para uso
