Il software può svolgere un ruolo fondamentale nel mondo moderno. Tuttavia, il suo sviluppo, manutenzione e gestione rimangono costosi e laboriosi: una sfida che Eldan Cohen dell’Università di Toronto intende affrontare.
Cohen, professore assistente presso il Dipartimento di Ingegneria Meccanica e Industriale della Facoltà di Scienze Applicate e Ingegneria, sta guidando un team di ricercatori per sviluppare nuovi sistemi incentrati sull’uomo algoritmi di apprendimento automatico per riassumere automaticamente uno snippet di codice in un linguaggio chiaro e conciso, un processo noto come riepilogo del codice sorgente.
Tali riepiloghi hanno lo scopo di catturare lo scopo del codice, aiutando gli sviluppatori a comprendere, mantenere e lavorare con la base di codice. Sono particolarmente importanti nei grandi progetti di sviluppo software che coinvolgono tecniche di elaborazione del linguaggio naturale e apprendimento automatico.
Sebbene siano state effettuate ricerche significative sull’utilizzo dell’intelligenza artificiale per sviluppare strumenti automatizzati di riepilogo del codice sorgente in grado di generare riepiloghi del codice in linguaggio naturale, Cohen afferma che c’è ancora molto margine di miglioramento.
“Anche i modelli di deep learning all’avanguardia sono soggetti a errori di previsione, producendo riepiloghi che non corrispondono al codice sorgente fornito”, afferma Cohen. “In questi casi, gli sviluppatori di software devono rifiutare il riepilogo proposto e ricorrere alla documentazione manuale del codice.”
Per affrontare questa sfida, Cohen consiglia di sviluppare una tecnica human-in-the-loop per il riepilogo automatizzato del codice che consideri le conoscenze, le preferenze e le intuizioni dello sviluppatore per superare e imparare dagli errori del modello. L’approccio consente agli sviluppatori di partecipare attivamente al processo di generazione di riepiloghi del codice tramite algoritmi di apprendimento automatico e integra le intuizioni umane nel flusso di lavoro di riepilogo automatizzato del codice.
Sta inoltre sviluppando algoritmi specializzati di apprendimento automatico per superare i limiti degli approcci esistenti, tra cui la diversità limitata e i riepiloghi di qualità inferiore.
“Abbiamo intenzione di farlo creando approcci interattivi in cui agli sviluppatori viene presentato un numero limitato di riepiloghi di codice diversi e di alta qualità tra cui scegliere, riducendo il rischio di generare un unico riepilogo errato”, afferma.
L’obiettivo a lungo termine del lavoro di Cohen è migliorare significativamente l’efficacia del riepilogo automatico del codice sorgente. Sviluppando questi approcci human-in-the-loop, Cohen e i suoi colleghi sperano di incorporare il contributo degli sviluppatori in modelli di deep learning all’avanguardia per migliorare la qualità dei riepiloghi del codice generati.
Si prevede che l’approccio avrà un impatto accademico significativo con il potenziale di catalizzare sia la ricerca che l’attività commerciale sull’automazione human-in-the-loop nell’ingegneria del software.
Cohen lo è uno dei 49 ricercatori provenienti da tutta l’U of T – e uno dei quattro della U of T Engineering – supportati nell’ultima tornata dei Connaught New Researcher Awards, che aiuta i docenti all’inizio della carriera a stabilire i loro programmi di ricerca.
“Gli studenti sono coinvolti in tutte le fasi di questo progetto e sono attivamente coinvolti nello sviluppo e nella valutazione delle nuove tecniche human-in-the-loop per il riepilogo automatico del codice sorgente”, afferma Cohen. “I fondi di questo premio andranno principalmente a sostenere la loro ricerca”.
Fonte: Università di Toronto
Da un’altra testata giornalistica. news de www.technology.org