Skip to feedback

Award Abstract # 1321141
SHF: Small: Helping Developers Improve the Energy Consumption of Smartphone Applications

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: UNIVERSITY OF SOUTHERN CALIFORNIA
Initial Amendment Date: June 24, 2013
Latest Amendment Date: June 24, 2013
Award Number: 1321141
Award Instrument: Standard Grant
Program Manager: Sol Greenspan
sgreensp@nsf.gov
 (703)292-7841
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: July 1, 2013
End Date: June 30, 2018 (Estimated)
Total Intended Award Amount: $499,953.00
Total Awarded Amount to Date: $499,953.00
Funds Obligated to Date: FY 2013 = $499,953.00
History of Investigator:
  • William Halfond (Principal Investigator)
    halfond@usc.edu
  • Nenad Medvidovic (Co-Principal Investigator)
  • Ramesh Govindan (Co-Principal Investigator)
Recipient Sponsored Research Office: University of Southern California
3720 S FLOWER ST FL 3
LOS ANGELES
CA  US  90033
(213)740-7762
Sponsor Congressional District: 34
Primary Place of Performance: University of Southern California
3720 S. Flower St.
Los Angeles
CA  US  90089-0001
Primary Place of Performance
Congressional District:
37
Unique Entity Identifier (UEI): G88KLJR3KYT5
Parent UEI:
NSF Program(s): SOFTWARE ENG & FORMAL METHODS
Primary Program Source: 01001314DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7923, 7798, 7944
Program Element Code(s): 794400
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

The capabilities of mobile devices have increased dramatically and end-users are able to perform a wide range of useful tasks on their smartphones. However, the usability of these devices is strongly influenced by their energy consumption. Despite advances in hardware and battery design, a poorly coded application can drain a smartphone's battery with numerous energy-expensive operations. Developers lack the tools and techniques to identify when and where the energy consumption profiles of their applications can be improved. This research aims to help developers understand how energy is consumed within their applications, and to help them change their applications in ways that will lead to reduced energy consumption. Given the widespread use of mobile applications and the prevalence of energy consumption-related problems, this work will impact both end users and developers by improving applications? energy efficiency and enabling further research in this area. The results of this research will also have marked educational impact through the training of future software engineers in predicting, estimating, measuring, and managing the effects of their system designs and implementations on energy consumption.

This project includes three inter-related thrusts. The first thrust develops program analysis techniques for online measurement and visualization that provides energy consumption information to developers at the level of individual lines of an application?s source code. Using this capability, the second thrust identifies a set of energy-aware development best practices via an empirical study of the relationship between energy consumption and implementation structure at the application's architecture, design, and code levels. The third thrust uses the best practices to propose a set of energy-reducing refactorings to the developers and help them to identify the changes that will lead to the most energy efficient applications.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

Mian Wan, Yuchen Jin, Ding Li, Jiaping Gui, Sonal Mahajan, and William G. J.Halfond "Detecting Display Energy Hotspots in Android Apps" Software Testing, Verification, and Reliability , 2017
Cagri Sahin and Mian Wan and Philip Tornquist and Ryan McKenna and Zachary Pearson and William G.J. Halfond and James Clause "How Does Code Obfuscation Impact Energy Usage?" Journal of Software: Evolution and Process , 2016
Cagri Sahin and Mian Wan and Philip Tornquist and Ryan McKenna and Zachary Pearson and William G.J. Halfond and James Clause "How Does Code Obfuscation Impact Energy Usage?" Journal of Software: Evolution and Process , v.28 , 2016 , p.565--588 10.1002/smr.1762
Mian Wan and Yuchen Jin and Ding Li and Jiaping Gui and Sonal Mahajan and William G. J. Halfond "Detecting Display Energy Hotspots in Android Apps" Software Testing, Verification and Reliability , 2017

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

The goal of our work was to help developers understand how energy is consumed within their applications and change their applications in ways that will lead to reduced energy consumption. Our work encompassed several related research areas: developing fine-grained source code oriented energy measurement techniques, cataloging developer practices with respect to energy, developing automated optimization techniques, and developing analysis techniques for considering energy as a system quality.

 

The first area designed methods for source-line level online energy estimation and visualization in ways that allowed us to obtain detailed and fine-grained measurements of how energy is consumed at different levels of implementation and design abstractions.  We developed a technique based on program analysis, power sampling, and statistical methods that enabled energy attribution at a source line level, and also refined an earlier techniques based on execution path based profiling and per-instruction modeling. In evaluation, both techniques demonstrated that they could accurately estimate energy at the source-line level.  The designed algorithms and the evaluation results of both of these efforts resulted in publications that continue to be highly cited at top SE conferences.

 

The second area used these measurement capabilities to perform systematic empirical studies that correlated implementation structure and energy consumption. This enabled us to understand what affects the energy consumption of software at the different levels of abstraction and led to the identification of a set of best practices for energy-aware software development.  We carried out several large-scale empirical studies into the energy related behavior of mobile apps. These studies led to the identification of several energy-inefficient areas of implementation in app development, mobile ad usage, and database interactions. Results from these studies were published in top-tier software engineering conferences and received national press write ups.

 

The third area developed automated techniques to help developers make energy-reducing changes to their code.  We developed several static analysis based transformation techniques that could automatically rewrite or restructure apps to reduce their energy consumption.  The techniques that we developed included targeting inefficient designs of graphical user interfaces, inefficiently sequenced network requests, and problematic patterns of writing to a local database.  In evaluation, each of these techniques was able to significantly reduce the energy consumption of the targeted apps. The designed algorithms and the evaluation results of these techniques resulted in publications that continue to be highly cited at top SE conferences.

 

Finally, in the last area, we considered energy consumption in the broader context of multiple system qualities that must be reasoned about in tandem and that frequently must be traded off with one another. We developed an architecture-based technique for modeling, analyzing, and trading off multiple quality requirements, including energy consumption, and developed a prototype software environment that allows the modeling, analysis, and visualization of key design decisions and their impact on system non-functional properties, including energy consumption.  Finally, we designed an extensible approach and tool for simulation-based analysis of system models that simultaneously considered multiple system qualities. This analysis went beyond state of the art techniques and allowed software engineers to more accurately model app behavior and detect more faults.

 


Last Modified: 07/26/2018
Modified by: William Halfond

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page