ABSTRACT
This paper introduces the concept of energy debt: a new metric, reflecting the implied cost in terms of energy consumption over time, of choosing a flawed implementation of a software system rather than a more robust, yet possibly time consuming, approach. A flawed implementation is considered to contain code smells, known to have a negative influence on the energy consumption.
Similar to technical debt, if energy debt is not properly addressed, it can accumulate an energy "interest". This interest will keep increasing as new versions of the software are released, and eventually reach a point where the interest will be higher than the initial energy debt. Addressing the issues/smells at such a point can remove energy debt, at the cost of having already consumed a significant amount of energy which can translate into high costs. We present all underlying concepts of energy debt, bridging the connection with the existing concept of technical debt and show how to compute the energy debt through a motivational example.
References
- Areti A., A. Ampatzoglou, P. Avgeriou, and A. Chatzigeorgiou. 2015. Establishing a Framework for Managing Interest in Technical Debt. In Proc. of the 5th Int. Symposium on Business Modeling and Software Design, Vol. 1. SciTePress, 75--85.Google Scholar
- Eric Allman. 2012. Managing Technical Debt. Vol. 55. ACM. 50--55 pages.Google Scholar
- A. Ampatzoglou, A. Michailidis, C. Sarikyriakidis, A. Ampatzoglou, A. Chatzigeorgiou, and P. Avgeriou. 2018. A Framework for Managing Interest in Technical Debt: An Industrial Validation. In Proceedings of the 2018 International Conference on Technical Debt (TechDebt '18). ACM, 115--124. Google Scholar
- A. Chatzigeorgiou, A. Ampatzoglou, A. Ampatzoglou, and T. Amanatidis. 2015. Estimating the breaking point for technical debt. In 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD). 53--56.Google Scholar
- M. Couto, J. P. Fernandes, and J. Saraiva. 2020. Energy Refactorings for Android in the Large and in the Wild. In 2020 IEEE 27th Int. Conference on Software Analysis, Evolution and Reengineering (SANER). London, Ontario, Canada.Google Scholar
- M. Couto, Carção T., J. Cunha, J. P. Fernandes, and J. Saraiva. 2014. Detecting Anomalous Energy Consumption in Android Applications. In Programming Languages, Fernando M. Quintão Pereira (Ed.). LNCS, Vol. 8771. Springer, 77--91.Google Scholar
- Luis Cruz and Rui Abreu. 2017. Performance-based Guidelines for Energy Efficient Mobile Applications. In Proceedings of the 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft '17). IEEE Press, 46--57. Google Scholar
Digital Library
- Luis Cruz and Rui Abreu. 2018. Using Automatic Refactoring to Improve Energy Efficiency of Android Apps. CoRR abs/1803.05889 (2018).Google Scholar
- Ward Cunningham. 1992. The WyCash Portfolio Management System.Google Scholar
- Shuai Hao, D. Li, W. Halfond, and R. Govindan. 2012. Estimating Android Applications' CPU Energy Usage via Bytecode Profiling. In Proc. of the First Int. Workshop on Green and Sustainable Software (GREENS'12). IEEE Press, 1--7. Google Scholar
- Samir Hasan, Zachary King, Munawar Hafiz, Mohammed Sayagh, Bram Adams, and Abram Hindle. 2016. Energy profiles of java collections classes. In Proceedings of the 38th International Conference on Software Engineering. ACM, 225--236. Google Scholar
Digital Library
- M. A. Hoque, M. Siekkinen, K. N. Khan, Y. Xiao, and S. Tarkoma. 2015. Modeling, Profiling, and Debugging the Energy Consumption of Mobile Devices. ACM Comput. Surv. 48, 3 (2015), 39:1--39:40. Google Scholar
- R. Jabbarvand, A. Sadeghi, J. Garcia, S. Malek, and P. Ammann. 2015. EcoDroid: An Approach for Energy-based Ranking of Android Apps. In Proc. of 4th Int. Workshop on Green and Sustainable Software (GREENS '15). IEEE Press, 8--14. Google Scholar
- Phillipe Kruchten, Robert L. Nord, and Ipek Ozkaya. 2012. Technical Debt: From Metaphor to Theory and Practice. https://ieeexplore.ieee.org/document/6336722Google Scholar
- D. Li, S. Hao, W. G. J. Halfond, and R. Govindan. 2013. Calculating Source Line Level Energy Information for Android Applications. In Proc. of 2013 Int. Symposium on Software Testing and Analysis (ISSTA 2013). ACM, 78--89. Google Scholar
Digital Library
- Z. Li, P. Avgeriou, and P. Liang. 2015. A Systematic Mapping Study on Technical Debt and Its Management. J. Syst. Softw. 101, C (March 2015), 193--220. Google Scholar
Digital Library
- L. G. Lima, F. Soares-Neto, P. Lieuthier, F. Castor, G. Melfe, and J. P. Fernandes. 2016. Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional Language. In 2016 IEEE 23rd Int. Conf. on Software Analysis, Evolution, and Reengineering (SANER), Vol. 1. 517--528.Google Scholar
- M. Linares-Vásquez, G. Bavota, C. Bernal-Cárdenas, R. Oliveto, M. Di Penta, and D. Poshyvanyk. 2014. Mining Energy-greedy API Usage Patterns in Android Apps: An Empirical Study. In Proc. of 11th Working Conf. on Mining Software Repositories (MSR 2014). ACM, 2--11. Google Scholar
- Irene Manotas, Christian Bird, Rui Zhang, David Shepherd, Ciera Jaspan, Caitlin Sadowski, Lori Pollock, and James Clause. 2016. An empirical study of practitioners' perspectives on green software engineering. In International Conference on Software Engineering (ICSE), 2016 IEEE/ACM 38th. IEEE, 237--248. Google Scholar
Digital Library
- R. Morales, R. Saborido, F. Khomh, F. Chicano, and G. Antoniol. 2018. EARMO: An Energy-Aware Refactoring Approach for Mobile Apps. IEEE Transactions on Software Engineering 44, 12 (Dec 2018), 1176--1206. Google Scholar
Digital Library
- F. Palomba, D. Di Nucci, A. Panichella, A. Zaidman, and A. De Lucia. 2019. On the impact of code smells on the energy consumption of mobile applications. Information and Software Technology 105 (January 2019), 43--55.Google Scholar
- A. Pathak, Y. C. Hu, and M. Zhang. 2012. Where is the Energy Spent Inside My App?: Fine Grained Energy Accounting on Smartphones with Eprof. In Proc. of 7th ACM European Conf. on Computer Systems (EuroSys '12). ACM, 29--42. Google Scholar
- R. Pereira, T. Carção, M. Couto, J. Cunha, J. P. Fernandes, and J. Saraiva. 2020. SPELLing out energy leaks: Aiding developers locate energy inefficient code. Journal of Systems and Software 161 (2020), 110463.Google Scholar
Cross Ref
- R. Pereira, M. Couto, J. Cunha, J. P. Fernandes, and J. Saraiva. 2016. The Influence of the Java Collection Framework on Overall Energy Consumption. In Proc. of 5th Int. Workshop on Green and Sustainable Software (GREENS '16). ACM, 15--21. Google Scholar
- R. Pereira, M. Couto, F. Ribeiro, R. Rua, J. Cunha, J. P. Fernandes, and J. Saraiva. 2017. Energy Efficiency Across Programming Languages: How Do Energy, Time, and Memory Relate?. In Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering (SLE 2017). ACM, 256--267. Google Scholar
- R. Pereira, P. Simão, J. Cunha, and J. Saraiva. 2018. jStanley: Placing a Green Thumb on Java Collections. In Proc. of the 33rd ACM/IEEE International Conference on Automated Software Engineering. ACM, New York, NY, USA, 856--859. Google Scholar
- Gustavo Pinto and Fernando Castor. 2017. Energy Efficiency: A New Concern for Application Software Developers. Commun. ACM 60, 12 (Nov 2017), 68--75. Google Scholar
- Rubén Saborido, Rodrigo Morales, Foutse Khomh, Yann-Gaël Guéhéneuc, and Giuliano Antoniol. 2018. Getting the most from map data structures in Android. Empirical Software Engineering 23, 5 (2018), 2829--2864. Google Scholar
Digital Library
- C. Sahin, F. Cayci, I. L. M. Gutierrez, J. Clause, F. Kiamilev, L. Pollock, and K. Winbladh. 2012. Initial explorations on design pattern energy usage. In Green and Sustainable Software (GREENS), 2012 First Int. Workshop on. IEEE, 55--61. Google Scholar
- A. Tsintzira, A. Ampatzoglou, O. Matei, A. Ampatzoglou, A. Chatzigeorgiou, and R. Heb. 2019. Technical Debt Quantification through Metrics: An Industrial Validation. In 15th China-Europe Int. Symp. on Software Engineering Education (CEISEE'19). IEEE, --.Google Scholar
Index Terms
On energy debt

João Saraiva
Rui Pereira

Comments