The S2 Research Group was awarded with the ‘Runner-Up Best Paper Award’ at the 5th International Conference on ICT for Sustainability (ICT4S 2018), which was held in Toronto in May this year.
The award was given for the paper ‘Empirical Evaluation of the Energy Impact of Refactoring Code Smells’, authored by members of the S2 Group. The study investigates to what extent refactoring code smells affects the energy consumption of software systems. In particular, through empirical experimentation, it was shown that refactoring certain code smells can lead to an energy efficiency improvement up to 49%. For further details, the full paper is available here.
This research was conducted as part of the ongoing effort of the S2 Group to expand our knowledge in the development and evaluation of energy-efficient software.
Software energy efficiency has gained the increasing attention of the research community. How to improve it, however, still lacks evidence. Specifically, the impact of code smell refactoring on energy efficiency has been scarcely investigated. In the exploratory study here reported, we investigate the impact on performance and energy consumption of refactoring well-known code smells on Java software applications. In order to understand if software metrics can be used as indicators of the energy impact of refactoring, we also measured the variation caused by refactoring on a set of well-established software metrics. We conducted a controlled experiment using state-of-the-art power measurement equipment. Statistical hypothesis testing and effect size estimation were performed on the experimental results, which show that in one out of three applications, refactoring each smell significantly impacted power- and energy consumption. E.g., refactoring Feature Envy and Long Method smells led to a 49% energy efficiency improvement. No software metric, however, significantly correlated with execution time, power or energy consumption. In conclusion, refactoring code smells resulted to be a viable process to significantly improve software energy efficiency. The magnitude of the impact may depend on application properties, e.g. size or age. Further research is needed to understand the relationship between software metrics and energy efficiency.