The detection of performance issues in Java-based applications is not trivial since many factors concur to poor performance, and software engineers are not sufficiently supported for this task. The goal of this manuscript is the automated detection of performance problems in running systems to guarantee that no quality-based hinders prevent their successful usage. Starting from software performance antipatterns, i.e., bad practices (e.g., extensive interaction between software methods) expressing both the problem and the solution with the purpose of identifying shortcomings and promptly fixing them, we develop a framework that automatically detects seven software antipatterns capturing a variety of performance issues in Java-based applications. Our approach is applied to real-world case studies from different domains, and it captures four real-life performance issues of Hadoop and Cassandra that were not predicted by state-of-the-art approaches. As empirical evidence, we calculate the accuracy of the proposed detection rules, we show that code commits inducing and fixing real-life performance issues present interesting variations in the number of detected antipattern instances, and solving one of the detected antipatterns improves the system performance up to 50%.

Trubiani, C., Pinciroli, R., Biaggi, A., Arcelli Fontana, F. (2023). Automated Detection of Software Performance Antipatterns in Java-Based Applications. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 49(4), 2873-2891 [10.1109/TSE.2023.3234321].

Automated Detection of Software Performance Antipatterns in Java-Based Applications

Pinciroli, R;Biaggi, A;Arcelli Fontana, F
2023

Abstract

The detection of performance issues in Java-based applications is not trivial since many factors concur to poor performance, and software engineers are not sufficiently supported for this task. The goal of this manuscript is the automated detection of performance problems in running systems to guarantee that no quality-based hinders prevent their successful usage. Starting from software performance antipatterns, i.e., bad practices (e.g., extensive interaction between software methods) expressing both the problem and the solution with the purpose of identifying shortcomings and promptly fixing them, we develop a framework that automatically detects seven software antipatterns capturing a variety of performance issues in Java-based applications. Our approach is applied to real-world case studies from different domains, and it captures four real-life performance issues of Hadoop and Cassandra that were not predicted by state-of-the-art approaches. As empirical evidence, we calculate the accuracy of the proposed detection rules, we show that code commits inducing and fixing real-life performance issues present interesting variations in the number of detected antipattern instances, and solving one of the detected antipatterns improves the system performance up to 50%.
Articolo in rivista - Articolo scientifico
Dynamic analysis; Java-based applications; software performance antipatterns;
English
10-gen-2023
2023
49
4
2873
2891
open
Trubiani, C., Pinciroli, R., Biaggi, A., Arcelli Fontana, F. (2023). Automated Detection of Software Performance Antipatterns in Java-Based Applications. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 49(4), 2873-2891 [10.1109/TSE.2023.3234321].
File in questo prodotto:
File Dimensione Formato  
Trubiani-2023-TSE.pdf

accesso aperto

Descrizione: CC BY 4.0 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/
Tipologia di allegato: Publisher’s Version (Version of Record, VoR)
Licenza: Creative Commons
Dimensione 2.61 MB
Formato Adobe PDF
2.61 MB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/416337
Citazioni
  • Scopus 4
  • ???jsp.display-item.citation.isi??? 1
Social impact