- Postagens: 68
- Obrigados Recebidos: 5
Espaço para quem está começando no mundo do mainframe.
Como entender um programa COBOL legado pela primeira vez
- bopnet
-
Autor do Tópico
- Desconectado
- Administrador
-
- I'm free!
Less
Mais
2 horas 46 minutos atrás #135
por bopnet
COBOL is not DEAD!
Como entender um programa COBOL legado pela primeira vez foi criado por bopnet
Receber um programa COBOL legado para analisar pode parecer complicado, principalmente quando o fonte possui milhares de linhas, diversos CALLs, copybooks, acessos a arquivos, comandos SQL e vários anos de manutenção.
A melhor estratégia não é começar lendo o programa linha por linha. Primeiro, procure entender o contexto do processamento e somente depois aprofunde a análise do código.
1. Descubra como o programa é executado
Antes de analisar o fonte, identifique:
2. Leia a IDENTIFICATION DIVISION
Procure informações como:
3. Mapeie as entradas e saídas
Verifique a ENVIRONMENT DIVISION e a FILE SECTION para descobrir:
Se utilizar CICS, procure comandos como:
4. Identifique os copybooks
Os copybooks podem conter:
5. Comece pela PROCEDURE DIVISION
Localize o fluxo principal. Muitos programas apresentam uma estrutura parecida com:
Essa parte funciona como um mapa resumido do programa. Depois de entendê-la, analise cada rotina separadamente.
6. Mapeie PERFORM, CALL e GO TO
Crie uma lista contendo:
7. Identifique as regras de negócio
Procure comandos que alterem o comportamento do processamento:
8. Analise o tratamento de erros
Verifique como o programa trata:
9. Monte um mapa do programa
Ao final da primeira análise, registre:
Evite começar refatorando nomes, removendo GO TO ou reorganizando parágrafos antes de compreender o comportamento atual.
Em sistemas legados, uma instrução aparentemente desnecessária pode existir por causa de uma condição operacional, formato de arquivo ou integração que não está documentada no fonte.
Primeiro documente, depois crie testes e somente então avalie uma alteração.
Qual método você utiliza para analisar um programa COBOL desconhecido? Você começa pelo JCL, pelo fluxo principal ou pelos arquivos envolvidos?
A melhor estratégia não é começar lendo o programa linha por linha. Primeiro, procure entender o contexto do processamento e somente depois aprofunde a análise do código.
1. Descubra como o programa é executado
Antes de analisar o fonte, identifique:
- O programa é batch ou on-line?
- É executado por JCL?
- É chamado por outro programa?
- É uma transação CICS?
- Faz parte de uma cadeia de processamento?
- É executado diariamente, mensalmente ou sob demanda?
2. Leia a IDENTIFICATION DIVISION
Procure informações como:
- Nome do programa;
- Objetivo;
- Histórico de alterações;
- Sistemas relacionados;
- Data e motivo das manutenções.
3. Mapeie as entradas e saídas
Verifique a ENVIRONMENT DIVISION e a FILE SECTION para descobrir:
- Arquivos de entrada;
- Arquivos de saída;
- Arquivos indexados;
- Relatórios gerados;
- Layouts utilizados;
- DDNAMEs esperados.
Code:
EXEC SQL
SELECT
END-EXEC
Code:
EXEC CICS
READ
END-EXEC
Os copybooks podem conter:
- Layouts de arquivos;
- Áreas de comunicação;
- Estruturas de tabelas;
- Constantes;
- Códigos de retorno;
- Campos utilizados por vários programas.
5. Comece pela PROCEDURE DIVISION
Localize o fluxo principal. Muitos programas apresentam uma estrutura parecida com:
Code:
0000-PRINCIPAL.
PERFORM 1000-INICIALIZAR
PERFORM 2000-PROCESSAR
UNTIL WS-FIM-ARQUIVO
PERFORM 3000-FINALIZAR
STOP RUN.
6. Mapeie PERFORM, CALL e GO TO
Crie uma lista contendo:
- Rotinas executadas com PERFORM;
- Programas chamados por CALL;
- Desvios realizados por GO TO;
- Pontos de retorno;
- Condições que controlam o fluxo;
- Rotinas de tratamento de erro.
7. Identifique as regras de negócio
Procure comandos que alterem o comportamento do processamento:
- IF;
- EVALUATE;
- COMPUTE;
- ADD e SUBTRACT;
- Comparações de status;
- Validações de datas;
- Atualizações de valores;
- Tratamento de códigos de retorno.
8. Analise o tratamento de erros
Verifique como o programa trata:
- FILE STATUS;
- SQLCODE;
- EIBRESP e EIBRESP2;
- RETURN-CODE;
- Códigos retornados por subprogramas;
- ABENDs;
- Mensagens gravadas no spool.
9. Monte um mapa do programa
Ao final da primeira análise, registre:
- Objetivo do programa;
- Forma de execução;
- Arquivos de entrada e saída;
- Tabelas DB2 acessadas;
- Transações ou recursos CICS;
- Copybooks utilizados;
- Programas chamados;
- Principais regras de negócio;
- Possíveis pontos de risco;
- Dúvidas que precisam ser confirmadas.
Evite começar refatorando nomes, removendo GO TO ou reorganizando parágrafos antes de compreender o comportamento atual.
Em sistemas legados, uma instrução aparentemente desnecessária pode existir por causa de uma condição operacional, formato de arquivo ou integração que não está documentada no fonte.
Primeiro documente, depois crie testes e somente então avalie uma alteração.
Qual método você utiliza para analisar um programa COBOL desconhecido? Você começa pelo JCL, pelo fluxo principal ou pelos arquivos envolvidos?
COBOL is not DEAD!
Por favor Entrar ou Registrar para participar da conversa.