Skip to main content

Program Analysis and Reorganization, as a Service

Article Category

Article available in the folowing languages:

Un’analisi software adeguata al complesso mondo odierno

L’analisi avanzata può aiutare i programmatori professionisti a sviluppare software più affidabili ed efficaci, nonché a stare al passo con le esigenze della nostra era digitale.

Economia digitale

L’analisi statica di programmi è una tecnica informatica che prevede la stima di tutti i possibili risultati di un programma software. Un’analisi tipica potrebbe prendere in considerazione tutti i codici che possono essere eseguiti, o tutti i modi in cui un programma è in grado di comunicare con gli utenti o con la rete. «I programmatori professionisti utilizzano i risultati dell’analisi statica per migliorare il loro software, o rendendolo più efficiente o risolvendo errori di programmazione», spiega Yannis Smaragdakis, coordinatore del progetto PARSe e professore presso il dipartimento di informatica e telecomunicazioni dell’Università di Atene, Grecia. «Ad esempio, un’analisi può dire a un programmatore quali parti del codice sicuramente non saranno mai eseguite. Questo codice può allora essere rimosso».

Un mondo complesso

Una sfida importante consiste nel fatto che l’innovazione tecnologica stia progredendo costantemente. «I programmi informatici oggi sono fra le cose più complesse che l’umanità abbia mai creato», fa notare Smaragdakis. Tale complessità è cresciuta esponenzialmente negli ultimi decenni. Al tempo stesso, il software è diventato sempre più importante nella nostra vita di tutti i giorni. Il software avanzato è ovunque, dalle app che scarichiamo nei nostri smartphone, alla modellizzazione statistica utilizzata dalle società di internet per raccogliere e interpretare ingenti quantità di dati. «Siamo di fronte a un’ingente e sempre crescente richiesta di un software affidabile ed efficiente», spiega. «Ciò significa che i programmatori necessitano di tecniche di analisi avanzate in grado di valutare anche i programmi più complessi». Il progetto PARSe è stato lanciato nel 2015 per rispondere a questa esigenza. «Il nostro obiettivo era quello di collegare la ricerca dell’analisi statica più recente con le applicazioni di sviluppo software», spiega Smaragdakis. A tal fine, il team del progetto ha sviluppato un prototipo di interfaccia utente basato sul web, che fornisce ai programmatori l’accesso all’analisi e consente loro di navigare più agevolmente attraverso il codice di un grosso programma. I programmatori possono usare il servizio di analisi statica per porre quesiti sostanziali di comprensione, ad esempio sulle vulnerabilità in materia di sicurezza. I quesiti ricevono poi una risposta con l’aiuto di algoritmi sviluppati nel corso del precedente progetto SPADE, finanziato dal CER. Integrando questi algoritmi in un’interfaccia utente basata sul web, il progetto PARSe ha portato questa ricerca ad una fase ulteriore.

Accesso all’analisi avanzata

Smaragdakis confida che il prototipo possa aiutare i programmatori professionisti a ottimizzare il codice e a rilevare i bug anche nei software più complessi. «Si tratta di un compito importante nello sviluppo software moderno», fa notare. «Le grandi organizzazioni dedicano notevoli somme di denaro all’analisi del programma e al supporto dello sviluppo. Le recenti acquisizioni delle società di analisi statica hanno fatto registrare importi di diverse centinaia di migliaia di Euro». In tale contesto, l’eventuale sviluppo e commercializzazione degli strumenti di analisi del programma di prossima generazione potrebbero essere un importante risultato del progetto. Sono stati compiuti dei passi in avanti per preparare la tecnologia per il mercato. «Abbiamo sviluppato uno strumento di ottimizzazione Android per distribuire il programma su telefoni e tablet», aggiunge Smaragdakis. «Ciò consentirà ai programmatori di consultare tutto il codice che hanno sviluppato. Le soluzioni attualmente sul mercato sono altamente complesse e inclini all’errore». Attualmente si sta esplorando il prototipo per un’eventuale commercializzazione in collaborazione con l’acceleratore di imprenditorialità dell’Università di Atene. «Spero un giorno di vedere il prototipo PARSe evolvere in uno strumento che venga ampiamente adottato», racconta. «È la strada giusta per introdurre una ricerca nell’analisi statica più avanzata verso uno sviluppo software diffuso».

keywords

PARSe, codice, programmatore, software, digitale, Android, rete, internet