The current widespread use of nonwired but powerful computing devices, such as, for example, smartphones, laptops, etc., is changing the way both computer manufacturers and software engineers develop their products. In fact, computer/software performance (ie, execution time), which was the primary goal in the last century, is no longer the only and main concern. Energy consumption is becoming an increasing bottleneck for both hardware and software systems. Recently, hardware manufacturers and researchers have developed techniques to reduce energy consumption mainly focused on developing and optimizing their hardware. (…) In this project, we aim to study, develop, and apply methods to analyze “energy leaks” in software source code. Thus, the focus of the project is to reason about energy consumption at the software level. In this context, we define energy leaks as an abnormal and excessive consumption of energy by a software system. We will start the project by adapting well known techniques for fault localization and program debugging in software source code, to locate energyleaks in software and to relate such leaks to the software source code.
Software source code metrics and a catalog of program smells will be adapted to the energyaware realm. (…) Finally, we will validate our methods, tools, and techniques with real case studies with our industrial partners through benchmarks, and professional programmers through empirical studies.