La società veronese ha realizzato il primo strumento informatico al mondo in grado, con il metodo dell’interpretazione astratta, di individuare automaticamente e con precisione assoluta i “bug” dei programmi scritti con linguaggio Java e Android
Il Gruppo Corvallis ha acquisito il 65% delle quote di Julia, società di software nata nel 2010 come spin off dell’Università di Verona. Julia è la prima delle sei start up dell’ateneo veronese a uscire dall’incubatore universitario. È il risultato di dieci anni di studi e di ricerche sviluppate da un team di docenti e ricercatori italiani in collaborazione con università internazionali. Lo spin off veronese vanta già importanti collaborazioni, come quelle con la Air Force, l’Aeronautica militare degli Stati Uniti, e con alcuni dei più importanti gruppi bancari e assicurativi italiani. Julia ha elaborato il primo strumento informatico basato sull’“interpretazione astratta”, regola scientifica riconosciuta a livello internazionale, per l’individuazione automatica, con un grado di accuratezza assoluta, dei bug in programmi scritti in linguaggio Java e Android.
Per Corvallis, tra le top 20 del mercato italiano dell’information technology, 111 milioni di fatturato, 1300 dipendenti, si tratta della prima operazione di acquisizione dopo l’emissione, nel dicembre scorso, di un minibond dal valore di 8 milioni di euro destinato a sostenere i piani di crescita del gruppo. L’investimento di Corvallis, che sarà superiore a un milione di euro, servirà come supporto per l’industrializzazione del prodotto e per la crescita dell’azienda. Il nuovo consiglio di amministrazione di Julia ha riconfermato Gianni Zucchini come amministratore delegato.
Julia opera in un settore destinato ad avere una rapida crescita: quello dei Software Code Analyzer (SCA) rivolto alla prevenzione del rischio legato agli errori dei programmi software. Un ambito di applicazione che può estendersi a tutti i mercati nei quali è presente un software, salvaguardando le imprese dalle conseguenze dei danni e delle perdite derivanti da “bug” critici che possono emergere anche dopo che il programma software sia stato realizzato e reso disponibile all’utente finale. Il suo utilizzo può abbracciare l’industria, l’elettronica, le telecomunicazioni, la finanza, la difesa e la sanità.
«Crediamo fortemente nel futuro della tecnologia e nella ricerca applicata – ha commentato Antonio Santocono, presidente di Corvallis Spa – e abbiamo deciso di investire su un prodotto adatto a un numero sempre più ampio di mercati. La sicurezza informatica, in un mondo sempre più permeato dai software, è un valore aggiunto da perseguire sia per le imprese che per i consumatori».
«Molti bug – spiega Fausto Spoto, fondatore di Julia e membro dell’attuale team di ricerca con Roberto Giacobazzi e Frédéric Mesnard – si manifestano dopo che il software è stato reso operativo, provocando, nei casi più fortunati, la perdita di dati e di tempo. Nei casi peggiori, l’errore può addirittura bloccare apparecchiature telefoniche, medico-operatorie, industriali, militari. La ricerca automatica preventiva è di interesse crescente anche per i produttori di software che intendono prevenire danni economici ma anche di immagine».
Julia, il «cacciatore di bug»
Julia, acronimo di Java Universal Interpretation and Abstraction, è un analizzatore di codice Java sviluppato, negli ultimi 10 anni, nell’ambito di progetti di ricerca coordinati da un team italo-francese con il coinvolgimento dell’Università di Verona e quella de La Réunion. Il team di ricerca accademico, che continuerà a detenere il 35% del capitale sociale, è composto da Fausto Spoto, docente di informatica all’università di Verona, Roberto Giacobazzi, ex preside della Facoltà di Scienze MM.FF.NN. dell’Università di Verona e Frédéric Mesnard, ex direttore del Dipartimento di matematica e informatica a La Réunion.
Julia è un vero e proprio “cacciatore di bug” in programmi Java e Android. Al mondo esistono poche decine di strumenti creati allo stesso scopo. Ciò che distingue Julia dagli altri competitor e che la rende un prodotto unico al mondo per livelli di precisione ed efficacia è l’utilizzo delle più moderne e riconosciute tecniche di interpretazione astratta che consentono un’analisi del software in modalità statica e semantica. Julia non richiede il codice sorgente del programma analizzato ma solo il bytecode compilato. Il metodo riduce il numero di stati possibili del sistema tramite l’astrazione e consente, grazie alla disponibilità di memoria e potenza di calcolo, di analizzare tutte le variabili del programma in ogni cammino di esecuzione. Il tool elenca una serie di warning (potenziali errori) che devono essere analizzati a cura del programmatore, che ha in definitiva la responsabilità di decidere se la segnalazione è effettivamente un problema e di correggere o irrobustire il programma. Questo metodo garantisce di trovare tutti i bug del tipo indagato.
I principali competitors sul mercato, invece, fanno largo uso della tecnica di pattern-matching per rilevare errori: semplificando molto, questa tecnica consiste nel cercare meccanicamente nei file sorgente “sequenze” riconosciute come tipiche fonti di errore. Così facendo, lo strumento si dimostra incapace di individuare tutti gli errori, ma solo quelli che rientrano nel pattern cercato Inoltre, la necessità di disporre dei file sorgenti spesso impedisce di analizzare librerie di terze parti.
Nello sviluppo del Software utilizzare gli SCA (Software Code Analyzer) consente di velocizzare a vari livelli la diagnostica in fase di codifica, di test e nelle fasi successive legate alla gestione delle patch e degli aggiornamenti. La valenza degli SCA è strategica anche rispetto al tema della sicurezza in quanto gli hacker costruiscono i loro attacchi principalmente sui difetti e sui malfunzionamenti di un programma. Garantendo la qualità dello sviluppo, gli strumenti automatici di analisi non solo aumentano l’efficienza del processo di programmazione ma contribuiscono a garantire l’invulnerabilità del software e quindi la reputazione dell’azienda.
Anticipare l’uso di uno SCA nel SLM (Software Lifecycle Management), consente dunque di snellire i processi, abbattere i costi di debugging e ottenere software più sicuri, funzionali, utilizzabili, disponibili, efficienti, manutenibili e portabili.
Il mercato del “Automated Software Quality”, ASQ, in cui Julia come SCA si inserisce, presenta un notevole gap tra la necessità delle aziende di migliorare la loro produttività e la mancanza di soluzioni in grado di garantirlo. Meno di 10 players principali hanno creato un mercato mondiale di oltre 2,4 miliardi di dollari, in continua crescita.