IBM Research ha presentato ScarfBench, un benchmark aperto progettato per valutare quanto bene gli agenti AI gestiscono la migrazione di framework Java enterprise. Il benchmark rivela che la configurazione e le dipendenze runtime sono gli ostacoli più grandi, non la traduzione del codice.

I recenti progressi negli agenti di codifica hanno suscitato entusiasmo intorno alla modernizzazione assistita dall'AI. Ma resta una domanda importante: gli agenti AI possono modernizzare in modo affidabile applicazioni enterprise reali?

I benchmark esistenti per l'ingegneria del software hanno mostrato progressi impressionanti nella correzione di bug e nella generazione di codice, ma la migrazione di framework presenta una sfida fondamentalmente diversa. Il successo richiede non solo la traduzione del codice, ma anche la preservazione del comportamento, l'adattamento dei sistemi di build e la gestione delle dipendenze runtime.

Per colmare questa lacuna, IBM Research ha creato ScarfBench (Self-Contained Application Refactoring Benchmark), un benchmark aperto per valutare gli agenti AI su attività di migrazione tra framework in Enterprise Java. ScarfBench si concentra sulle migrazioni tra tre ecosistemi Java principali: Spring, Jakarta EE e Quarkus.

A differenza dei benchmark tradizionali che confrontano il codice generato con implementazioni di riferimento, ScarfBench valuta se le applicazioni migrate effettivamente compilano, si distribuiscono e preservano il comportamento.

Perché la migrazione è difficile

La migrazione di framework è molto più che sostituire annotazioni. Una semplice migrazione di repository può richiedere modifiche all'iniezione delle dipendenze, alla configurazione della persistenza, alle query e ai descrittori di framework. Piccoli errori in uno qualsiasi di questi elementi possono impedire una distribuzione di successo.

scarf-intro-anatomy

Figura: Esempio di migrazione Spring → Jakarta

La migrazione di framework richiede la traduzione delle semantiche del framework, non solo del codice sorgente.

Presentazione di ScarfBench

ScarfBench fornisce un modo sistematico per valutare gli agenti AI su attività di migrazione di framework Java enterprise. Le applicazioni devono compilare con successo, distribuirsi correttamente e superare la validazione comportamentale. Questo fornisce una misura molto più realistica della qualità della modernizzazione.

Il benchmark include sia attività di migrazione mirate che migrazioni di intere applicazioni.

scarf-intro-fig

Figura: Pipeline di costruzione di ScarfBench

A partire da una tassonomia Java enterprise basata su JSR, migrazioni esperte creano implementazioni verificate su Spring, Jakarta EE e Quarkus.

Come si comportano gli agenti all'avanguardia?

IBM Research ha valutato diversi agenti di codifica all'avanguardia su ScarfBench. Nonostante le buone prestazioni sui benchmark tradizionali di ingegneria del software, la migrazione di framework rimane difficile. I tassi di successo variano considerevolmente tra coppie di framework e le migrazioni di intere applicazioni rimangono particolarmente impegnative.

leaderboard

Figura: Classifica attuale

scarf_aggregate_progression

Figura: Progressione Compila → Distribuisci → Test

Il successo della compilazione supera costantemente quello della distribuzione, che a sua volta supera il successo comportamentale. Il solo successo della build sovrastima significativamente la qualità della migrazione.

sankey

Figura: Risultati della migrazione per framework di destinazione

La difficoltà della migrazione dipende fortemente dal framework di destinazione, con Jakarta EE che si rivela particolarmente impegnativo.

Cosa abbiamo imparato sugli agenti AI per la modernizzazione Java

Oltre a misurare i tassi di successo, ScarfBench aiuta a capire come si comportano gli agenti durante la modernizzazione.

Gli agenti possono dire in modo affidabile quando una migrazione è completa?

Un'applicazione migrata è utile solo se effettivamente compila e funziona. IBM Research ha confrontato i risultati riportati dagli agenti con la verifica indipendente della build.

"Claude Code ha riportato build riuscite per 29 applicazioni su 30. Solo 22 di quelle applicazioni hanno effettivamente compilato con successo. Nel frattempo, l'unica applicazione classificata come fallita dall'agente alla fine ha compilato correttamente."
— IBM Research

Ciò suggerisce che l'autovalutazione dell'agente non dovrebbe essere considerata un segnale affidabile del completamento della migrazione. La validazione indipendente della build e dei test rimane essenziale.

Come navigano gli agenti tra le dipendenze dell'applicazione?

Le migrazioni di framework raramente interessano un singolo file o livello. Le modifiche nella configurazione, nei servizi, nei database e nei componenti web spesso si propagano attraverso l'applicazione.

I livelli più frequentemente visitati sono stati configurazione, web, database e servizi. Le transizioni comuni includevano configurazione ↔ web e servizio ↔ database. Ciò suggerisce che la migrazione è un processo iterativo di risoluzione delle dipendenze, piuttosto che una semplice trasformazione da sorgente a sorgente.

Dove spendono gli agenti la maggior parte del loro sforzo?

Usando la frequenza di rivisitazione dei livelli come indicatore dello sforzo di migrazione, i ricercatori hanno scoperto che la configurazione domina lo sforzo di migrazione. Invece di procedere linearmente, gli agenti tornano ripetutamente agli artefatti legati alla configurazione mentre risolvono differenze di framework e problemi di dipendenze.

Quali sfide non riguardano la trasformazione del codice?

Non tutti i problemi di migrazione originano dal codice sorgente. Gli agenti hanno spesso lottato con problemi ambientali, tra cui incoerenze della cache Docker, problemi di connettività delle porte e problemi con Maven wrapper e strumenti di build. Questi problemi operativi spesso ritardano la validazione anche quando la migrazione del codice sorgente è in gran parte completa.

failure-distribution

Figura: Distribuzione delle modalità di fallimento

I fallimenti di modernizzazione riguardano sistemi di build, ambienti di distribuzione, iniezione delle dipendenze, database, endpoint, asserzioni e infrastruttura.

Punto chiave

La sfida più grande nella modernizzazione dei framework non è tradurre il codice Java. È gestire la rete di dipendenze attraverso configurazione, infrastruttura e ambienti runtime. Mentre gli agenti all'avanguardia possono automatizzare porzioni sostanziali del processo di migrazione, la validazione affidabile e il ragionamento architetturale rimangono critici per ottenere risultati di successo.

ScarfBench aiuta a mettere in luce queste sfide e fornisce un modo standardizzato per misurare i progressi verso una modernizzazione delle applicazioni veramente autonoma.

Esplora ScarfBench

ScarfBench è progettato come una risorsa aperta per ricercatori e professionisti. Le risorse includono un dataset di benchmark, infrastruttura di valutazione, classifica pubblica, documentazione e codice open-source. I ricercatori possono confrontare architetture e tecniche degli agenti. I professionisti possono usare ScarfBench per valutare soluzioni di modernizzazione prima di distribuirle in ambienti di produzione.

  • Sito web: https://scarfbench.info
  • Dataset: https://huggingface.co/datasets/ibm-research/ScarfBench
  • Spazio: https://huggingface.co/spaces/ibm-research/ScarfBench
  • Repository GitHub: https://github.com/scarfbench/scarfbench
  • Classifica: https://scarfbench.info/leaderboard
  • Articolo: https://arxiv.org/abs/2605.06754

La migrazione di framework rimane uno dei più grandi problemi irrisolti nell'ingegneria del software assistita dall'AI. IBM Research spera che ScarfBench aiuti la comunità a misurare i progressi e ad accelerare la prossima generazione di modernizzazione delle applicazioni assistita dall'AI. Il team invita ricercatori, professionisti e autori di framework a contribuire e aiutare a spingere i confini di ciò che gli agenti AI possono ottenere nella modernizzazione del software enterprise.