| Bellacosa Mainframe e a academia mainframe |
A Academia Jedi do COBOL: Tudo o Que um Padawan Precisa Saber para Dominar o Mainframe
FUNDAMENTOS DO DESENVOLVIMENTO COBOL
1. Conceitos Básicos
Antes de escrever uma linha de código, o aluno precisa entender o que é COBOL.
COBOL significa:
COmmon Business Oriented Language
Criada em 1959 para resolver problemas de negócios.
Enquanto linguagens modernas nasceram para matemática ou sistemas operacionais, COBOL nasceu para:
Folha de pagamento
Bancos
Seguros
Governo
Contabilidade
Controle financeiro
Exemplo:
Imagine um banco processando:
50 milhões de contas
300 milhões de transações por dia
Grande parte disso ainda roda em COBOL.
Estrutura clássica
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
Comparação:
| COBOL | Casa |
|---|---|
| Identification | Nome do dono |
| Environment | Infraestrutura |
| Data | Móveis |
| Procedure | O que acontece dentro |
2. Tipos de Programas
Um erro comum é achar que existe apenas um tipo de programa COBOL.
Na prática temos:
Programas Batch
Executados sem interação humana.
Exemplo:
Processamento noturno do banco.
23:00 Início
04:00 Fim
Milhões de registros processados.
Programas Online
Executados pelo usuário.
Exemplo:
Caixa eletrônico.
Saque
Extrato
Transferência
Normalmente via CICS.
Subprogramas
Programas chamados por outros programas.
Exemplo:
CALL 'CALCJURO'
Reutilização de código.
Utilitários
Ferramentas auxiliares.
Exemplo:
Conversão de arquivos
Formatação
Migração de dados
3. Etapas para Desenvolvimento
Aqui o aluno aprende que programar é apenas uma parte do trabalho.
Levantamento de requisitos
Perguntas:
O que o usuário quer?
Quais entradas existem?
Quais saídas são necessárias?
Análise
Transformar regra de negócio em lógica.
Exemplo:
Se idade >= 65
então aposentado
Projeto
Definir:
Arquivos
Variáveis
Fluxo
Relatórios
Codificação
Somente agora começa o COBOL.
Testes
Muitos iniciantes pulam esta etapa.
Erro gravíssimo.
Um programa sem testes:
COMPILA ≠ FUNCIONA
4. Terminologia, Conceitos e Recursos
Aqui nasce o vocabulário do programador.
Registro
Uma linha lógica.
Exemplo:
001 João 2500.00
Campo
Parte do registro.
Nome
Salário
CPF
Arquivo
Conjunto de registros.
Programa
Conjunto de instruções.
Job
Execução do programa.
No Mainframe:
//STEP01 EXEC PGM=FOLHA001
☕💣 LÓGICA DE PROGRAMAÇÃO
5. Ferramentas de Planejamento
O pior programador é aquele que abre o editor antes de pensar.
Planejamento economiza horas.
Diagrama de Processo
Entrada
↓
Validação
↓
Cálculo
↓
Saída
Tabela de Decisão
Muito usada em bancos.
Exemplo:
| Saldo | Crédito |
|---|---|
| >10000 | Sim |
| <10000 | Não |
6. Projeto Estruturado
A filosofia:
Resolver problemas grandes
dividindo em pequenos problemas
Exemplo:
Sistema de Folha
LER FUNCIONÁRIO
CALCULAR SALÁRIO
CALCULAR IMPOSTOS
IMPRIMIR
Cada parte vira um parágrafo.
7. Fluxogramas
Antes do COBOL existia o fluxograma.
Exemplo:
INÍCIO
|
LER ARQUIVO
|
FIM DO ARQUIVO?
/ \
SIM NÃO
| |
FIM PROCESSA
Benefícios
Facilita entendimento
Ajuda documentação
Facilita manutenção
8. Pseudocódigo
Traduz a regra para linguagem humana.
Exemplo:
LER CLIENTE
SE IDADE >= 18
APROVAR
SENÃO
REJEITAR
FIM-SE
Depois converte para COBOL.
IF IDADE >= 18
MOVE 'S' TO APROVADO
ELSE
MOVE 'N' TO APROVADO
END-IF.
9. Instruções e Operadores
Comandos básicos.
MOVE
MOVE SALARIO TO SALARIO-ANTIGO
COMPUTE
COMPUTE TOTAL = VALOR + JUROS
ADD
ADD 100 TO SALDO
SUBTRACT
SUBTRACT 50 FROM SALDO
MULTIPLY
MULTIPLY QTDE BY PRECO
GIVING TOTAL
DIVIDE
DIVIDE TOTAL BY PARCELAS
GIVING VALOR-PARCELA
10. Estruturas de Controle
O cérebro do programa.
IF
IF SALDO > 0
EVALUATE
Equivalente ao SWITCH.
EVALUATE TIPO
WHEN 1
...
WHEN 2
...
END-EVALUATE
PERFORM
Laços de repetição.
PERFORM 100 TIMES
PERFORM UNTIL
PERFORM UNTIL EOF = 'S'
Muito usado em batch.
☕💣 PADRÕES PROFISSIONAIS
11. Padrões de Nomes
Programador júnior:
01 X.
01 Y.
Programador profissional:
01 WS-SALDO-CLIENTE.
01 WS-LIMITE-CREDITO.
Prefixos comuns
| Prefixo | Significado |
|---|---|
| WS | Working Storage |
| LK | Linkage |
| FD | File Description |
| IN | Entrada |
| OUT | Saída |
Parágrafos
Ruim:
1000.
Bom:
1000-LER-CLIENTE.
2000-PROCESSAR-CLIENTE.
3000-EMITIR-RELATORIO.
☕💣 ARQUIVOS E RELATÓRIOS
12. Arquivos Sequenciais
A base histórica do COBOL.
Imagine uma fita magnética.
Leitura:
READ ARQ-CLIENTE
Fluxo clássico:
OPEN INPUT ARQ
PERFORM UNTIL EOF
READ ARQ
END-PERFORM
CLOSE ARQ
13. Relatórios
Objetivo:
Transformar dados em informação.
Exemplo:
RELATÓRIO DE VENDAS
TOTAL VENDIDO:
R$ 1.500.000
Aspectos importantes:
Cabeçalho
Detalhes
Totais
Quebras de controle
Quebra de Controle
Exemplo:
Departamento A
Total A
Departamento B
Total B
Técnica extremamente usada em batch.
☕💣 NÍVEL CORPORATIVO
14. Arquivos Indexados
Aqui o aluno entra no mundo dos bancos e seguradoras.
Sequencial
Procurar conta 9000
1
2
3
4
...
9000
Lento.
Indexado
Índice → Registro
Busca quase instantânea.
Exemplo VSAM KSDS:
READ CLIENTE-KSDS
KEY IS CPF
15. Tabelas Internas
Equivalente aos arrays modernos.
01 TAB-CLIENTES.
05 CLIENTE OCCURS 100 TIMES.
Acesso:
CLIENTE(15)
Busca binária:
SEARCH ALL
Tema importantíssimo para entrevistas.
16. Subprogramas
Onde o aluno começa a pensar como arquiteto.
Programa principal:
CALL 'CALCIR'
Subprograma:
LINKAGE SECTION.
Recebe parâmetros.
Benefícios:
Reuso
Manutenção
Modularidade
Padronização
O QUE ESTÁ FALTANDO PARA O MERCADO ATUAL?
Se eu fosse enriquecer esse módulo para formar um desenvolvedor COBOL moderno, incluiria também:
Módulo Extra 1 – JCL Básico
JOB
EXEC
DD
Condições de execução
Return Codes
Módulo Extra 2 – VSAM
KSDS
ESDS
RRDS
Alternates Index
Módulo Extra 3 – DB2
SELECT
INSERT
UPDATE
CURSOR
Módulo Extra 4 – CICS
MAPS
COMMAREA
Pseudo-conversação
Módulo Extra 5 – Debugging
Abend S0C7
Abend S0C4
FILE STATUS
CEEDUMP
SYSUDUMP
Módulo Extra 6 – Boas Práticas de Mainframe
Naming standards
Estrutura de parágrafos
Controle de versões
Revisão de código
Performance
Segurança RACF
Visão de carreira do Padawan COBOL
A evolução típica é:
Padawan
↓
Programador Júnior
↓
Programador Pleno
↓
Programador Sênior
↓
Analista de Sistemas
↓
Arquiteto Mainframe
↓
Especialista Corporativo
O segredo não está em decorar comandos COBOL, mas em compreender profundamente processamento de dados, regras de negócio, arquivos, bancos de dados, performance e arquitetura corporativa, pois é exatamente isso que diferencia um simples codificador de um verdadeiro Jedi do Mainframe. ☕💣🚀
