|
Verificare il software significa controllare che esso non contenga errori di
programmazione, inevitabili poiché i programmatori sono esseri umani e posso quindi
introdurre operazioni errate nel software che sviluppano. Gli errori di programmazione
posso essere più o meno dannosi, ma identificarli e limitarne la presenza ha sempre un
costo significativo per le aziende di sviluppo software.
Il software è inoltre via via più complesso, viene sempre più spesso prodotto mediante
assemblaggio di parti scritte in luoghi, tempi e culture diverse e nel contempo governa
processi sempre più diffusi e spesso critici; ecco perché la sua affidabilità è cruciale.
Julia ha sviluppato uno strumento di analisi del software, del tutto automatico,
capace di esaminare il codice informatico e immaginare, prima ancora che il software
venga venduto ed eseguito, tutte le possibili situazioni che potranno verificarsi
durante la sua vita, in modo da isolare potenziali errori e proporli al programmatore
perché possa controllarli ed eliminarli.
Questa tecnologia, nota nel mondo scientifico come analisi statica, è realizzata
con garanzie di correttezza dei risultati. In concreto, le analisi statiche di Julia
identificano tutti gli errori, all'interno di alcune classi di errori tipiche
della programmazione infomatica. Nessun errore è dimenticato dallo strumento di analisi.
Un certo numero di falsi allarmi è presentato agli utilizzatori, insieme ai veri errori,
ma essi sono facilmente scartabili dal programmatore.
La società Julia ha deciso di focalizzarsi sul software sviluppato in due linguaggi
informatici di più elevata diffusione, JAVA e ANDROID.
|
Java è usato per applicazioni d'ufficio, di rete, e per la programmazione dei servizi
di cloud computing. Ma Java è anche usato per la programmazione di dispositivi mobili
come i Blackberry. Android è, invece, il linguaggio in cui si realizza il software
imbarcato su dispositivi mobili basati sul sistema operativo Android, come telefoni
cellulari e tablet. Entrambi i linguaggi hanno un forte grado di penetrazione nel
mercato informatico e stanno guadagnando terreno anche in ambiti dove tradizionalmente
venivano preferiti linguaggi di programmazione più anziani, come il C per le applicazioni
in tempo reale (controllo aereo, controllo di automobili e controllo industriale in
genere).
I punti di forza del software Julia sono sicuramente la sua “correttezza”
(i.e. categoricità dei risultati: nessun errore residuo è ammesso) ma anche la sua
integrazione in un contesto di cloud computing, in cui le verifiche ed analisi del
software vengono effettuate da un server remoto, senza bisogno di istallare software
complesso sulla propria macchina. Il server può essere liberamente accessibile,
per l'analisi di software aperto, oppure proprietario, per l'analisi di software
realizzato all'interno di una ben precisa società.
La potenza del sistema di analisi e verifica di Julia è stata dimostrata
recentemente, quando è stato possibile analizzare le applicazioni di esempio
fornite dalla Google per insegnare a programmare nel linguaggio Android.
Sono stati identificati, in modo del tutto automatico, ben 7 errori in tale software
di esempio (tutoring). La superiorità di questi risultati è evidente se si confrontano
con quelli di prodotti concorrenti, che non identificano nessuno di tali errori.
|