IBM: l'AI generativa per la modernizzazione software

IBM watsonx Code Assistant for Z trasforma vecchio codice Cobol in equivalente Java e aiuta la modernizzazione delle applicazioni monolitiche

Autore: Redazione ImpresaCity

L'AI generativa viene ormai presentata come uno strumento capace di fare quasi tutto e con ottimi risultati, a patto di poter addestrare adeguatamente i suoi algoritmi di apprendimento. La realtà poi ci dice che non sempre è così, ma in alcuni campi vale effettivamente la pena sperimentare. Specialmente in quelli in cui le competenze e il tempo del personale umano non sembrano mai abbastanza.

Tra questi casi d'uso c'è certamente lo sviluppo software. Tutte le principali aziende del campo, e non da ora, si sono attrezzate per creare bot-sviluppatori che possano quantomeno affiancare gli sviluppatori veri, aiutandoli in alcuni compiti di base. Ora IBM spinge in maniera particolare questo approccio in un ambito specifico dove lo skill shortage è molto sentito: la modernizzazione delle applicazioni mainframe.

Il problema è noto. Il mainframe è sempre al cuore degli ambienti IT più mission critical e grandi aziende e istituzioni contano ancora su milioni di righe di codice Cobol vecchio di decenni. Questo codice è il frutto del lavoro di molti esperti che non sono più in azienda e la cui esperienza non è stata replicata o sostituita. Il rischio che possa non funzionare più come dovrebbe esiste e non va sottovalutato.

Le aziende lo sanno ed è per questo che da anni si parla di modernizzazione delle applicazioni legacy. Un processo lungo, costoso e complicato che raramente porta risultati ottimali. Secondo IBM questo processo può essere drasticamente semplificato usando l'AI generativa, nello specifico usando un nuovo modulo battezzato IBM watsonx Code Assistant for Z.

IBM watsonx Code Assistant for Z è un servizio cloud per la generazione di codice, basato sulle tecnologie di machine learning della famiglia watsonx. È un modello mirato e basato sui dati che IBM stessa ha raccolto, ottimizzato per casi d'uso molto specifici in quanto a linguaggi e ambienti. Un punto di forza è che può essere addestrato a partire dai dati e dal codice dello specifico utente, per avere risultati migliori.

Da codice a codice

Per IBM l'obiettivo della AI generativa, nel caso della modernizzazione, è partire da codice Cobol preesistente non ottimizzato per arrivare a codice Java che svolge le stesse operazioni. Oppure, in alternativa, a codice ancora Cobol ma ottimizzato e modularizzato, invece che monolitico e poco chiaro. Per raggiungere questi obiettivi si passa attraverso tre fasi definite Refactor, Transform, Validate.

La prima fase di Refactor analizza il codice di partenza per capire nel dettaglio cosa effettivamente fa una applicazione monolitica. Soprattutto, per scomporla in maniera modulare suddividendo il suo codice nelle parti che gestiscono servizi di business specifici. In questo modo, ciascun servizio può essere gestito e manutenuto nel tempo con maggiore semplicità e separatamente dagli altri.

La fase di Transform è quella dove si compie in maniera più evidente la "magia" dell'AI generativa. Il codice Cobol viene convertito in codice Java equivalente e ottimizzato per l'ambiente IBM Z, in maniera trasparente per le sorgenti dati, gli application server e altri moduli applicativi.

Come accennato, in alternativa si può decidere di rimanere con codice Cobol, ma ottimizzato e modularizzato grazie all'analisi della parte Refactor. IBM watsonx Code Assistant for Z supporta anche una combinazione dei due approcci, garantendo che i nuovi moduli Java e Cobol siano pienamente interoperabili fra loro e con il resto del sistema Z.

La modernizzazione si conclude con la fase di Validate, in cui il nuovo codice viene messo alla prova attraverso una serie di test che sono anch'essi generati via AI. I test servono per garantire che i nuovi moduli siano effettivamente equivalenti a quelli di partenza e operino come è previsto che facciano.

Siamo quindi davanti alla modernizzazione resa finalmente immediata? Non proprio, ammette IBM. Code Assistant for Z può essere un notevole aiuto ma l'AI è sempre e solo uno strumento di supporto. Il nuovo tool di IBM genera codice, certamente, ma questo va comunque analizzato e verificato da sviluppatori umani in base alla loro esperienza.

Anche per questo - ma non solo, è proprio una questione di approccio generale - Code Assistant for Z non va considerato come uno strumento "totale" che converte di colpo e in toto una applicazione legacy in una sinfonia di software Java modulare. Al di là della fattibilità tecnica di un salto del genere, sarebbe troppo rischioso dal punto di vista della business continuity.

La modernizzazione resta un processo che va portato avanti passo per passo, intervenendo man mano sulle varie componenti di business e con la velocità che lo staff IT dell'azienda utente considera più opportuna. In fondo, tecnologie a parte, stiamo pur sempre parlando delle applicazioni che "muovono" sistemi e business estremamente complessi che nessuno vorebbe vedersi bloccare. Anche in nome della modernizzazione.


Visualizza la versione completa sul sito

Informativa
Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella cookie policy. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, consulta la cookie policy. Chiudendo questo banner, acconsenti all’uso dei cookie.