Qualità del software
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:
- individuare automaticamente parti del codice che soffrono di scarsa leggibilità/comprensibilità;
- migliorare automaticamente la leggibilità e la comprensibilità del codice;
- 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. |