Developing A Software Engineer’s Energy-Optimization Decision Support Framework
Reducing the energy usage of software is becoming more important in many environments, from supercomputers to battery-powered mobile devices, and embedded systems. Recent empirical studies in green software engineering indicate that software engineers can support the goal of reducing energy usage of their applications through design and implementation decisions. However, the large number of possible design and implementation choices and the lack of feedback and information available to software engineers necessitates some form of automated decision-making support.
Two major tasks are needed to support developers in creating more energy efficient applications: (1) to understand developers’ needs, and (2) to develop support tools that target the identified demands. By understanding which challenges developers face when trying to improve the energy efficiency of their applications, we can focus on appropriate approaches that target developers concerns. Focusing on developers needs, we can propose support tools that facilitate the developer’s task when trying to improve applications’ energy efficiency. This dissertation presents the results and implications of an empirical study about software developers’ perspectives on green software engineering. The results of our study helps us to understand the strategies, challenges, and needs of practitioners in industry when they attempt to improve the energy efficiency of their software applications. Furthermore, we present the design and implementation of the Software Engineers Energy Decision Support (SEEDS) framework. We show how the SEEDS framework helps developers understand the energy implications of high-level code changes, and automatically find improved version of software applications in terms of its energy consumption. Finally, we show different instances of the SEEDS framework, as well as alternative search strategies that can be used in SEEDS to guide the exploration for energy efficient solutions.