In recent years, a significant amount of energy consumption of ICT products has resulted
in environmental concerns. Growing demand for mobile devices, personal computers, and the
widespread adaptation of cloud computing and data centers are the main drivers for the energy
consumption of the ICT systems. Finding solutions for improving the energy efficiency of the
systems has become an important objective for both industry and academia.
In order to address the increase in ICT energy consumption, hardware technology, such as
production of energy efficient processors, has been substantially improved. However, demand for
energy is growing faster than improvements are being made on these energy-aware technologies.
Therefore, in addition to hardware, software technologies must also be a focus of research
attention. Although software does not consume energy by itself, its characteristics determine
which hardware resources are made available and how much electrical energy is used.
Current literature on the energy efficiency of software, highlights, in particular, a lack of
measurements and models. In this dissertation, first, the relationship between software code
properties and energy consumption is explored. Second, using static code metrics regression
based energy consumption prediction models are investigated. Finally, the models performance
are assessed using within product and cross-product energy consumption prediction approaches.
For this purpose, a quantitative based retrospective cohort study was employed. As research
methods, observational data collection, mining software repositories, and regression analysis
were utilized. This research results show inconsistent relationships between energy consumption
and code size and complexity attributes considering different types of software products. Such
results provide a foundation of knowledge that static code attributes may give some insights
but would not be the sole predictors of energy consumption of software products.