10.1145/3387906.3388628acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedings
research-article

On energy debt: managing consumption on evolving software

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

  1. 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 ScholarGoogle Scholar
  2. Eric Allman. 2012. Managing Technical Debt. Vol. 55. ACM. 50--55 pages.Google ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. Luis Cruz and Rui Abreu. 2018. Using Automatic Refactoring to Improve Energy Efficiency of Android Apps. CoRR abs/1803.05889 (2018).Google ScholarGoogle Scholar
  9. Ward Cunningham. 1992. The WyCash Portfolio Management System.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. Phillipe Kruchten, Robert L. Nord, and Ipek Ozkaya. 2012. Technical Debt: From Metaphor to Theory and Practice. https://ieeexplore.ieee.org/document/6336722Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarCross RefCross Ref
  24. 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 ScholarGoogle Scholar
  25. 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 ScholarGoogle Scholar
  26. 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 ScholarGoogle Scholar
  27. Gustavo Pinto and Fernando Castor. 2017. Energy Efficiency: A New Concern for Application Software Developers. Commun. ACM 60, 12 (Nov 2017), 68--75. Google ScholarGoogle Scholar
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle Scholar
  30. 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 ScholarGoogle Scholar

Index Terms

  1. On energy debt

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Article Metrics

        • Downloads (Last 12 months)25
        • Downloads (Last 6 weeks)14

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!