← Projetos

Tutorial

Flowchart Simulator: tutorial

Como desenhar fluxogramas, executá-los no navegador e gerar a documentação: do primeiro desenho à análise de muitas execuções.

O que é o Flowchart Simulator

O Flowchart Simulator desenha fluxogramas, executa esses fluxogramas e gera a documentação deles. [1] É um único arquivo HTML, que funciona no navegador, sem instalação nem conta.

Abrir o Flowchart Simulator

Tela inicial do Flowchart Simulator, com as formas à esquerda, a área de desenho vazia com três exemplos e o painel de propriedades à direita
A tela inicial: arraste formas para o desenho ou abra um dos três exemplos.

Um fluxograma parado mostra o caminho, mas não mostra se ele funciona. Aqui, o mesmo desenho responde a perguntas como: algum caminho fica sem saída, quanto tempo o processo leva e qual etapa consome esse tempo. Quando ele estiver certo, o app escreve o procedimento por você.

O trabalho acontece em três modos, escolhidos no alto da tela:

Editar
Desenhar, ligar as formas e preencher as propriedades.
Simular
Executar passo a passo, testar cenários e analisar muitas execuções.
Documentar
Ler, imprimir e exportar a documentação gerada a partir do modelo.

Como o app trata os seus dados

  • Nada sai do seu computador. O arquivo bloqueia conexões de rede.
  • O modelo fica no navegador. Ele é guardado automaticamente e reaparece ao reabrir o app. Para ter uma cópia própria, salve em JSON.
  • Modelos não executam código. As expressões passam por um interpretador próprio, então abrir um modelo recebido de outra pessoa não roda JavaScript.

As formas

O app tem 12 formas, baseadas nos símbolos tradicionais de fluxograma. [3] [4] Cada uma tem um comportamento próprio na simulação.

As 12 formas do app em quatro linhas: início, fim, processo, decisão, entrada, saída, subprocesso, espera, documento, dados, conector e nota
As 12 formas. Entrada e saída têm o mesmo desenho, e uma pequena seta no canto diferencia as duas.
FormaNa simulação
InícioOnde o fluxo começa. Cada folha tem um. Pode definir valores iniciais.
FimOnde o fluxo termina. Pode haver vários. Em uma folha chamada, devolve o controle a quem chamou.
ProcessoUma atividade ou um cálculo. Consome tempo e custo e executa instruções.
DecisãoDivide o fluxo em ramos. É a única forma com mais de uma saída.
EntradaPede um valor e o guarda em uma variável.
SaídaEscreve uma mensagem no console.
SubprocessoExecuta outra folha e depois continua.
EsperaSó consome tempo, como uma fila ou um prazo.
DocumentoRegistra um documento produzido, que aparece no console com o ícone 📄.
DadosRepresenta a leitura ou gravação em uma base. Executa instruções, como o processo. O app não acessa bases reais.
ConectorJunta ramos sem fazer nada, e não recebe número de etapa.
NotaComentário. Não se liga a nada e não é executada, mas entra na documentação.

Seu primeiro fluxograma: um reembolso

Em cerca de 20 minutos, você vai mapear um reembolso de despesas. O funcionário informa o valor. Até 500, o pagamento é direto; acima disso, o gerente decide.

1. Desenhe

  1. Se o app abrir com outro fluxograma, use Arquivo ▾ → Novo.
  2. Clique em Início, na lista de formas. Dê um duplo clique na forma criada, digite Pedido de reembolso e pressione Enter.
  3. Passe o mouse sobre a forma: surgem pontos nas bordas. Arraste o ponto de baixo até uma área vazia e solte. No menu que aparece, escolha Entrada, digite Informar valor e pressione Enter.
  4. Continue da mesma forma, seguindo a tabela. Se a tela ficar apertada, clique em Ajustar.
Saindo dePontoForma no menuTexto
Informar valorbaixoDecisãoValor acima de 500?
Valor acima de 500?baixoDecisãoGerente aprova?
Valor acima de 500?direitaProcessoPagar reembolso
Gerente aprova?direitaSolte sobre Pagar reembolso, sem menu
Gerente aprova?baixoSaídaAvisar recusa
Avisar recusabaixoFimRecusado
Pagar reembolsobaixoDocumentoEmitir comprovante
Emitir comprovantebaixoFimPago

A ordem importa nas decisões: a primeira ligação que sai de uma decisão vira Sim, e a segunda vira Não. Por isso, Valor acima de 500? tem Sim indo para o gerente. Se trocar, corrija no campo Quando do ramo.

Para arrumar o desenho, use Organizar ▾ → Na vertical.

2. Verifique

Clique em uma área vazia e abra a aba Verificar. Ela lista três erros, porque o desenho ainda não diz como decidir nem onde guardar o valor:

  • Informar valor precisa de um nome de variável válido.
  • As duas decisões não têm condição.
Fluxograma do reembolso desenhado, com a aba Verificar listando três erros: nome de variável e duas condições ausentes
A aba Verificar aponta o que falta. Clicar em um item leva à forma.

3. Preencha as propriedades

Volte à aba Propriedades, clique em cada forma e preencha os campos. Pressione Tab para confirmar cada um.

FormaCampoValor
Informar valorVariávelamount
PerguntaValor da despesa
Valor na análiserandom(10, 1000)
ResponsávelFuncionário
Duraçãorandom(2, 5)
Valor acima de 500?Condiçãoamount > 500
Gerente aprova?Como decidePergunta na simulação
Probabilidade (%)80 no ramo Sim e 20 no ramo Não
ResponsávelGerente
Duraçãorandom(30, 120)
Pagar reembolsoInstruçõespaid = amount
ResponsávelFinanceiro
Duraçãorandom(5, 15)
Custo3
Avisar recusaMensagemReembolso de {amount} recusado
Emitir comprovanteMensagemComprovante de {paid}
Fluxograma do reembolso com a decisão Gerente aprova selecionada e o painel de propriedades mostrando o modo de decisão, os dois ramos com probabilidades, o responsável e a duração
A decisão do gerente: a pergunta é feita na simulação, e as porcentagens valem na análise de muitas execuções.

Clique em uma área vazia e preencha Título com Reembolso de despesas e Moeda com $. A aba Verificar agora mostra Nenhum problema encontrado.

4. Simule

  1. Clique no modo Simular e depois em Passo. O início é executado.
  2. Clique em Passo de novo. O painel da direita pergunta Valor da despesa. Digite 800 e clique em Enviar.
  3. Clique em ▶ Executar. O fluxo avança sozinho e para em Gerente aprova?, à espera da sua resposta.
  4. Clique em Sim. A execução termina com o status Fim: Pago, o custo de $ 3 na barra superior e a mensagem Comprovante de 800 no console.
  5. Abra a aba Rastreamento: estão lá as 7 etapas executadas, com os valores e a resposta dada. Experimente Voltar para desfazer etapas.
Simulação parada na decisão Gerente aprova, com o caminho percorrido em destaque e os botões Sim e Não no painel da direita
A simulação aguardando a sua resposta. O caminho percorrido fica em destaque e o restante, esmaecido.

5. Crie cenários de teste

Abra a aba Cenários de teste. Para cada linha da tabela, clique em + Novo cenário e preencha os campos.

CenárioEntradasRespostas às decisõesResultado esperado
Valor pequenoamount = 200paid == 200
COST == 3
Valor alto aprovadoamount = 800Simpaid == 800
Valor alto recusadoamount = 800NãoEND == "Recusado"

Clique em Executar todos. Os três passam, e a cobertura fica em 100% das etapas e 100% dos ramos: nenhum caminho ficou sem teste.

Aba de cenários de teste com três cenários aprovados, cobertura de 100% e o formulário do cenário selecionado
Cenários aprovados e a cobertura alcançada.

6. Analise muitas execuções

Abra a aba Análise e clique em Executar análise, mantendo 1000 execuções e a semente 42. Seguindo a mesma ordem deste roteiro, os resultados serão estes:

IndicadorResultadoO que diz
Tempo médio52,06 minA média das execuções.
Mediana42,92 minMetade dos pedidos termina em até esse tempo.
95% em até122,76 minSó 5% dos pedidos demoram mais do que isso.
Como terminaPago 89%, Recusado 11%Cerca de metade dos valores passa de 500, e o gerente recusa 20% deles.
Onde o tempo é gastoGerente aprova?: 75,9%Se o objetivo é agilizar, comece pela aprovação do gerente.
Resultado da análise: indicadores de tempo e custo, histograma com dois grupos de tempos, formas de término, caminhos e tabela de tempo por etapa, com as frequências sobre o fluxograma
O histograma mostra dois grupos: os pedidos diretos, à esquerda, e os que passam pelo gerente, à direita.

7. Gere a documentação

Clique no modo Documentar. O procedimento, as regras de decisão, os responsáveis, o dicionário de dados, os caminhos, os cenários e a análise que você acabou de rodar já estão escritos. Clique em HTML para baixar reembolso-de-despesas.html.

Modo Documentar: à esquerda, as opções de exportação e as seções; ao centro, o procedimento passo a passo do reembolso
A documentação gerada, com cada etapa e o destino de cada ramo.

Por fim, pressione Ctrl+S para guardar o modelo em um arquivo. O restante do tutorial detalha cada recurso.

A interface

Barra superior
Os três modos, Arquivo ▾, desfazer e refazer, Organizar ▾, idioma, ajuda e tema. Em Simular, traz também o relógio e os controles de execução.
Formas
A paleta. Arraste para o desenho, ou clique para colocar. Só aparece em Editar.
Etapas
Lista numerada das etapas da folha aberta. Clicar centraliza a forma.
Abas de folhas
Abaixo do desenho. Alternam entre as folhas, e + cria outra.
Propriedades
Campos do item selecionado. Sem seleção, mostra os dados da folha e do modelo.
Verificar
Problemas do modelo, com a contagem na própria aba.

Desenhar e organizar

ParaFaça
Criar uma formaArraste da paleta ou clique nela. Com uma forma selecionada, o clique já cria a nova ligada a ela.
Criar um processo rápidoDuplo clique em uma área vazia.
Editar o textoDuplo clique, ou F2. Enter confirma, Shift+Enter quebra a linha e Esc cancela.
Ligar duas formasArraste um ponto da borda até a outra forma.
Ligar a uma forma novaSolte a ligação em uma área vazia e escolha a forma no menu.
Rotular uma ligaçãoDuplo clique nela, ou use o campo Rótulo.
Trocar a origem ou o destinoSelecione a ligação e arraste uma das pontas. Soltar perto de um ponto fixa aquele lado.
Devolver a rota ao appRota automática, nas propriedades da ligação.
MoverArraste, com encaixe em uma grade de 8 pontos, ou use as setas.
RedimensionarSelecione a forma e arraste o quadrado do canto inferior direito.
Selecionar váriasArraste no fundo, ou clique com Shift.
Rolar a vistaRoda do mouse. Com Shift, na horizontal.
Mover a vistaBotão do meio ou direito, ou Espaço + arrastar.
AproximarCtrl + roda do mouse, ou os botões − e +. Ajustar enquadra a folha toda.
Arrumar tudoOrganizar ▾, na vertical ou na horizontal. Isso também solta os lados fixados nas ligações.

As ligações são roteadas pelo app, que desvia das outras formas. O app recusa ligações sem sentido: uma forma com ela mesma, algo saindo do fim ou entrando no início, uma nota, uma ligação repetida ou uma segunda saída em uma forma que não é decisão.

Propriedades de cada forma

Comuns a quase todas

Texto
O que aparece na forma. A forma cresce se o texto não couber.
Descrição
Explicação para a documentação.
Responsável
Quem executa a etapa. O campo sugere os nomes já usados. Não existe em início e fim.
Duração
Tempo gasto. Aceita número ou expressão, como random(2, 5). Vazio é zero.
Custo
Custo da etapa, com as mesmas regras.
Pausar a simulação aqui
Ponto de parada para o botão ▶ Executar.

Específicas

FormaCampoFunção
Início, Processo, DadosInstruçõesUma por linha: variável = expressão.
EntradaVariávelOnde o valor é guardado.
PerguntaO texto mostrado a quem responde.
Valor na análiseExpressão usada quando ninguém está respondendo.
Saída, DocumentoMensagemTexto com expressões entre chaves, como Total: {total}. Vazio usa o texto da forma.
SubprocessoFolha chamadaA folha a executar. Abrir folha vai até ela e Criar folha cria uma já ligada.
DecisãoComo decide, Condição, RamosVeja a seção de decisões.

Sem nada selecionado, o painel mostra o nome da folha e os dados do modelo, como Título, Versão, Objetivo, Escopo, Unidade de tempo e Moeda. Eles abrem a documentação gerada.

Variáveis e expressões

As variáveis são criadas ao receber um valor e valem em todas as folhas. Os nomes aceitam letras, inclusive acentuadas, números e _, e diferenciam maiúsculas de minúsculas.

# instruções: uma por linha, com comentários depois de # ou //
total = price * qty
total += 10
items = [1, 2, 3]
items[0] = 5
label = qty > 1 ? "vários" : "um"
TipoDisponível
ValoresNúmeros, textos entre aspas, true, false, null e listas como [1, 2]
Operadores+ - * / % ^, == != < <= > >=, and or not (ou && || !) e condição ? a : b
Atribuição= += -= *= /=, em variáveis ou itens de lista
Númerosmin max abs round(x, casas) floor ceil sqrt pow
Listaslen sum avg push(lista, valor) contains a[0]
Textoslen upper lower trim substr(t, início, tamanho) contains str num. O + concatena.
Temponow() é o tempo simulado até ali.
Sorteiosrandom(a, b), randint(a, b), normal(média, desvio), triangular(mín, moda, máx), exponential(média) e chance(p), com p de 0 a 1

As listas começam na posição 0, e push devolve uma nova lista, então escreva a = push(a, x). Usar uma variável sem valor, dividir por zero ou sair dos limites de uma lista para a simulação com uma mensagem na etapa do erro. Funções desconhecidas e erros de digitação são indicados já na edição.

Na resposta a uma entrada, 800 e 3,5 viram números, true vira verdadeiro, [1, 2] vira lista e o restante vira texto.

Decisões e ramos

A decisão é a única forma com mais de uma saída. O campo Como decide tem três opções:

Por condição
A expressão em Condição escolhe o ramo sozinha. Serve para regras objetivas, como amount > 500.
Por probabilidade
O ramo é sorteado pelas porcentagens. Serve para situações que você só conhece em média, como “85% têm estoque”.
Pergunta na simulação
Você escolhe o ramo na hora. Nos cenários vale a resposta informada e, na análise, o sorteio pelas porcentagens.

Os tipos de ramo

O campo Quando diz quando o ramo é seguido em uma decisão por condição.

QuandoÉ seguido se
SimO resultado é verdadeiro.
NãoO resultado é falso.
Valor igual aO resultado é igual a Valor do ramo. Permite várias saídas, como 'A', 'B' e 'C'.
SenãoNenhum outro ramo atende. Evita erro com valores não previstos.

Se nenhum ramo atender, a simulação para com um erro. Em porcentagens, um ramo deixado em branco divide igualmente o que faltar para 100%. O Rótulo é opcional: vazio, mostra o nome do tipo, no idioma da interface.

Folhas e subprocessos

Um fluxograma longo fica mais legível se dividido em folhas. A forma Subprocesso chama outra folha; ao chegar ao fim dela, o fluxo volta e segue pela saída do subprocesso.

  1. Clique em + nas abas de folhas, ou selecione o subprocesso e use Criar folha.
  2. Desenhe a folha com o seu próprio início e pelo menos um fim.
  3. No subprocesso, escolha a Folha chamada.

As etapas das folhas seguintes são numeradas com prefixo, como 1.2. A simulação sempre começa pela primeira folha, muda de aba sozinha ao entrar em uma chamada e mostra o caminho em Pilha de chamadas. Abra o exemplo Aprovação de pedidos para ver isso funcionando.

Simulação do exemplo de pedidos dentro da folha chamada, com a pergunta de score no painel da direita e a pilha de chamadas
A execução dentro de uma folha chamada, com a pilha de chamadas à direita.

Verificar o modelo

A aba Verificar é atualizada a cada mudança, e clicar em um item leva à forma.

TipoO que aponta
EstruturaFolha sem início ou sem fim, mais de um início, etapa inalcançável, etapa sem saída, mais de uma saída fora de decisão e etapa sem caminho até um fim.
DecisõesMenos de dois ramos, condição ausente, casos Sim e Não sem cobertura, probabilidades inválidas ou que não somam 100% e ramo sem rótulo.
ExpressõesErros de digitação em instruções, condições, mensagens, durações e custos.
DadosEntrada sem variável válida e variável usada que nada define.
FolhasSubprocesso sem destino, destino sem início e folha que chama a si mesma.

Erros não bloqueiam a simulação: o app avisa, e ela para ao chegar neles. Assim, dá para testar um desenho ainda incompleto.

Simular passo a passo

ControleFunção
▶ Executar / ⏸ PausarAvança sozinho, até o fim, um ponto de parada ou uma pergunta. Depois da resposta, continua.
PassoExecuta só a próxima etapa, e ignora os pontos de parada.
VoltarDesfaz a última etapa, inclusive valores e sorteios.
ReiniciarRecomeça do início, com a mesma semente.
VelocidadeDe 0.5× a 16×. Em 16×, sem a animação do percurso.

Clique em uma forma para ligar ou desligar um ponto de parada, marcado por um círculo vermelho. A parada acontece antes de a etapa ser executada. Ao arrastar, a vista se move.

Ao responder a uma entrada, Sortear usa a expressão de Valor na análise. O painel da direita mostra as variáveis, com as que acabaram de mudar em destaque. O painel de baixo pode ter a altura ajustada pela borda superior.

Console
As mensagens de saídas e documentos, com o instante de cada uma.
Rastreamento
Cada etapa executada: tempo, resultado da condição, resposta dada e valores gravados. Mostra as últimas 500 linhas, e clicar em uma centraliza a forma.

Cenários de teste

Um cenário guarda entradas e o resultado esperado, para repetir o teste a cada mudança no fluxograma. Os cenários ficam salvos no modelo.

Entradas
Uma por linha: nome = valor. Um valor simples serve a todas as leituras. Uma lista, como grade = [7, 8, 9], é lida um item por vez.
Resultado esperado
Uma condição por linha. Além das variáveis, valem END (texto do fim alcançado), TIME, COST e STEPS.
Respostas às decisões
Os ramos das decisões perguntadas, na ordem, separados por vírgula, como Sim, Não.

Executar roda só o cenário aberto e Executar todos roda a lista e calcula a cobertura. Assistir reproduz o cenário na animação; ali, o que ele não informa é perguntado a você.

Analisar muitas execuções

A aba Análise repete o fluxograma muitas vezes, até 100.000, sorteando durações, entradas e ramos. É o chamado método de Monte Carlo. [5] A mesma semente repete o mesmo resultado, e outra semente mostra a variação.

Para funcionar, cada Entrada precisa de Valor na análise. Sem ele, as execuções param com erro, e a causa aparece listada na própria aba.

Concluídas
Quantas execuções chegaram a um fim. Abaixo de 100%, veja os erros listados.
Tempo médio, Mediana, 95% em até, Máximo
O tempo total das execuções concluídas. Compare a média com a mediana: uma média bem maior indica poucos casos muito demorados.
Custo médio
A soma dos custos por execução.
Histograma
Quantas execuções caíram em cada faixa de tempo. Passe o mouse sobre uma barra para ver os valores.
Como termina
A porcentagem de cada fim.
Caminhos distintos
Os caminhos mais frequentes, descritos pelas respostas às decisões.
Onde o tempo é gasto
Por etapa: Alcance (quantas execuções passam por ela), Visitas/execução, tempo e custo médios e % do tempo. A etapa no topo é a primeira candidata a melhorar.
Mostrar frequências no diagrama
Exibe no desenho a porcentagem de cada etapa, com ligações mais grossas onde passa mais fluxo. Desliga sozinho quando você volta a executar passo a passo.

Para comparar alternativas, mude uma duração ou uma probabilidade, rode de novo com a mesma semente e compare os indicadores.

Gerar a documentação

O modo Documentar escreve o documento a partir do modelo. Em Seções, você escolhe o que entra.

SeçãoConteúdo
Visão geralObjetivo, escopo, identificação e totais, inclusive a complexidade ciclomática. [6]
FluxogramaA imagem de cada folha, com as etapas numeradas.
Procedimento passo a passoCada etapa, com responsável, descrição, tempos, instruções e o destino de cada ramo.
Regras de decisãoTabela de decisões, condições e ramos.
ResponsáveisEtapas, tempo e custo estimados de cada responsável.
Dicionário de dadosCada variável: origem, onde é gravada e onde é lida.
Caminhos possíveisAs sequências de etapas até cada fim, com estimativas. Cada ligação entra uma vez por caminho.
Cenários de testeOs cenários, com resultado e cobertura.
Análise por simulaçãoOs indicadores, o histograma e as tabelas da análise.
Verificação do modeloOs problemas ainda em aberto.
ObservaçõesO texto das notas. Só aparece se houver notas.
Histórico de revisõesUma linha por versão, no formato versão | data | autor | mudança.

As estimativas usam o valor esperado de cada expressão: random(2, 5) conta como 3,5. Valores que dependem de variáveis aparecem como —.

Formatos

Imprimir / PDF
Abre a impressão do navegador, sem os painéis do app. Escolha salvar em PDF.
HTML
Uma página única, com as imagens embutidas, para enviar ou publicar.
Markdown
Texto com o fluxograma em Mermaid, que plataformas como o GitHub desenham. [7] O histograma não entra.
Copiar Markdown
O mesmo conteúdo, na área de transferência.

O documento sai no idioma selecionado no app. Os textos que você digitou não são traduzidos.

Salvar, abrir e exportar

Opção de Arquivo ▾O que faz
NovoInicia um fluxograma vazio, após pedir confirmação.
Abrir (.json)…Carrega um modelo salvo. Arquivos de outro formato são recusados.
Salvar (.json)Baixa o modelo, com folhas e cenários. Atalho: Ctrl+S.
Exportar folha (SVG) ou (PNG)Baixa a imagem da folha aberta, sobre fundo branco.
Exportar folha (Mermaid)Baixa a folha aberta como texto Mermaid. As notas não entram.
ExemplosAbrem Aprovação de pedidos, Média de notas (algoritmo) e Atendimento de suporte.

Prompts de IA

A análise de um processo costuma travar em três pontos: colocar o processo no app, conseguir os primeiros números e entender os resultados. Uma IA encurta os três. Ela também erra com segurança: inventa regras, chuta durações e explica números que não leu. Trate a saída como rascunho de um colega apressado. Para escrever prompts melhores, veja o tutorial de prompts.

Seis passos: você descreve o processo, a IA monta o rascunho, o app verifica e testa, o app roda a análise, a IA ajuda a ler os números e você decide a mudança. Da decisão, volta-se à análise para testar a próxima alternativa com a mesma semente.
A IA acelera o rascunho e a leitura. Os números vêm da simulação no app, e a decisão é sua.

Antes de colar: processos internos podem conter nomes, valores e regras sigilosas. Troque por dados fictícios e siga a política da sua organização para uso de IA. O app não envia nada para a rede, mas o serviço de IA recebe o que você colar nele.

Troque os trechos entre colchetes e cole na ferramenta de IA que você usa. Os prompts seguem a ordem do trabalho, mas cada um funciona sozinho.

1. Entrevistar antes de desenhar

Faz a IA descobrir o que falta, em vez de supor. É o melhor começo quando o processo ainda está na cabeça das pessoas.

Você é um analista de processos experiente em fluxogramas.
Quero mapear este processo: [descreva em poucas frases].

Antes de propor qualquer fluxograma, me entreviste:
- Faça uma pergunta por vez e espere minha resposta.
- Cubra: o que inicia o processo, quem executa cada etapa, as decisões e seus critérios, as esperas e filas, as exceções e retrabalhos, os dados usados, o que indica o fim, e quanto tempo e custo cada etapa costuma levar.
- Pergunte principalmente sobre o que dá errado, não só sobre o caminho feliz.
- Não invente respostas. Se eu não souber, registre como pendência.

Ao final, entregue: resumo do processo; tabela de etapas (etapa, responsável, duração, custo); decisões com critérios ou probabilidades; variáveis; pendências.

2. Transformar um texto em etapas

Para atas, procedimentos e transcrições. Pede a origem de cada item, o que facilita conferir.

A partir do texto abaixo, extraia a estrutura de um fluxograma.

Texto:
[cole a ata, o procedimento ou a transcrição]

Entregue:
1. Tabela de etapas, na ordem: etapa, responsável, duração citada e o trecho do texto que a sustenta.
2. Decisões: pergunta, critério, ramos e destino de cada ramo.
3. Laços e retrabalhos, com o que faz o fluxo voltar.
4. Lacunas: etapas sem responsável, decisões sem critério, ramos sem destino e contradições.
5. Perguntas para esclarecer cada lacuna.

Não preencha lacunas por conta própria. O que não estiver no texto vai para as perguntas.

3. Gerar o fluxograma em JSON

Transforma o que você reuniu em um arquivo que o app abre, em vez de desenhar forma por forma. Cole o resultado do prompt 1 ou 2 no fim.

Gere um fluxograma em JSON para o Flowchart Simulator, a partir das informações no fim.

Responda só com o JSON, sem comentários e sem cercas de código.

Formato:
- Raiz: "app" (sempre "flowchart-simulator"), "meta" ("title", "purpose", "scope", "timeUnit", "currency") e "sheets". A simulação começa pela primeira folha.
- Folha: "id", "name", "nodes" e "edges".
- Nó: "id", "type", "text" e, se fizer sentido, "resp", "desc", "duration" e "cost" (número ou expressão, em texto).
- "type": start, end, process, decision, input, output, subprocess, delay, document, data, connector ou note.
- start, process e data: "code" com instruções, uma por linha, como total = preco * qtd.
- output e document: "code" com a mensagem, e expressões entre chaves, como Total: {total}.
- input: "var", "prompt" e "sample" (expressão usada na análise; obrigatório).
- subprocess: "target" com o id da folha chamada.
- decision: "mode" é cond (uma condição decide; informe "expr"), prob (sorteio pelas porcentagens) ou ask (uma pessoa escolhe; na análise, vale o sorteio).
- Ligação: "from" e "to". Saindo de decision em cond: "branch" é yes, no, else ou case (com "value"). Em prob ou ask: "prob" em porcentagem, de 0 a 100, e "branch" yes ou no, ou "label" com o nome do ramo.

Regras:
- Cada folha tem um start e pelo menos um end. Só decision tem mais de uma saída. end não tem saída, e note não tem ligações.
- Não informe posições: o app organiza o desenho.
- Expressões aceitam + - * / % ^, comparações, and, or, not, min, max, round, random(a, b), normal(média, desvio), triangular(mín, moda, máx) e chance(p). Use ponto no decimal.
- Prefira distribuições a valores fixos nas durações incertas.
- Toda variável lida precisa ser gravada antes por uma entrada ou instrução.
- Em "desc", diga se os números foram informados por mim ou são hipótese sua. Não invente fontes.

Exemplo do formato:
{
  "app": "flowchart-simulator",
  "meta": {"title": "Reembolso", "timeUnit": "min", "currency": "R$"},
  "sheets": [
    {"id": "main", "name": "Principal", "nodes": [
      {"id": "a", "type": "start", "text": "Pedido recebido"},
      {"id": "b", "type": "input", "text": "Informar valor", "var": "valor", "prompt": "Valor do pedido", "sample": "random(100, 900)", "resp": "Funcionário", "duration": "5", "desc": "hipótese"},
      {"id": "c", "type": "decision", "text": "Valor acima de 500?", "mode": "cond", "expr": "valor > 500"},
      {"id": "d", "type": "decision", "text": "Gerente aprova?", "mode": "prob", "resp": "Gerente", "duration": "30"},
      {"id": "e", "type": "process", "text": "Pagar reembolso", "resp": "Financeiro", "duration": "triangular(5, 10, 20)", "cost": "3"},
      {"id": "f", "type": "end", "text": "Pago"},
      {"id": "g", "type": "end", "text": "Recusado"}
    ], "edges": [
      {"from": "a", "to": "b"},
      {"from": "b", "to": "c"},
      {"from": "c", "to": "d", "branch": "yes"},
      {"from": "c", "to": "e", "branch": "no"},
      {"from": "d", "to": "e", "branch": "yes", "prob": "80"},
      {"from": "d", "to": "g", "branch": "no", "prob": "20"},
      {"from": "e", "to": "f"}
    ]}
  ]
}

Informações:
[cole o resultado do prompt 1 ou 2, ou descreva o processo]

4. Estimar durações, custos e probabilidades

A aba Análise precisa de números. Este prompt deixa claro o que é hipótese e devolve expressões que o app aceita.

Preciso de números iniciais para simular este processo. Não tenho medições.

Processo:
[cole a tabela de etapas, o JSON ou o Markdown da documentação]
Unidade de tempo: [min, h ou dias]

Para cada etapa, decisão e entrada, entregue uma tabela com: mínimo, mais provável, máximo, em que você se baseou, como eu mediria o valor real e sua confiança (baixa, média ou alta).

Regras:
- Tudo é hipótese até eu confirmar. Diga isso claramente.
- Não cite estudos ou números de mercado que você não possa indicar com precisão. Sem base, diga "sem base" e dê só a faixa.
- Separe tempo de trabalho de tempo de espera, e use uma etapa de espera para filas.
- Devolva o texto exato para os campos do app: Duração e Custo como triangular(mín, moda, máx); Valor na análise como expressão; e os ramos de decisão em porcentagem, somando 100.
- Aponte as 3 estimativas que mais podem mudar o resultado e que eu deveria medir primeiro.

5. Revisar o modelo antes de analisar

Cole o JSON salvo ou o Markdown da documentação. É uma segunda opinião sobre a lógica, não uma aprovação.

Revise este fluxograma como um analista de processos experiente, antes de eu simular.

Modelo:
[cole o JSON ou o Markdown da documentação]

Procure:
- Caminhos que faltam: exceções, cancelamentos, recusas e retrabalho.
- Decisões sem critério claro, ou cujos ramos não cobrem todos os casos.
- Laços que podem não terminar.
- Etapas sem responsável, e trocas de responsável sem espera prevista.
- Durações ou probabilidades improváveis, e custos contados duas vezes.
- Variáveis lidas antes de terem valor.
- Tudo que distorce a análise: esperas ausentes ou probabilidades otimistas.

Entregue uma tabela com: etapa, problema, por que importa, sugestão e gravidade (alta, média ou baixa). Não reescreva o modelo. Não confirme que está certo só porque não achou problemas: diga o que não dá para avaliar sem mais dados.

6. Escrever cenários de teste

Devolve os cenários na sintaxe dos campos do app, para repetir o teste a cada mudança.

Proponha cenários de teste para o fluxograma abaixo, na sintaxe do Flowchart Simulator.

Modelo:
[cole o JSON ou o Markdown da documentação]

Para cada cenário, entregue exatamente estes campos:
- Cenário: nome curto.
- Entradas: uma por linha, nome = valor. Uma lista, como nota = [7, 8], é lida um item por vez.
- Respostas às decisões: os ramos das decisões perguntadas (modo ask), na ordem, separados por vírgula.
- Resultado esperado: uma condição por linha. Valem as variáveis, END == "texto do fim", TIME, COST e STEPS.

Regras:
- Cubra todos os ramos de cada decisão, e diga qual ramo cada cenário exercita.
- Inclua valores no limite, como exatamente 500 em uma regra de 500, e casos de erro e de retrabalho.
- Decisões por probabilidade (modo prob) são sempre sorteadas e não aceitam resposta. Se um cenário precisar de um ramo específico, avise que a decisão deve passar para o modo ask, que na análise continua usando as porcentagens.
- Não compare valores exatos de durações sorteadas; use faixas.
- Se o resultado esperado não puder ser deduzido do modelo, marque como pergunta para mim, em vez de supor.

7. Ler os resultados da análise

Depois de rodar a análise, copie a documentação com Copiar Markdown e cole. O histograma não vai no Markdown, mas os indicadores e as tabelas vão.

Ajude-me a interpretar esta análise por simulação. Os números vêm de um modelo, não de medições.

Documentação:
[cole o Markdown gerado pelo app, com a seção de análise]

Entregue:
1. O que os indicadores dizem, em até 5 frases, comparando média, mediana e 95%.
2. As 3 etapas que mais pesam no tempo e no custo, com os números do documento.
3. O que explica a cauda: caminhos, retrabalho ou esperas que geram os casos mais demorados.
4. Como cada fim se distribui, e qual deles preocupa.
5. O que eu não posso concluir: hipóteses frágeis e execuções não concluídas.

Regras:
- Use só números que estão no documento, sem criar novos. Se faltar um dado, diga que falta.
- Separe o que foi calculado da sua interpretação. Não afirme causas no mundo real: apresente como hipótese a confirmar.

8. Planejar as próximas simulações

Transforma o diagnóstico em uma lista curta de testes, para não simular alternativas ao acaso.

Com base nesta análise, planeje as próximas simulações.

Documentação:
[cole o Markdown gerado pelo app, com a seção de análise]
Objetivo: [por exemplo, reduzir o tempo de 95% para menos de 2 dias]
Restrições: [o que não pode mudar]

Proponha até 5 alternativas e, para cada uma, entregue:
- O que muda no modelo: a etapa, o campo (Duração, Custo, Condição ou porcentagem do ramo) e o valor exato.
- O efeito esperado, como hipótese, e o indicador que o confirmaria.
- O que seria preciso para fazer a mudança no mundo real, e o risco.

Regras:
- Cada alternativa muda uma coisa só, para o efeito ser atribuível.
- Comece pelas etapas que mais pesam no documento, e diga quando a etapa pesa porque a estimativa é ruim, e não porque o processo é lento.
- Não prometa ganhos em números: o resultado sai da simulação.

Termine com uma tabela vazia para eu preencher, com a mesma semente em todas as execuções: alternativa, tempo médio, mediana, 95%, custo médio e % de cada fim.

Como abrir o JSON gerado no prompt 3

  1. Copie a resposta da IA para um editor de texto e salve com a extensão .json, por exemplo processo.json.
  2. No app, use Arquivo ▾ → Abrir (.json)…. Se já houver um fluxograma, confirme a substituição; salve antes o que quiser manter.
  3. O arquivo não traz posições, então as formas abrem empilhadas. Use Organizar ▾ → Na vertical e depois Ajustar.
  4. Abra a aba Verificar e confira cada item.
SintomaCausaSolução
“Não foi possível abrir”, com erro de JSONA resposta tem texto ou as cercas ``` em volta do JSON.Salve só do primeiro { ao último }.
“o arquivo não é um fluxograma deste app”Falta "app": "flowchart-simulator" ou "sheets".Peça para a IA corrigir conforme o formato do prompt.
Faltam etapas ou ligaçõesO app ignora tipos desconhecidos e ligações para ids que não existem. A aba Verificar aponta o que ficou solto.Compare com o JSON e peça a correção.
“mas nada a define”A IA usou uma variável que nenhuma etapa grava.Crie a entrada ou a instrução, ou peça a correção.
Análise com “nenhum valor definido”Uma entrada está sem Valor na análise.Preencha o campo, com a ajuda do prompt 4.
↑ Voltar ao topo

Atalhos de teclado

OndeTeclaAção
Todos os modosCtrl+SSalvar o modelo
Todos os modos? ou F1Abrir a ajuda
EdiçãoCtrl+Z / Ctrl+YDesfazer e refazer
EdiçãoCtrl+C / X / V / DCopiar, recortar, colar e duplicar
EdiçãoCtrl+ASelecionar todas as formas
EdiçãoDelExcluir a seleção
EdiçãoF2 ou EnterEditar o texto da forma selecionada
EdiçãoSetas (com Shift, passo maior)Mover a seleção
EdiçãoEscLimpar a seleção
SimulaçãoEspaçoExecutar ou pausar
SimulaçãoNAvançar uma etapa
SimulaçãoBVoltar uma etapa
SimulaçãoRReiniciar

Limitações e solução de problemas

Limitações

  • Um caminho por vez: não há etapas em paralelo nem filas disputando recursos. Para filas e gargalos, use o DFD Simulator. [2]
  • Tempo sem conversão: a Unidade de tempo é só um rótulo. Use a mesma unidade em todo o modelo.
  • Limite de etapas: cada execução para em 5.000 etapas, para deter laços sem saída.
  • Copiar e colar: vale dentro do app aberto, e as ligações só são copiadas se as duas pontas estiverem selecionadas.
  • Navegadores: o app foi testado no Chromium. O uso em outros navegadores e em telas de toque não foi testado.

Problemas comuns

SintomaCausa provávelO que fazer
Ligação não permitidaA forma de origem já tem saída e não é uma decisão.Insira uma decisão, ou exclua a ligação anterior.
Sim e Não estão trocadosA primeira ligação de uma decisão vira Sim.Corrija o campo Quando em cada ramo.
A variável ainda não tem valorO caminho percorrido não passou por onde ela é definida.Defina um valor inicial nas Instruções do início.
Nenhum ramo atende ao valorA condição devolveu algo não previsto nos ramos.Acrescente um ramo Senão.
Parada após 5000 etapasUm laço nunca sai.Veja Rastreamento e revise a condição do laço.
Análise com erros e abaixo de 100%Falta Valor na análise em uma entrada, ou há um erro em uma expressão.Leia as mensagens listadas na aba Análise.
Cenário falha com “não é um ramo”Uma resposta não corresponde ao rótulo do ramo.Use o texto exato do rótulo em Respostas às decisões.
A análise sumiu da documentaçãoA lógica mudou depois da análise.Execute a análise de novo.
Etapas com — nas estimativasA duração ou o custo depende de uma variável.É esperado: a estimativa estática não conhece o valor. Use a análise.

Revisão rápida

Tente responder antes de abrir cada pergunta.

1. Por que um processo não pode ter duas saídas?

Porque o fluxo precisa saber para onde ir. Quem escolhe entre caminhos é a decisão.

2. Qual é a diferença entre decidir por probabilidade e perguntar na simulação?

Na probabilidade, o ramo é sempre sorteado. Na pergunta, você escolhe durante a simulação, e o sorteio só vale nas execuções sem ninguém para responder.

3. Para que serve o campo Valor na análise?

Ele fornece o valor de uma entrada quando ninguém está respondendo. Sem ele, a análise de muitas execuções para com erro nessa entrada.

4. O que significa 100% de cobertura de ramos?

Que os cenários, juntos, passaram por todos os ramos de todas as decisões. Isso não prova que as regras estão certas, só que nenhum ramo ficou sem ser executado.

5. Por que usar a mesma semente ao comparar duas versões?

Porque a semente fixa a sequência de sorteios, e assim a diferença vem mais da mudança feita do que do acaso.

6. Você mudou uma duração e a análise sumiu da documentação. Por quê?

Porque os números antigos não valem mais para a nova lógica. Execute a análise de novo para que ela volte ao documento.

7. A IA estimou as durações e a análise apontou um gargalo. O gargalo está confirmado?

Não. O resultado segue as durações informadas. Confirme com dados reais as etapas que mais pesam antes de agir, e teste a mudança com a mesma semente.

↑ Voltar ao topo

Referências

  1. Giovani Perotto Mesquita, “Flowchart Simulator”, aplicativo em um único arquivo HTML, giovanipm.github.io/flowchart-simulator.html.
  2. Giovani Perotto Mesquita, “DFD Simulator: tutorial”, tutorial deste site, giovanipm.github.io/DFDSimulator.html.
  3. ISO, ISO 5807:1985: Information processing — Documentation symbols and conventions for data, program and system flowcharts, program network charts and system resources charts, norma, 1985.
  4. Wikipedia (em inglês), “Flowchart”, acesso em 30/10/2026, en.wikipedia.org/wiki/Flowchart.
  5. Wikipedia (em inglês), “Monte Carlo method”, acesso em 30/10/2026, en.wikipedia.org/wiki/Monte_Carlo_method.
  6. Thomas J. McCabe, “A Complexity Measure”, IEEE Transactions on Software Engineering, SE-2(4), 1976, p. 308–320.
  7. Mermaid, “Flowcharts Syntax”, documentação, acesso em 30/10/2026, mermaid.js.org/syntax/flowchart.html.
↑ Voltar ao topo