[trad] Refatorando COBOL para Java com Agentes de IA
A modernização de sistemas em COBOL é um dos desafios mais urgentes enfrentados por empresas atualmente. O Gartner estimou que existem mais de 200 bilhões de linhas de código COBOL em operação, executando 80% dos sistemas empresariais do mundo. Em 2020, o COBOL ainda era responsável por 95% dos processos de transação com cartões de crédito e débito.
O desafio é crítico: 47% das organizações atualmente têm dificuldade em preencher cargos que exigem COBOL, com salários crescendo 25% ao ano. Até 2027, 92% dos desenvolvedores restantes de COBOL terão se aposentado. As abordagens tradicionais de modernização têm apresentado altas taxas de falha, já que a sintaxe única do COBOL dificulta o trabalho de equipes humanas. Agora, a IA está alcançando o que exércitos de desenvolvedores não conseguiram: análise, transformação e verificação automatizadas de código em escala.
Uma abordagem de refinamento iterativo
Converter simplesmente a sintaxe de COBOL para Java não é suficiente — o código convertido precisa preservar a lógica de negócio, seguir as convenções do Java e ser mantido por equipes de desenvolvimento modernas.
Na OpenHands, uma das abordagens mais eficazes que encontramos é o padrão de refinamento iterativo usando múltiplos agentes em um ciclo de feedback:
- Um agente de refatoração converte arquivos COBOL em Java
- Um agente de crítica avalia a qualidade de cada conversão e atribui uma pontuação
- Se a pontuação estiver abaixo do limite de qualidade, o processo se repete com base no feedback da crítica
O resultado é mais do que apenas código executável: é código que reproduz fielmente o original e atende aos padrões de qualidade e manutenibilidade exigidos.
Como funciona
A ideia é simples: um agente realiza o trabalho, outro verifica o resultado e, se não estiver bom o suficiente, o primeiro tenta novamente com base no feedback. Veja como isso se parece em código usando o OpenHands SDK:
While current_score < QUALITY_THRESHOLD and iteration < MAX_ITERATIONS:
# Agente de refatoração converte COBOL para Java
refactoring_conversation.send_message(refactoring_prompt)
refactoring_conversation.run()
# Agente de crítica avalia a conversão
critique_conversation.send_message(critique_prompt)
critique_conversation.run()
# Analisa a pontuação e decide se deve continuar
current_score = parse_critique_score(critique_file)
O agente de refatoração recebe instruções sobre os requisitos da conversão: preservar a lógica de negócio, usar convenções de nomenclatura Java, implementar tratamento de erros e adicionar documentação.
O agente de crítica avalia cada arquivo convertido quanto à correção, qualidade do código, completude e boas práticas — gerando um relatório estruturado com problemas específicos a serem corrigidos. Se o código não atingir o padrão especificado, o agente de refatoração executa novamente com base no feedback, aplicando melhorias direcionadas.
Exemplo
Aqui está um programa COBOL de gerenciamento de clientes:
1000 - MAIN-PROCESS.
DISPLAY "CUSTOMER MANAGEMENT SYSTEM"
EVALUATE TRUE
WHEN OP-ADD
PERFORM 2000-ADD-CUSTOMER
WHEN OP-UPDATE
PERFORM 3000-UPDATE-CUSTOMER
WHEN OP-DELETE
PERFORM 4000-DELETE-CUSTOMER
END - EVALUATE.
O agente converte isso em Java idiomático:
public class CustomerManagement {
public void mainProcess() {
System.out.println("CUSTOMER MANAGEMENT SYSTEM");
switch (operation) {
case ADD -> addCustomer();
case UPDATE -> updateCustomer();
case DELETE -> deleteCustomer();
default -> System.out.println("INVALID OPERATION");
}
}
}
Experimente
O exemplo completo de refinamento iterativo está disponível no OpenHands SDK. Assim que os PRs pendentes forem mesclados, você poderá encontrá-lo em:
- Código: examples/01_standalone_sdk/31_iterative_refinement.py
- Documentação: Iterative Refinement Guide
Para executar o exemplo:
export LLM_API_KEY="sua-api-key"
cd software-agent-sdk
uv run python examples/01_standalone_sdk/31_iterative_refinement.py
Para arquivos COBOL reais, você pode usar a aplicação AWS CardDemo, que fornece um aplicativo de mainframe representativo para testar abordagens de modernização.
Escalando a aplicação com o Large Codebase SDK
O exemplo de refinamento iterativo funciona bem para bases de código pequenas e médias. Mas sistemas corporativos COBOL podem ter milhões de linhas em milhares de programas, com interdependências complexas.
Para esses projetos de modernização em larga escala, desenvolvemos o OpenHands Large Codebase SDK. Esse kit estende o padrão de refinamento iterativo com:
- Ferramentas de análise de dependências que identificam componentes independentes e a ordem ótima de migração
- Orquestração paralela de agentes para processar múltiplos arquivos simultaneamente
- Dashboards de acompanhamento de progresso para monitorar o status geral da modernização
- Verificação de equivalência semântica para garantir que o novo aplicativo Java se comporte exatamente como o sistema COBOL legado
O Large Codebase SDK também inclui fluxos de trabalho especializados de refatoração de COBOL que compreendem padrões comuns de mainframe — transações CICS, jobs JCL, manipulação de arquivos VSAM — e os convertem em equivalentes apropriados em Java.
Saiba mais
- Entre em contato com nossa equipe para discutir seu caso de uso.
- Junte-se à nossa comunidade no Slack para trocar experiências com outros profissionais enfrentando desafios semelhantes.
Tradução pirata do artigo da OpenHands sobre Refactoring COBOL to Java with AI Agents
Citação do artigo original
OpenHands. 2025.
“Refactoring COBOL to Java with AI Agents.”
OpenHands Blog, December 18, 2025.
https://openhands.dev/blog/20251218-cobol-to-java-refactoring