Translate

Mostrar mensagens com a etiqueta Análise de Sistemas. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Análise de Sistemas. Mostrar todas as mensagens

quinta-feira, 29 de julho de 2021

☕💥 Por que os Fluxogramas Caíram em Desuso?

 

Bellacosa Mainframe e um teoria sobre o desuso dos fluxogramas

☕💥 Por que os Fluxogramas Caíram em Desuso?

Ou como um Padawan COBOL descobriu que o vilão não era o losango, mas a pressa do mercado

A resposta curta é:

Fluxogramas não morreram.
Eles foram substituídos, fragmentados, escondidos dentro de outras ferramentas e vítimas da pressão por velocidade de entrega.

E isso aconteceu por vários motivos.


1. O software ficou monstruosamente grande

Na década de 70, um programa COBOL típico poderia ter:

2.000 linhas
5 arquivos
20 IFs

Um fluxograma cabia em duas folhas.

Já um sistema bancário atual pode possuir:

35.000 linhas COBOL

120 tabelas DB2

50 programas chamados

MQ

CICS

Webservices

Kafka

APIs

z/OS Connect

Imagine desenhar isso.

Seriam dezenas de páginas.

Exemplo:

Login

↓

Menu

↓

Consulta

↓

CICS

↓

COBOL

↓

DB2

↓

MQ

↓

API PIX

↓

Anti-fraude

↓

Core Banking

Vira praticamente uma planta industrial.


2. O Waterfall perdeu força

Antigamente.

Projeto:

Meses de análise

Meses de desenho

Meses documentação

Meses codificação


Hoje:

Sprint

5 dias

10 dias

Deploy

Produção


No Agile.

Muitos pensam:

"Melhor codar do que desenhar."

E aí morre o fluxograma.


3. UML roubou espaço

Anos 90.

Chega UML.

E aparece:

Use Case

Sequence Diagram

Activity Diagram

Class Diagram

State Diagram


Activity Diagram praticamente é.

Fluxograma Premium™.

Exemplo.

Login

Validar

[Conta válida]

Consultar


Mesmo conceito.

Outra roupa.


4. Ferramentas BPM surgiram

Hoje temos:

Camunda

IBM BPM

ServiceNow

Power Automate

Bizagi


Você não desenha.

Você modela.


Exemplo.

Fluxograma clássico.

Solicitar Crédito

↓

Análise

↓

Gerente

↓

Compliance

Camunda.

Já executa.

Workflow vivo.


5. Código passou a ser documentação

Essa é a maior mudança cultural.

Dev moderno diz:

O código é a documentação.

Exemplo.

EVALUATE STATUS

WHEN 1
   PERFORM INSERIR

WHEN 2
   PERFORM ALTERAR

WHEN 3
   PERFORM EXCLUIR

WHEN OTHER
   CONTINUE

END-EVALUATE

Ele acredita que isso basta.


Analista antigo pensa:

"Sim."

"Mas eu levei 15 segundos olhando um desenho."

"Você levou 20 minutos lendo o programa."

😂


6. CASE Tools fracassaram

Anos 80.

Grande promessa.

Desenhar.

Gerar COBOL.


Ferramentas.

IEF

CoolGen

Pacbase

Excelerator

ADW


Promessa:

Desenhe.

Clique.

Compile.


Realidade.

Sistema gerado.

Gigantesco.

Difícil manutenção.


Mercado perdeu confiança.


7. Diagramas ficaram desatualizados

Problema clássico.

Fluxograma.

Lindo.

Aprovado.


Programador faz:

Mais 10 IFs.

Mais 5 EVALUATE.

Mais 2 SELECT.


Ninguém atualiza.

Diagrama.

Versão 2017.

Código.

Versão 2026.


Caos.


8. O Git substituiu parte da documentação

Hoje.

Git.

Pull Request.

Merge.

Comentários.

Exemplo.

PR-4523


Adicionada regra PIX noturno

Muitos usam isso.

Como histórico.


9. A geração atual prefere ferramentas visuais modernas

Antigamente.

Visio

PowerPoint

Papel

Caneta


Hoje.

Miro

Draw.io

LucidChart

Figma


Mesmo conceito.

Nova embalagem.


Mas Mainframe ainda ama fluxogramas

Aqui está a grande ironia.

No mundo Mainframe.

Fluxogramas nunca morreram.

Estão escondidos.


CICS

Mapas BMS

Fluxo PF3

PF5

ENTER


Batch

Arquivos

Balance Line

Merge


DB2

Cursores

Commit

Rollback


VSAM

READ

REWRITE

DELETE


JES2

JOB

STEP

COND

RC


Exemplo real

Imagine receber.

Programa:

FINA0321

42 mil linhas.

Criado.

Autor.

Aposentado.

Documentação.

Zero.


Você abre.

PERFORM P0010

PERFORM P0020

PERFORM P0030

PERFORM P0040

O que faz?

Ninguém sabe.


Você desenha.

START

↓

LER VSAM

↓

CLIENTE EXISTE?


◇



SIM


↓

ATUALIZA DB2


↓

GERA RELATÓRIO




NÃO


↓

INCLUI DB2




↓

END

Em 10 minutos.

Entendeu o programa.


Então por que deveríamos voltar a usar?

Porque ele resolve problemas caros.

Comunicação

Analista

Desenvolvedor

Tester

Usuário

Todos entendem.


Onboarding

Padawan COBOL chega.

Primeiro dia.

Recebe.

Fluxograma.

Aprende.

Em horas.

Sem.

Fluxograma.

Leva semanas.


Auditoria

Banco Central

SOX

PCI

LGPD

Adoram.

Fluxos.


Engenharia Reversa

Legados.

Sem documentação.

Fluxograma é ouro.


Minha visão para o Mainframe moderno

Eu diria que o fluxograma não morreu.

Ele evoluiu.

Hoje ele reaparece como:

  • Activity Diagram

  • BPMN

  • Camunda

  • Miro

  • Draw.io

  • Mermaid

  • Workflow IBM BPM

  • State Machines

  • Fluxos conversacionais

  • Orquestração de APIs

  • Pipelines DevOps

Mas para nós, habitantes do Reino IBM Z, existe uma verdade quase filosófica:

Um fluxograma bem desenhado é a forma mais rápida de transformar 30 mil linhas de COBOL em uma história compreensível.

O compilador entende COBOL. O ser humano entende narrativas. O fluxograma é a ponte entre os dois.

Bellacosa Mainframe ☕💥🚀

 

domingo, 15 de março de 2020

☕💥 Fluxogramas no Mundo Mainframe

 

Bellacosa Mainframe e o fluxograma no mundo mainframe

☕💥 Fluxogramas no Mundo Mainframe

Ou como um Padawan COBOL descobre que antes do IF WS-SALDO > ZERO, existia um desenhinho que salvava projetos milionários

"Um programa COBOL sem fluxograma é como um JCL sem JOB CARD. Talvez execute. Talvez funcione. Mas ninguém vai entender daqui seis meses."

— Mestre Bellacosa Mainframe


Introdução

Uma das maiores diferenças entre um desenvolvedor COBOL júnior de hoje e um analista de sistemas da década de 1970, 1980 ou 1990 não está na linguagem.

Não está no z/OS.

Não está no DB2.

Não está no CICS.

Está na forma de pensar software.

Hoje aprendemos:

  • Fazer código

  • Testar

  • Commitar

  • Fazer Pull Request

Antigamente aprendíamos:

  • Analisar

  • Modelar

  • Desenhar

  • Revisar

  • Aprovar

  • Codificar

E neste mundo existia um personagem muito poderoso.

O Fluxograma.


O nascimento dos fluxogramas

A ideia é muito antiga.

Vem dos trabalhos de engenharia industrial.

Frank Gilbreth

Henry Gantt

Por volta de 1921 começaram a desenhar processos industriais.

Exemplo:

Receber matéria-prima

Produzir

Inspecionar

Embalar

Enviar

Décadas depois os computadores apareceram.

E alguém percebeu:

"Programas são processos."

Logo...

Processos industriais

viraram

Processos computacionais.


O modelo Waterfall

Se você trabalha em Mainframe bancário provavelmente ainda verá isso.

Waterfall.

As fases clássicas:

Requisitos

Análise

Fluxogramas

Especificação Técnica

Codificação

Teste

Implantação


Documentos clássicos do Waterfall

Documento Funcional

O que o sistema faz.

Exemplo:

Pagamento de boleto

Regra:

Se vencido

cobrar multa

Se pago em dia

valor normal


Documento Técnico

Como será implementado.

Exemplo:

Programa:

PAGBOL01

Tabela:

TB_BOLETO

Transação:

PB01

Copybooks

CPBOLETO


Fluxograma

É a ponte entre os dois.

Negócio

Fluxograma

COBOL


Bellacosa Mainframe e os simbolos de fluxograma

O que é um Fluxograma?

É uma representação gráfica de um algoritmo.

Ao invés de escrever:

IF SALDO > ZERO
   DISPLAY "OK"
ELSE
   DISPLAY "NEGADO"
END-IF

Desenhamos.

        ◇
SALDO > 0 ?
   /    \
 SIM    NÃO
 ↓       ↓
OK    NEGADO

Nosso cérebro entende imagens mais rapidamente.

Por isso funcionam.


Símbolos principais

Oval

Significado:

Início

Fim

Exemplo

 _______
(START )
 -------

ou

 _______
( END  )
 -------

Retângulo

Processamento.

Fazer algo.

Exemplo:

Calcular juros

Atualizar cadastro

Mover campos


Exemplo COBOL

COMPUTE JUROS =
SALDO * 0.05

Fluxograma

□ Calcular juros


Losango

Decisão.

Pergunta.

Tem duas saídas.

SIM

NÃO

Exemplo

Cliente VIP?


COBOL

IF CLIENTE-VIP='S'

Paralelogramo

Entrada e saída.

DISPLAY

ACCEPT

RECEIVE

SEND


Batch

Ler arquivo

Online

Receber PFKEY


Seta

Fluxo.

Indica sequência.

Sem seta.

Existe caos.

Com seta.

Existe entendimento.


Círculo

Conector.

Liga páginas.

Muito usado em especificações gigantes.

Página 1

○A

Página 10

○A

continuação


Bellacosa Mainframe e um fluxograma cobol batch

Fluxograma de Batch COBOL

Imagine:

Pagar folha salarial.


Desenho

START

Abrir arquivo

Ler funcionário

Fim Arquivo?

Sim

Gerar relatório

END

Não

Calcular salário

Gravar saída

Ler próximo


COBOL

OPEN INPUT FUNCIONARIO

PERFORM UNTIL EOF='S'

 READ FUNCIONARIO

   AT END
      MOVE 'S' TO EOF

   NOT AT END

      PERFORM CALCULA

      WRITE REG-SAIDA

 END-READ

END-PERFORM

Bellacosa Mainframe exemplo de fluxograma cobol vsam


Fluxograma para VSAM

Abrir KSDS

READ

FOUND?

SIM

UPDATE

REWRITE

NÃO

WRITE

END


Bellacosa Mainframe exemplo de fluxograma online cics

Fluxograma Online CICS

Exemplo.

Consulta saldo.


START

Receber tela

ENTER?

SIM

Validar conta

Conta existe?

SIM

Ler DB2

Enviar tela

NÃO

Mensagem erro

END


COBOL

EXEC CICS RECEIVE MAP


EXEC SQL

SELECT SALDO

INTO :WS-SALDO

FROM CONTA


END-EXEC


EXEC CICS SEND MAP


END-EXEC

Bellacosa Mainframe exemplo de fluxograma db2

Fluxograma com DB2

Exemplo.

Transferência bancária.


START

Receber origem

Receber destino

Valor válido?

SIM

BEGIN UNIT OF WORK

SELECT

UPDATE

UPDATE

COMMIT

NÃO

ROLLBACK

END


Fluxograma das tabelas DB2

Tabela

CLIENTE

Tabela

CONTA

Tabela

MOVIMENTO

Fluxo

CLIENTE

CONTA

MOVIMENTO


Exemplo SQL

SELECT
C.NOME,
M.VALOR

FROM CLIENTE C

JOIN CONTA CT

ON...

JOIN MOVIMENTO M

Fluxograma ajuda a enxergar joins.


Workflow

Muitos confundem.

Fluxograma

não é

Workflow

Mas workflow pode usar fluxograma.


Exemplo

Solicitação crédito

Cliente

Análise

Aprovação gerente

Compliance

Liberação


Hoje isso está em:

IBM BPM

Camunda

ServiceNow

Power Automate


Fluxos de diálogo

Muito usado em CICS.

Tela login

Senha válida?

Sim

Menu

Não

Mensagem erro


Chatbots fazem isso.

ChatGPT faz isso.

URA faz isso.

PIX faz isso.


Boas práticas

1 Não cruzar linhas

Errado

Linhas embaralhadas.

Causa dor psicológica.


2 Usar nomes claros

Errado

Processo 1

Correto

Calcular IOF


3 Uma decisão por vez

Evita confusão.


4 Modularizar

Subfluxos.

Exemplo

Pagamento

Calcular imposto

Fluxograma separado


Curiosidades

Easter Egg 1

COBOL nasceu em 1959.

Fluxogramas já eram padrão.


Easter Egg 2

Muitos programadores COBOL dos anos 80 codificavam olhando apenas para fluxogramas.

Nem tinham acesso ao usuário.


Easter Egg 3

Ferramentas CASE prometiam gerar COBOL automaticamente.

Excelerator

ADW

CoolGen

IEF

Pacbase

A ideia era:

Desenhar

Gerar programa

Compilar


Easter Egg 4

IBM usou fluxogramas extensivamente na documentação do OS/360.

Centenas de páginas.


Easter Egg 5

DFSORT pode ser representado perfeitamente por fluxograma.

INPUT

SORT

SUM

OUTREC

OUTPUT


Por que ainda usamos em Mainframe?

Porque sistemas bancários possuem:

Centenas de regras

Milhares de IFs

Milhões de contas

Um código COBOL pode ter:

30000 linhas

500 parágrafos

200 IFs

Ler isso é cansativo.

Ver um desenho leva segundos.


O Fluxograma como ferramenta de sobrevivência do Padawan COBOL

Imagine receber:

Programa:

FINA0345

38 mil linhas.

Criado em 1994.

Sem documentação.

Sem analista.

Sem usuário.

Sem autor.

Você abre.

Encontra:

PERFORM P1120

PERFORM P1130

PERFORM P1140

PERFORM P1150

O que fazem?

Ninguém sabe.

Mas após desenhar:

START

↓

Validar Cliente

↓

Consultar DB2

↓

Calcular Limite

↓

Atualizar Histórico

↓

Gerar Extrato

↓

END

Tudo fica claro.

É por isso que arquitetos, analistas de sistemas, especialistas em CICS, DB2, IMS, MQ, BPM e até equipes DevOps continuam utilizando fluxogramas.

Eles não substituem COBOL.

Não substituem UML.

Não substituem documentação funcional.

Mas fazem algo extremamente valioso: transformam milhares de linhas de código em uma história visual que qualquer pessoa consegue seguir.

E, no universo Bellacosa Mainframe, talvez esta seja a melhor definição possível:

Fluxograma é o mapa da dungeon. COBOL é a espada. DB2 é o tesouro. CICS é o portal de entrada. E o programador júnior que aprende a desenhar processos deixa de ser apenas um codificador e começa a pensar como um verdadeiro Analista de Sistemas do Reino IBM Z. ☕🚀