A Methodology for Relating Software Structure with Energy Consumption

With the widespread use of mobile devices relying on limited battery power, the burden of optimizing applications for energy has shifted towards the application developers. In their quest to develop energy efficient applications, developers face the hurdle of measuring the effect of software change on energy consumption. A naive solution to this problem would be to have an exhaustive suite of test cases that are executed upon every change to measure their effect on energy consumption. This method is inefficient and also suffers from environment dependent inconsistencies. A more generalized method would be to relate software structural metrics with its energy consumption behavior. Previous attempts to relate change in objectoriented metrics to their effects on energy consumption have been inconclusive. We observe that structural information is global and executed tests are rarely comprehensive in their coverage, this approach is prone to errors. In this paper, we present a methodology to relate software energy consumption with software structural metrics considering the test case execution traces. Furthermore, we demonstrate that software structural metrics can be reliably related to energy consumption behavior of programs using several versions of three open-source iteratively developed android applications. We discover that by using our approach we are able to identify strong correlations between several software metrics and energy consumption behavior.

[1]  Christian Bunse,et al.  On the Energy Consumption of Design Patterns , 2013, Softwaretechnik-Trends.

[2]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[3]  Eleni Stroulia,et al.  GreenAdvisor: A tool for analyzing the impact of software evolution on energy consumption , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[4]  N. Nagappan,et al.  Use of relative code churn measures to predict system defect density , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[5]  Abram Hindle,et al.  Green mining: a methodology of relating software change and configuration to power consumption , 2013, Empirical Software Engineering.

[6]  Ding Li,et al.  An Empirical Study of the Energy Consumption of Android Applications , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[7]  Gustavo Pinto,et al.  A Comprehensive Study on the Energy Efficiency of Java’s Thread-Safe Collections , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[8]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

[9]  Robert J. Winter Cpt Agile Software Development: Principles, Patterns, and Practices , 2014 .

[10]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

[11]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[12]  First International Workshop on Oral Malodor , 1994, Journal of dental research.

[13]  Lori L. Pollock,et al.  SEEDS: a software engineer's energy-optimization decision support framework , 2014, ICSE.

[14]  Letha H. Etzkorn,et al.  Empirical Validation of Three Software Metrics Suites to Predict Fault-Proneness of Object-Oriented Classes Developed Using Highly Iterative or Agile Software Development Processes , 2007, IEEE Transactions on Software Engineering.

[15]  Paramvir Bahl,et al.  Fine-grained power modeling for smartphones using system call tracing , 2011, EuroSys '11.

[16]  Abram Hindle Green mining: A methodology of relating software change to power consumption , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[17]  Lori L. Pollock,et al.  Initial explorations on design pattern energy usage , 2012, 2012 First International Workshop on Green and Sustainable Software (GREENS).

[18]  Hausi A. Müller,et al.  Predicting fault-proneness using OO metrics. An industrial case study , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[19]  Victor R. Basili,et al.  A validation of object oriented metrics as quality indicators , 1996 .

[20]  Ahmed E. Hassan,et al.  What Do Mobile App Users Complain About? , 2015, IEEE Software.

[21]  Deepak Goyal,et al.  A hierarchical model for object-oriented design quality assessment , 2015 .

[22]  Abram Hindle,et al.  What Do Programmers Know about Software Energy Consumption? , 2016, IEEE Software.

[23]  Lin Zhong,et al.  Self-constructive high-rate system energy modeling for battery-powered mobile systems , 2011, MobiSys '11.

[24]  Gustavo Pinto,et al.  Assisting Non-Specialist Developers to Build Energy-Efficient Software , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[25]  W. D. D. Silva,et al.  Evaluation of the impact of code refactoring on embedded software efficiency , 2010 .

[26]  Alexander Chatzigeorgiou,et al.  Energy Consumption Analysis of Design Patterns , 2007 .

[27]  Abram Hindle,et al.  Energy Profiles of Java Collections Classes , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[28]  Abram Hindle Green software engineering: the curse of methodology , 2015, PeerJ Prepr..

[29]  Will G. Hopkins,et al.  A new view of statistics , 2002 .

[30]  Lionel C. Briand,et al.  Empirical Studies of Quality Models in Object-Oriented Systems , 2002, Adv. Comput..

[31]  Suman Roychoudhury,et al.  Choosing the "Best" Sorting Algorithm for Optimal Energy Consumption , 2009, ICSOFT.

[32]  Ming Zhang,et al.  Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof , 2012, EuroSys '12.

[33]  Abram Hindle,et al.  GreenMiner: a hardware based mining software repositories software energy consumption framework , 2014, MSR 2014.

[34]  Gernot Heiser,et al.  An Analysis of Power Consumption in a Smartphone , 2010, USENIX Annual Technical Conference.

[35]  Eleni Stroulia,et al.  The power of system call traces: predicting the software energy consumption impact of changes , 2014, CASCON.