Predicting the Impact of Batch Refactoring Code Smells on Application Resource Consumption

06/27/2023
by   Asif Imran, et al.
0

Automated batch refactoring has become a de-facto mechanism to restructure software that may have significant design flaws negatively impacting the code quality and maintainability. Although automated batch refactoring techniques are known to significantly improve overall software quality and maintainability, their impact on resource utilization is not well studied. This paper aims to bridge the gap between batch refactoring code smells and consumption of resources. It determines the relationship between software code smell batch refactoring, and resource consumption. Next, it aims to design algorithms to predict the impact of code smell refactoring on resource consumption. This paper investigates 16 code smell types and their joint effect on resource utilization for 31 open source applications. It provides a detailed empirical analysis of the change in application CPU and memory utilization after refactoring specific code smells in isolation and in batches. This analysis is then used to train regression algorithms to predict the impact of batch refactoring on CPU and memory utilization before making any refactoring decisions. Experimental results also show that our ANN-based regression model provides highly accurate predictions for the impact of batch refactoring on resource consumption. It allows the software developers to intelligently decide which code smells they should refactor jointly to achieve high code quality and maintainability without increasing the application resource utilization. This paper responds to the important and urgent need of software engineers across a broad range of software applications, who are looking to refactor code smells and at the same time improve resource consumption. Finally, it brings forward the concept of resource aware code smell refactoring to the most crucial software applications.

READ FULL TEXT
research
08/14/2020

The Impact of Auto-Refactoring Code Smells on the Resource Utilization of Cloud Software

Cloud-based software-as-a-service (SaaS) have gained popularity due to t...
research
05/23/2020

Profiling Resource Utilization of Bioinformatics Workflows

We present a software tool, the Container Profiler, that measures and re...
research
10/11/2020

Towards Accurate and Reliable Energy Measurement of NLP Models

Accurate and reliable measurement of energy consumption is critical for ...
research
04/28/2023

Does Code Smell Frequency Have a Relationship with Fault-proneness?

Fault-proneness is an indication of programming errors that decreases so...
research
11/13/2021

Refactoring for Reuse: An Empirical Study

Refactoring is the de-facto practice to optimize software health. While ...
research
03/25/2022

Assessing the impacts of decomposing a monolithic application for microservices: A case study

Monolithic applications are being decomposed into microservices architec...
research
03/08/2022

Quantifying Daily Evolution of Mobile Software Based on Memory Allocator Churn

The pace and volume of code churn necessary to evolve modern software sy...

Please sign up or login with your details

Forgot password? Click here to reset