Qualità del software

Referente: Prof. Oliveto Rocco

Gruppo di lavoro

  • Prof. Simone Scalabrino (Università degli Studi del Molise);
  • Dott.ssa Valentina Piantadosi (Università degli Studi del Molise).

Descrizione

Gli sviluppatori di sistemi software impiegano la maggior parte del tempo dedicato all’evoluzione di tali sistemi per leggere e comprendere codice sorgente già esistente. Se il codice è poco leggibile o comprensibile, il tempo impiegato per condurre tale attività aumenta (insieme al costo di manutenzione) e questo può anche ripercuotersi negativamente sulla qualità stessa del sistema software.

Questo tema di ricerca prevede la definizione e la validazione di tecniche che consentano di:

  1. individuare automaticamente parti del codice che soffrono di scarsa leggibilità/comprensibilità; 
  2. migliorare automaticamente la leggibilità e la comprensibilità del codice; 
  3. supportare gli sviluppatori durante la comprensione del codice. 

Sono particolarmente rilevanti, in questo contesto, anche studi empirici volti ad approfondire le pratiche comunemente usate dagli sviluppatori per leggere e comprendere codice sorgente.

Impatto

L’approccio definito per la predizione della leggibilità è ampiamente utilizzato nella comunità di ricerca in Software Engineering per effettuare studi empirici e definire nuovi approcci in cui si vuole tenere in considerazione tale aspetto. Allo stesso modo, i dataset definiti sono stati sfruttati in diversi altri lavori volti a migliorare ulteriormente la stima di leggibilità e comprensibilità del codice. Infine, il lavoro sull’utilizzo del modello T5 per coding task ha avuto un impatto notevole sulla comunità, ricevendo oltre 60 citazioni in meno di due anni (fonte: Google Scholar).

Pubblicazioni

1 Scalabrino, S., Linares-Vasquez, M., Poshyvanyk, D., & Oliveto, R. (2016, May). Improving code readability models with textual features. In 2016 IEEE 24th International Conference on Program Comprehension (ICPC) (pp. 1-10). IEEE.
2 Scalabrino, S., Bavota, G., Vendome, C., Linares-Vásquez, M., Poshyvanyk, D., & Oliveto, R. (2017, October). Automatically assessing code understandability: How far are we?. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE) (pp. 417-427). IEEE.
3 Scalabrino, S., Bavota, G., Vendome, C., Linares-Vasquez, M., Poshyvanyk, D., & Oliveto, R. (2019). Automatically assessing code understandability. IEEE Transactions on Software Engineering, 47(3), 595-613.
4 Scalabrino, S., Linares‐Vásquez, M., Oliveto, R., & Poshyvanyk, D. (2018). A comprehensive model for code readability. Journal of Software: Evolution and Process, 30(6), e1958.
5 Ponzanelli, L., Scalabrino, S., Bavota, G., Mocci, A., Oliveto, R., Di Penta, M., & Lanza, M. (2017, May). Supporting software developers with a holistic recommender system. In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE) (pp. 94-105). IEEE.
6 Grano, G., Scalabrino, S., Gall, H. C., & Oliveto, R. (2018, May). An empirical investigation on the readability of manual and generated test cases. In Proceedings of the 26th Conference on Program Comprehension (pp. 348-351).
7 Pantiuchina, J., Zampetti, F., Scalabrino, S., Piantadosi, V., Oliveto, R., Bavota, G., & Penta, M. D. (2020). Why developers refactor source code: A mining-based study. ACM Transactions on Software Engineering and Methodology (TOSEM), 29(4), 1-30.
8 Lin, B., Scalabrino, S., Mocci, A., Oliveto, R., Bavota, G., & Lanza, M. (2017, September). Investigating the use of code analysis and NLP to promote a consistent usage of identifiers. In 2017 IEEE 17th International Working Conference on Source Code Analysis and Manipulation (SCAM) (pp. 81-90). IEEE.
9 Piantadosi, V., Fierro, F., Scalabrino, S., Serebrenik, A., & Oliveto, R. (2020). How does code readability change during software evolution?. Empirical Software Engineering, 25, 5374-5412.
10 Traini, L., Di Pompeo, D., Tucci, M., Lin, B., Scalabrino, S., Bavota, G., … & Cortellessa, V. (2021). How software refactoring impacts execution time. ACM Transactions on Software Engineering and Methodology (TOSEM), 31(2), 1-23.
11 Mastropaolo, A., Cooper, N., Palacio, D. N., Scalabrino, S., Poshyvanyk, D., Oliveto, R., & Bavota, G. (2022). Using Transfer Learning for Code-Related Tasks. IEEE Transactions on Software Engineering.
12 Mastropaolo, A., Scalabrino, S., Cooper, N., Palacio, D. N., Poshyvanyk, D., Oliveto, R., & Bavota, G. (2021, May). Studying the usage of text-to-text transfer transformer to support code-related tasks. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE) (pp. 336-347). IEEE.
13 Piantadosi, V., Scalabrino, S., Serebrenik, A., Novielli, N., & Oliveto, R. (2023). Do attention and memory explain the performance of software developers?. Empirical Software Engineering, To Appear.