Pular para o conteúdo

Exemplos de diagrama de fluxo de dados: diagrama de contexto, nível 0 e nível 1

Exemplos práticos de diagrama de fluxo de dados para uma loja online: símbolos DFD nas duas notações, diagrama de contexto, níveis 0 e 1, balanceamento e erros comuns.

· Fundador e desenvolvedor

Publicado em

No meio, as caixas Customer, Payment provider e Warehouse. À esquerda, a moldura do diagrama de contexto contém um processo, Online store, que troca fluxos nomeados com elas. À direita, a moldura do nível 0 contém Take order, Process payment, Fulfil order e os depósitos Orders e Products.

Um diagrama de fluxo de dados (DFD) mostra como a informação se move por um sistema: de onde vem, o que a transforma, onde é armazenada e para onde vai. Ele não diz nada sobre tempo, laços ou qual servidor executa o quê, e essa é a sua força. Um DFD é o jeito mais rápido de chegar a um acordo sobre quais dados um sistema trata, e por isso aparece no levantamento de requisitos, em revisões de privacidade e na modelagem de ameaças.

Este post apresenta os símbolos de DFD nas duas notações clássicas e depois desenvolve um exemplo, uma loja online, em três níveis: o diagrama de contexto, o nível 0 e o nível 1. Ele também explica a confusão de nomes em torno do “nível 0”, a regra de balanceamento que mantém os níveis consistentes e os erros que os revisores procuram.

Símbolos de DFD

DFDs usam quatro elementos. Duas notações dominam, ambas vindas dos livros de análise estruturada do fim dos anos 1970: Yourdon e DeMarco, e Gane e Sarson.

Elemento O que é Yourdon e DeMarco Gane e Sarson
Entidade externa Uma pessoa, organização ou sistema fora da fronteira que envia ou recebe dados Retângulo Quadrado, muitas vezes sombreado
Processo Trabalho que transforma dados Círculo, ou bolha Retângulo arredondado com uma faixa de ID
Depósito de dados Dados em repouso: uma tabela, um arquivo ou uma fila Duas linhas paralelas Retângulo aberto de um lado, com um ID como D1
Fluxo de dados Dados em movimento, nomeados com um substantivo Seta Seta

As notações são equivalentes; escolha uma e mantenha. Muitas ferramentas modernas desenham depósitos de dados como cilindros, que os leitores reconhecem na hora. Seja qual for a escolha, adicione uma legenda.

As regras que tornam um DFD válido

  1. Todo processo tem pelo menos uma entrada e uma saída. Um processo só com entradas é um buraco negro; um só com saídas, um milagre.
  2. Os dados só se movem por meio de processos. Nenhum fluxo vai direto de uma entidade externa para um depósito de dados, de um depósito para outro ou entre duas entidades externas.
  3. Os fluxos têm nomes que descrevem dados, como “detalhes do pedido” ou “resultado do pagamento”, e não ações como “enviar” ou “verificar”.
  4. Os processos são nomeados com verbo e objeto: “Receber pedido”, “Atender pedido”.
  5. Cada processo é numerado, e sua decomposição repete o número: o processo 1 vira 1.1, 1.2 e 1.3.

Os níveis, e a confusão do nível 0

Um DFD é desenhado de cima para baixo, em níveis de detalhe crescente:

  • O diagrama de contexto mostra o sistema inteiro como um único processo, cercado por todas as entidades externas e pelos fluxos entre elas. Ele define a fronteira.
  • O nível seguinte abre esse processo único em seus processos principais, adiciona os depósitos de dados e mantém os mesmos fluxos externos.
  • Os níveis mais baixos abrem processos individuais até onde for preciso.

Aqui está a confusão: alguns livros e ferramentas chamam o diagrama de contexto de “nível 0” e sua primeira decomposição de “nível 1”, enquanto outros, seguindo a prática mais antiga da análise estruturada, tratam o diagrama de contexto como um nível próprio e chamam a primeira decomposição de “diagrama 0” ou “nível 0”. Nenhuma das duas está errada. Este post usa a segunda convenção: diagrama de contexto, depois nível 0, depois nível 1. Seja qual for a sua, escreva-a no diagrama.

O exemplo: uma loja online

Uma loja online recebe pedidos dos clientes, faz a cobrança por meio de um provedor de pagamentos e envia listas de separação para um armazém que despacha as mercadorias.

Diagrama de contexto

Um processo, “0 Online store”, e três entidades externas:

Fluxo De Para
Order details Customer Online store
Order confirmation Online store Customer
Payment request Online store Payment provider
Payment result Payment provider Online store
Pick list Online store Warehouse
Shipment status Warehouse Online store

Esse é o sistema inteiro visto de fora. Qualquer pessoa consegue revisá-lo em um minuto, e ele já responde perguntas importantes: quais organizações recebem dados de clientes e de quais sistemas dependemos.

Nível 0

Abra a loja online em três processos e dois depósitos de dados:

  1. Take order recebe os detalhes do pedido do cliente, lê os preços em D2 Products, grava o pedido em D1 Orders e repassa uma solicitação de pagamento ao processo 2.
  2. Process payment envia a solicitação de pagamento ao provedor de pagamentos, recebe o resultado do pagamento, atualiza o pedido em D1 Orders e passa os pedidos pagos ao processo 3.
  3. Fulfil order lê os pedidos pagos, envia a lista de separação ao armazém, recebe o status da remessa e envia a confirmação do pedido ao cliente.

Todo fluxo externo do diagrama de contexto aparece de novo no nível 0, ligado às mesmas entidades. Isso é balanceamento, e o diagrama abaixo o torna visível.

Nível 1

Cada processo do nível 0 pode ser aberto ainda mais. O processo 1, Take order, no nível 1:

Processo Entradas Saídas
1.1 Validar carrinho Order details vindo de Customer Carrinho válido
1.2 Precificar pedido Carrinho válido, preços dos produtos vindos de D2 Products Pedido precificado
1.3 Registrar pedido Pedido precificado Novo pedido para D1 Orders, solicitação de pagamento para o processo 2

As entradas e saídas de 1.1 a 1.3, tomadas em conjunto, precisam corresponder às entradas e saídas do processo 1 no nível 0. Desenhe cada explosão de nível 1 como um diagrama próprio, com o número do processo pai no título.

Balanceamento: a regra que os revisores conferem primeiro

Um diagrama filho está balanceado quando os fluxos de dados que entram e saem dele são iguais aos fluxos que entram e saem do seu processo pai. Se o nível 0 mostra um fluxo “pedido de reembolso” que o diagrama de contexto não mostra, um dos dois está errado: ou o sistema tem uma interface com que ninguém concordou, ou o diagrama de contexto está incompleto. O balanceamento é o que torna os níveis de um DFD confiáveis como conjunto, e é fácil de conferir listando lado a lado os fluxos externos de cada nível.

Erros comuns

  • Desenhar um fluxograma. Decisões, laços e setas de “depois” pertencem a um fluxograma ou a um diagrama BPMN. Um DFD mostra dados, não controle.
  • Fluxos sem nome. Uma seta sem rótulo não diz nada ao revisor; nomeie os dados que ela carrega.
  • Processos demais por diagrama. Mais de sete a nove processos em um nível ficam difíceis de ler. Agrupe-os e abra os grupos no nível seguinte.
  • Depósitos de dados que só recebem dados. Se nada lê um depósito, por que ele existe? Se nada grava nele, de onde vêm os seus dados?
  • Misturar níveis. Mostrar subprocessos detalhados ao lado de processos de alto nível no mesmo diagrama quebra a hierarquia.

DFDs, fluxogramas e diagramas de arquitetura

Diagrama de fluxo de dados Fluxograma Diagrama de arquitetura
Mostra Dados, suas origens, transformações e armazenamento Passos, decisões e ordem Componentes, implantação e conexões
Tempo e ordem Não Sim Raramente
Melhor para Requisitos, revisões de privacidade, modelos de ameaça Procedimentos e algoritmos Projeto e operações

DFDs são a entrada padrão da modelagem de ameaças: adicione fronteiras de confiança a um diagrama de nível 0 e você terá a base de uma revisão STRIDE, como mostra o post sobre o diagrama de fluxo de dados para modelagem de ameaças. Eles são igualmente úteis no trabalho de privacidade, em que o diagrama de mapeamento de dados do GDPR acompanha dados pessoais pelo mesmo tipo de fluxo.

O diagrama de níveis do DFD

No meio, as caixas Customer, Payment provider e Warehouse. À esquerda, a moldura do diagrama de contexto contém um processo, Online store, que troca fluxos nomeados com elas. À direita, a moldura do nível 0 contém Take order, Process payment, Fulfil order e os depósitos Orders e Products.

12 componentes · 17 conexões

Abrir no Archboard
Conteúdo do diagrama
  • Context diagram
  • 0 Online store
  • Customer
  • Payment provider
  • Warehouse
  • Level 0
  • 1 Take order
  • 2 Process payment
  • 3 Fulfil order
  • D2 Products
  • D1 Orders
  • order details
  • order confirmation
  • payment request
  • payment result
  • pick list
  • shipment status
  • order to pay
  • paid order
  • prices
  • new order
  • payment status
Dois níveis do mesmo diagrama de fluxo de dados para uma loja online. O diagrama de contexto mostra o sistema inteiro como um só processo; o nível 0 o abre em três processos e dois depósitos de dados, com os mesmos fluxos para as mesmas entidades externas, o que mantém o balanceamento.

Como ler:

  • As entidades externas ficam no meio: Customer, Payment provider e Warehouse. Os dois diagramas se conectam a elas.
  • A moldura da esquerda é o diagrama de contexto: um processo, 0 Online store, com seis fluxos nomeados para as entidades.
  • A moldura da direita é o nível 0: Take order, Process payment e Fulfil order, com os depósitos de dados Orders e Products.
  • O balanceamento fica visível: cada fluxo externo da esquerda reaparece na direita, agora ligado ao processo que o trata.
  • O bloco Markdown é a legenda e a convenção de numeração.

Desenhar DFDs que passam na revisão

  • Nomeie cada fluxo com um substantivo. A maioria dos comentários de revisão sobre DFDs trata de setas sem rótulo ou com rótulos vagos.
  • Numere os processos de forma consistente entre os níveis, para que o leitor consiga rastrear 1.2 até 1.
  • Mantenha as entidades externas nas mesmas posições em todos os níveis; isso facilita enxergar o balanceamento.
  • Adicione uma legenda para a sua notação, principalmente se você misturar símbolos clássicos com cilindros para os depósitos de dados.

Para a notação de outros tipos de diagrama, veja o exemplo de resposta a incidentes em forma de fluxograma e o exemplo de diagrama BPMN.

Monte no Archboard

  1. Entre com Google ou GitHub e crie um diagrama.
  2. Adicione três nós Caixa do pack Básico em uma coluna central para Customer, Payment provider e Warehouse.
  3. Adicione à esquerda uma Moldura do pack Básico chamada Context diagram, com uma forma Elipse do pack Básico para 0 Online store.
  4. Adicione à direita uma segunda Moldura chamada Level 0, com três formas Elipse para os processos e duas formas na variante Cilindro para D1 Orders e D2 Products.
  5. Desenhe os fluxos como arestas rotuladas, com os mesmos rótulos dos dois lados das entidades.
  6. Adicione um bloco Markdown do pack Básico com a legenda e a convenção de numeração.

O exemplo usa 12 nós de diagrama e fica dentro do plano Free.

Perguntas frequentes

Quais são os quatro símbolos de um diagrama de fluxo de dados? Entidades externas, processos, depósitos de dados e fluxos de dados. Yourdon e DeMarco desenham processos como círculos e depósitos como linhas paralelas; Gane e Sarson usam retângulos arredondados e retângulos abertos em uma ponta.

Qual é a diferença entre um diagrama de contexto e um DFD de nível 0? Um diagrama de contexto mostra o sistema inteiro como um único processo com suas entidades externas. O nível seguinte abre esse processo em subprocessos principais e depósitos de dados. Algumas fontes chamam o diagrama de contexto de nível 0, então deixe clara a sua convenção.

O que significa balanceamento em um DFD? Os fluxos de dados que entram e saem de um diagrama filho precisam corresponder aos fluxos do seu processo pai. Isso garante que os níveis descrevam o mesmo sistema.

Como um DFD se diferencia de um fluxograma? Um DFD mostra quais dados vão para onde e como são transformados, sem ordem nem decisões. Um fluxograma mostra a sequência de passos e as decisões entre eles.

Quantos níveis um DFD deve ter? Quantos os leitores precisarem. A maioria dos sistemas fica bem descrita com um diagrama de contexto e o nível 0, com diagramas de nível 1 só para processos complexos ou sensíveis.

Comece grátis — um assento, sem cartão de crédito.

Artigos relacionados

← Voltar ao blog

Abra um canvas em um minuto

Entre com Google ou GitHub. Grátis para um assento. Faça upgrade quando a equipe entrar.