Removing Energy Code Smells with Reengineering Services

Due to the increasing consumer adoption of mobile devices, like smart phones and tablet PCs, saving energy is becoming more and more important. Users desire more functionality and longer battery cycles. While modern mobile computing devices offer hardware optimized for low energy consumption, applications often do not make proper use of energy-saving capabilities. This paper proposes detecting and removing energy-wasteful code using software reengineering services, like code analysis and restructuring, to optimize the energy consumption of mobile devices.

[1]  Andreas Winter,et al.  Towards a Catalogue of Software Evolution Services , 2011, Softwaretechnik-Trends.

[2]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

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

[4]  Model-Driven Software Migration : Process Model , Tool Support , and Application , .

[5]  Ivan Kurtev,et al.  State of the Art of QVT: A Model Transformation Language Standard , 2008, AGTIVE.

[6]  Frédéric Jouault,et al.  Transforming Models with ATL , 2005, MoDELS.

[7]  Jürgen Ebert,et al.  GUPRO - Generic Understanding of Programs , 2002, Electron. Notes Theor. Comput. Sci..

[8]  Hagen Höpfner,et al.  Towards an Energy-Consumption Based Complexity Classification for Resource Substitution Strategies , 2010, Grundlagen von Datenbanken.

[9]  Tom Dhaene,et al.  Towards energy-conscious class transformations for data-dominant applications: a case study , 2003 .

[10]  Maximilian Schirmer,et al.  SenST*: Approaches for Reducing the Energy Consumption of Smartphone-Based Context Recognition , 2011, CONTEXT.

[11]  Mark C. Johnson,et al.  Software design for low power , 1997 .

[12]  Uwe Aßmann,et al.  Vision paper: towards model-based energy testing , 2011, MODELS'11.

[13]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[14]  Sven Apel,et al.  Automating energy optimization with features , 2010, FOSD '10.

[15]  Tassilo Horn,et al.  The GReTL Transformation Language , 2011, ICMT@TOOLS.

[16]  Ming Zhang,et al.  Bootstrapping energy debugging on smartphones: a first look at energy bugs in mobile devices , 2011, HotNets-X.

[17]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[18]  Hagen Höpfner,et al.  Energy Awareness Needs a Rethinking in Software Development , 2011, ICSOFT.

[19]  Emden R. Gansner,et al.  A C++ data model supporting reachability analysis and dead code detection , 1997, ESEC '97/FSE-5.

[20]  Andreas Winter,et al.  Towards Applying Reengineering Services to Energy-Efficient Applications , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[21]  Luiz André Barroso,et al.  The Case for Energy-Proportional Computing , 2007, Computer.

[22]  Samuel Kounev Self-Aware Software and Systems Engineering: A Vision and Research Roadmap , 2011, Softwaretechnik-Trends.

[23]  Samuel P. Midkiff,et al.  What is keeping my phone awake?: characterizing and detecting no-sleep energy bugs in smartphone apps , 2012, MobiSys '12.

[24]  Andreas Winter,et al.  Querying as an enabling technology in software reengineering , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[25]  Jürgen Ebert,et al.  Graph Technology in Reverse Engineering: The TGraph Approach , 2008, Workshop Software Reengineering.

[26]  Dean Jin,et al.  Where's the schema? A taxonomy of patterns for software exchange , 2002, Proceedings 10th International Workshop on Program Comprehension.