1. Introdução aos Diagramas de Fluxo de Dados
Um Diagrama de Fluxo de Dados (DFD) é uma representação gráfica de como os dados se movem através de um sistema de informação. Ele mostra:
- De onde os dados vêm e para onde vão
- Como os dados são processados
- Onde os dados são armazenados
- Quem ou o que interage com o sistema

2. Conceitos Principais
Elementos Principais
| Elemento | Símbolo | Propósito |
|---|---|---|
| Entidade Externa | Retângulo | Pessoa, organização ou sistema que envia/recebe dados |
| Processo | Círculo/Ellipse | Transforma dados de entrada em dados de saída |
| Armazenamento de Dados | Retângulo Aberto | Repositório para armazenamento persistente de dados |
| Fluxo de Dados | Seta | Mostra a direção do movimento dos dados |
Níveis de DFD
- Diagrama de Contexto (Nível 0): Nível mais alto, mostra os limites do sistema e entidades externas principais
- Nível 1: Decompõe o processo principal em sub-processos principais
- Nível 2+: Decomposição adicional mostrando processos detalhados
3. DFD Lógico vs DFD Físico
DFD Lógico

Um DFD lógico (também chamado de “modelo essencial”) foca em:
- O QUE o que o sistema faz
- Atividades de negócios e requisitos de informação
- Independente da tecnologia de implementação
Características:
- Mostra operações e processos de negócios
- Sem detalhes específicos de tecnologia
- Mais abstrato e voltado para o usuário
- Ajuda a entender os requisitos de negócios
DFD Físico

Um DFD físico (também chamado de “modelo de implementação”) foca em:
- COMO o sistema será implementado
- Detalhes técnicos e restrições
- Tecnologias e sistemas específicos
Características:
- Mostra hardware, software e pessoas reais
- Inclui detalhes de implementação
- Mais concreto e voltado para o desenvolvedor
- Ajuda no design e na implantação do sistema
Tabela de Comparação
| Aspecto | DFD Lógico | DFD Físico |
|---|---|---|
| Foco | Necessidades de negócios | Implementação |
| Quem | Analistas de negócios, usuários | Designers de sistemas, desenvolvedores |
| Nível | De alto nível, abstrato | Detalhado, concreto |
| Componentes | Processos de negócios | Processos técnicos |
| Armazenamentos de dados | Entidades conceituais | Arquivos/ficheiros físicos/bases de dados |
| Entidades | Papéis de negócios | Sistemas/dispositivos reais |
4. Componentes do DFD

Entidades Externas
- Fontes e destinos de dados
- Fora da fronteira do sistema
- Nomeados com substantivos
Processos
- Transformar dados de entrada em saída
- Nomeados com verbo + substantivo
- Numerados para identificação
Armazenamentos de Dados
- Repositórios de dados persistentes
- Nomeados com substantivos
- Numeração D1, D2, D3…
Fluxos de Dados
- Mostram o movimento de dados
- Nomeados com rótulos descritivos
- A direção indica o fluxo
5. Exemplos Práticos com Graphviz
Exemplo 1: Sistema de Gestão de Hotéis (DFD Lógico)

digraph HotelMIS_DFD_Logical {
// --- ESTILO DO GRÁFICO ---
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.6
ranksep = 1.0
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- ESTILOS DE NÓS ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Entidades Externas
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Convidado;
Funcionário;
// --- LIMITE DO SISTEMA ---
subgraph cluster_SystemBoundary {
label = "Limite do Sistema Hotel MIS";
fontname = "Helvetica,Arial,sans-serif";
fontcolor = "#757575";
fontsize = 14;
color = "#757575";
style = "dashed,rounded";
bgcolor = "#FAFAFA";
margin = 20;
// Processos
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", fixedsize = true, width = 1.3]
P1 [label="1.0nGerenciarnReservas"];
P2 [label="2.0nCheck-In/nCheck-Out"];
P3 [label="3.0nGerenciarnEstoque"];
// Armazenamentos de Dados
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D", fixedsize = false]
ReservasDS [label="{ <id> D1 | Banco de Dados denReservas }"];
QuartosDS [label="{ <id> D2 | Banco de Dados denStatus dos Quartos }"];
EstoqueDS [label="{ <id> D3 | Banco de Dados denEstoque }"];
}
// --- ESTILOS DE ARESTAS ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- FLUXOS DE DADOS ---
// Interações do Convidado
Convidado -> P1 [label="Solicitação de Reserva"];
P1 -> Convidado [label="Confirmação"];
Convidado -> P2 [label="Chegada"];
P2 -> Convidado [label="Chave do Quarto/Comprovante"];
// Interações do Funcionário
Funcionário -> P3 [label="Atualizar Estoque"];
P3 -> Funcionário [label="Alertas/Relatórios"];
// Processo para Armazenamento de Dados
P1 -> ReservasDS [label="Nova Reserva"];
ReservasDS -> P1 [label="Verificar Disponibilidade"];
P1 -> QuartosDS [label="Solicitação de Detalhes do Quarto"];
QuartosDS -> P1 [label="Quartos Disponíveis"];
P2 -> QuartosDS [label="Atualização do Status do Quarto"];
QuartosDS -> P2 [label="Informações do Quarto"];
P2 -> P3 [label="Detalhes da Estadia"];
P3 -> EstoqueDS [label="Atualização de Estoque"];
EstoqueDS -> P3 [label="Níveis de Estoque"];
}
Exemplo 2: DFD Lógico – Sistema de Gestão de Biblioteca

digraph LibrarySystem_Logical {
// --- ESTILO DO GRÁFICO ---
graph [
rankdir = TB
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- ESTILOS DE NÓS ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Entidades Externas
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Membro;
Bibliotecário;
// --- LIMITE DO SISTEMA ---
subgraph cluster_LibrarySystem {
label = "Sistema de Biblioteca (Lógico)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Processos
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nGerenciarnCatálogo"];
P2 [label="2.0nProcessarnEmpréstimos"];
P3 [label="3.0nGerenciarnDevoluções"];
// Armazenamentos de Dados
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
CatalogDS [label="{ <id> D1 | Catálogo denLivros }"];
TransaçõesDS [label="{ <id> D2 | Registros denEmpréstimos }"];
MembrosDS [label="{ <id> D3 | Banco de Dados denMembros }"];
}
// --- ESTILOS DE ARESTAS ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- FLUXOS DE DADOS ---
// Interações do Membro
Membro -> P1 [label="Pesquisar Livros"];
P1 -> Membro [label="Resultados da Pesquisa"];
Membro -> P2 [label="Solicitação de Empréstimo"];
P2 -> Membro [label="Confirmação de Empréstimo"];
Membro -> P3 [label="Devolver Livros"];
P3 -> Membro [label="Comprovante de Devolução"];
// Interações do Bibliotecário
Bibliotecário -> P1 [label="Adicionar/Atualizar Livros"];
P1 -> Bibliotecário [label="Confirmação de Atualização do Catálogo"];
Bibliotecário -> P3 [label="Processar Atrasos"];
P3 -> Bibliotecário [label="Relatório de Atrasos"];
// Fluxos de Dados
P1 -> CatalogDS [label="Atualizações de Livros"];
CatalogDS -> P1 [label="Dados do Catálogo"];
P2 -> CatalogDS [label="Verificar Disponibilidade"];
CatalogDS -> P2 [label="Status do Livro"];
P2 -> MembrosDS [label="Verificar Status do Membro"];
MembrosDS -> P2 [label="Informações do Membro"];
P2 -> TransaçõesDS [label="Criar Registro de Empréstimo"];
TransaçõesDS -> P2 [label="Histórico de Empréstimos"];
P3 -> TransaçõesDS [label="Atualizar Devolução"];
TransaçõesDS -> P3 [label="Registros de Empréstimos"];
P3 -> MembrosDS [label="Atualizar Status do Membro"];
MembrosDS -> P3 [label="Informações do Membro"];
}
Exemplo 3: DFD Físico – Sistema de Gestão de Biblioteca

digraph LibrarySystem_Physical {
// --- ESTILO DO GRÁFICO ---
graph [
rankdir = TB
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- ESTILOS DE NÓS ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Entidades Externas (Físicas)
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
"Membro da Biblioteca" [label="BibliotecanMembro"];
"Bibliotecário" [label="FuncionárionBibliotecário"];
"Sistema de E-mail" [label="Sistema denE-mail"];
"Gateway de Pagamento" [label="Gateway denPagamento"];
// --- LIMITE DO SISTEMA ---
subgraph cluster_LibrarySystem_Physical {
label = "Sistema de Gestão de Biblioteca (Implementação Física)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Processos Físicos (com detalhes de tecnologia)
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nCatálogo Webn(HTML, JS)"];
P2 [label="2.0nAPI denEmpréstimosn(Python/REST)"];
P3 [label="3.0nProcessador denDevoluçõesn(Java)"];
// Armazenamentos de Dados Físicos (com detalhes de tecnologia)
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
CatalogDS [label="{ <id> D1 | PostgreSQLnCatálogo de Livros }"];
TransaçõesDS [label="{ <id> D2 | MongoDBnRegistros de Empréstimos }"];
MembrosDS [label="{ <id> D3 | OraclenBanco de Dados de Membros }"];
// Componentes físicos adicionais
node [shape = box, style = "filled", fillcolor = "#F3E5F5", color = "#8E24AA"]
"Servidor de Cache" [label="RedisnCache"];
"Fila de Mensagens" [label="RabbitMQnFila"];
}
// --- ESTILOS DE ARESTAS ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- FLUXOS DE DADOS (Físicos) ---
// Interações Físicas do Membro
"Membro da Biblioteca" -> P1 [label="HTTP GETnPesquisa de Livros"];
P1 -> "Membro da Biblioteca" [label="HTML/JSONnResultados"];
"Membro da Biblioteca" -> P2 [label="API RESTnSolicitação de Empréstimo"];
P2 -> "Membro da Biblioteca" [label="JSONnConfirmação"];
"Membro da Biblioteca" -> P3 [label="API RESTnDevolução"];
P3 -> "Membro da Biblioteca" [label="JSONnComprovante"];
// Interações Físicas do Bibliotecário
"Bibliotecário" -> P1 [label="HTTPSnGestão do Catálogo"];
P1 -> "Bibliotecário" [label="HTMLnConfirmação"];
"Bibliotecário" -> P3 [label="API RESTnProcessar Atrasos"];
P3 -> "Bibliotecário" [label="Relatório PDF"];
// Interações com Sistemas Externos
P2 -> "Sistema de E-mail" [label="SMTPnNotificação"];
P3 -> "Gateway de Pagamento" [label="HTTPSnPagamento de Multa"];
// Fluxos de Dados (Físicos)
P1 -> CatalogDS [label="SQL UPDATE"];
CatalogDS -> P1 [label="SQL SELECT"];
P1 -> "Servidor de Cache" [label="Atualização do Cache"];
"Servidor de Cache" -> P1 [label="Hit no Cache"];
P2 -> CatalogDS [label="SQL SELECT"];
CatalogDS -> P2 [label="RESULTADO SQL"];
P2 -> MembrosDS [label="SQL SELECT"];
MembrosDS -> P2 [label="RESULTADO SQL"];
P2 -> TransaçõesDS [label="INSERT"];
TransaçõesDS -> P2 [label="SELECT"];
P2 -> "Fila de Mensagens" [label="PublicarnEvento de Empréstimo"];
P3 -> TransaçõesDS [label="UPDATE"];
TransaçõesDS -> P3 [label="SELECT"];
P3 -> MembrosDS [label="UPDATE"];
MembrosDS -> P3 [label="SELECT"];
P3 -> "Fila de Mensagens" [label="PublicarnEvento de Devolução"];
}
Exemplo 4: Processamento de Pedidos de Comércio Eletrônico (DFD Lógico)

digraph ECommerce_Logical {
// --- ESTILO DO GRÁFICO ---
graph [
rankdir = LR
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- ESTILOS DE NÓS ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Entidades Externas
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Customer;
Supplier;
"Processador de Pagamentos" [label="Processadornde Pagamentos"];
// --- LIMITE DO SISTEMA ---
subgraph cluster_ECommerce {
label = "Sistema de Comércio Eletrônico (Lógico)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Processos
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nProcessarnPedido"];
P2 [label="2.0nGerenciarnEstoque"];
P3 [label="3.0nGerenciarnEntrega"];
// Armazenamentos de Dados
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
OrderDS [label="{ <id> D1 | Pedidos }"];
InventoryDS [label="{ <id> D2 | Estoque }"];
ShipmentDS [label="{ <id> D3 | Entregas }"];
}
// --- ESTILOS DE ARESTAS ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- FLUXOS DE DADOS ---
// Interações do Cliente
Customer -> P1 [label="Detalhes do Pedido"];
P1 -> Customer [label="Confirmação do Pedido"];
Customer -> P3 [label="Rastrear Pedido"];
P3 -> Customer [label="Informações de Rastreamento"];
// Processador de Pagamentos
"Processador de Pagamentos" -> P1 [label="Resposta de Pagamento"];
P1 -> "Processador de Pagamentos" [label="Solicitação de Pagamento"];
// Fornecedor
Supplier -> P2 [label="Atualização de Estoque"];
P2 -> Supplier [label="Solicitação de Reabastecimento"];
// Fluxos de Dados dos Processos
P1 -> OrderDS [label="Salvar Pedido"];
OrderDS -> P1 [label="Histórico de Pedidos"];
P1 -> InventoryDS [label="Verificar Estoque"];
InventoryDS -> P1 [label="Disponibilidade"];
P1 -> P3 [label="Detalhes da Entrega"];
P2 -> InventoryDS [label="Atualizar Estoque"];
InventoryDS -> P2 [label="Estoque Atual"];
P3 -> OrderDS [label="Atualizar Status"];
OrderDS -> P3 [label="Informações do Pedido"];
P3 -> ShipmentDS [label="Criar Entrega"];
ShipmentDS -> P3 [label="Detalhes da Entrega"];
}
6. Melhores Práticas
Para DFDs Lógicos
- Concentre-se nos processos de negócios, e não na tecnologia
- Use terminologia de negóciosque os interessados compreendam
- Mantenha os processos em níveis de abstração consistentes
- Valide com os usuários de negóciospara precisão
- Mostre todos os principais fluxos de dados entre componentes
Para DFDs Físicos
- Inclua detalhes específicos da tecnologia
- Considere desempenho e escalabilidade
- Documente as interfaces do sistema claramente
- Inclua tratamento de erros e processos de recuperação
- Alinhe com a arquitetura real do sistema
Práticas Gerais de Boas Práticas
- Comece com um diagrama de contexto
- Numere os processos hierarquicamente
- Use nomes significativos para todos os componentes
- Evite cruzamentos de fluxos de dados
- Valide com os interessados regularmente
7. Armadilhas Comuns

Armadilha 1: Misturar Lógico e Físico
❌ Errado:Adicionando nomes de tecnologia de banco de dados em um DFD lógico
✅ Certo:Mantenha o DFD lógico independente de tecnologia
Armadilha 2: Fluxos de dados ausentes
❌ Errado:Mostrando apenas uma direção entre entidades
✅ Certo:Inclua fluxos bidirecionais quando apropriado
Armadilha 3: Muito Complexo
❌ Errado:Colocando 20+ processos em um único diagrama
✅ Certo:Decomponha em múltiplos diagramas focados
Armadilha 4: Rotulagem incorreta de fluxos de dados
❌ Errado: “Dados” como rótulo
✅ Correto: Rótulos descritivos como “Detalhes do Pedido do Cliente”
Armadilha 5: Fronteiras de processo incorretas
❌ Errado: Um processo realizando múltiplas funções não relacionadas
✅ Correto: Processos separados para funções distintas
Conclusão
Diagramas de Fluxo de Dados são ferramentas essenciais para análise e design de sistemas. Compreender a diferença entre DFDs lógicos e físicos ajuda você a se comunicar eficazmente com diferentes partes interessadas em diferentes estágios do ciclo de vida do desenvolvimento de software.
- DFDs Lógicos pontuam os requisitos de negócios e as soluções técnicas
- DFDs Físicos orientam decisões de implementação e implantação
Use os exemplos fornecidos como modelos para os seus próprios DFDs, adaptando-os às suas exigências específicas do sistema, seguindo as melhores práticas descritas acima.
Recursos Adicionais
- Gerador de DFD Gane e Sarson por IA por Visual Paradigm: Explica como as ferramentas de IA do Visual Paradigm podem gerar DFDs de Gane-Sarson a partir de descrições de texto.
- Um guia passo a passo para criar diagramas de fluxo de dados com o Visual Paradigm: Fornece um tutorial para criar DFDs com a ferramenta online do Visual Paradigm, desde o registro até o compartilhamento.
- Como criar um diagrama de fluxo de dados (DFD)?: Um guia que aborda o que é um DFD, sua finalidade e os principais tipos (Físico e Lógico).
- Guia para Iniciantes em Diagramas DFD SSADM com o Visual Paradigm Online: Um guia introdutório para criar diagramas de fluxo de dados no estilo SSADM usando o Visual Paradigm Online.
- Guia abrangente sobre diagramas de fluxo de dados (DFD): Desvendando o fluxo de informações: Uma visão geral dos DFDs, detalhando seus elementos e por que o Visual Paradigm é uma ferramenta adequada para criá-los.
- Dominando diagramas de fluxo de dados com o Visual Paradigm: Um guia passo a passo: Um guia prático que utiliza exemplos e modelos para ensinar a criação de DFDs, com estudos de caso como sistemas de compras online.
- Compreendendo DFD Lógico vs. DFD Físico: Quando e por que os precisamos: Explica as diferenças, propósitos e casos de uso apropriados para diagramas de fluxo de dados lógicos e físicos.
- Guia para Iniciantes em Diagramas de Fluxo de Dados (DFD) com o Visual Paradigm Online: Um tutorial amigável para iniciantes que passa pelos passos da criação de um DFD com o Visual Paradigm Online.
- Arquivos de DFD – Guias do Visual Paradigm: Uma coleção de artigos sobre tópicos de DFD, incluindo geradores de IA, validação, equilíbrio e níveis.
- Guia de Início para Diagramas de Fluxo de Dados (DFD) com o Visual Paradigm Online: Detalha o processo passo a passo de criação de DFDs, incluindo seus componentes principais e como usar modelos.
- Desenhe DFD com a melhor ferramenta DFD: Discute a representação gráfica do fluxo de dados, detalha os DFDs lógicos versus físicos e explora os benefícios de cada tipo.
-
Guia para Iniciantes sobre Diagramas de Fluxo de Dados (DFD) com o Visual Paradigm Online: Um guia para iniciantes em idioma indonésio sobre DFDs, descrevendo os componentes e o processo passo a passo de criação no Visual Paradigm Online.
Este guia fornece uma base para criar DFDs eficazes. Lembre-se de que bons diagramas evoluem por meio de iterações e feedback de partes interessadas.
This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Ру́сский, Việt Nam, 简体中文 and 繁體中文.












