Hi-Fi - Widely Applicable and Usable Automated Program Repair
Persone
(Responsabile)
Rezaalipour M.
(Collaboratore)
Abstract
Nonostante l’indubbio progresso nelle tecniche e nella pratica dell’ingegneria del software, la gran parte del tempo di lavoro dei programmatori non è speso a introdurre nuove funzionalità bensì in una indefessa attività di debugging: scovare e rettificare errori e difetti del software (comunemente e colloquialmente chiamati “bug”). C’è un grande interesse per tecniche e strumenti che possano facilitare il debugging, aiutando i programmatori nella loro lotta quotidiana contro i bug.
Il progetto Hi-Fi si colloca in questo contesto, con l’obiettivo primario di sviluppare tecniche innovative di correzione automatica di programmi (in inglese: automated program repair). L’idea alla base di queste tecniche è di automatizzare il più possibile l’intero processo di debugging, dall’individuare un errore, allo scovarne la probabile causa, fino al suggerire una modifica del codice sorgente che rimuova il comportamento scorretto senza alterare altre funzionalità. Le tecniche di correzione proveranno a generare automaticamente diverse varianti del programma. Se una di queste varianti non presenta difetti ed è immune al bug inizialmente considerato, possiamo proporla come suggerimento a un programmatore che deciderà se è una correzione adeguata che può essere adottata in un contesto più ampio.
Le tecniche sviluppate di Hi-Fi hanno il potenziale di snellire il lavoro di correzione di bug dei programmatori, specialmente nelle parti più ripetitive, lasciandoli liberi di concentrarsi su attività di alto livello e più interessanti. Allo stesso tempo, automatizzare, anche in parte, la correzione di bug può aiutare ad avere software di qualità più elevata — un requisito impellente visto il ruolo sempre più ubiquo del software nel gestire dispositivi, processi, e organizzazioni.