Green Coding III

Green Coding - Session III

Influence of Static Code Analysis on Energy Consumption of Software
This paper investigates how the implementation of suggestions from static program analysis, performed by Pylint, a so-called linter for the programming language Python, affects the energy consumption of software. For this purpose, the energy consumption for algorithms implemented in the Benchmarks Game [Gob] were measured before and after the revision and the results compared. Early findings suggest that resolving the issues presented by Pylint can have a negative impact on energy consumption. This was the case in 3 out of 8 algorithms. The remaining cases showed no significant difference. We assume that the increased energy consumption is due to the multitude of possibilities to implement proposals, leading to a possibility for worsening performance. Further research and experimentation is needed to objectively evaluate the impact of Pylint and static program analysis by extension, on energy consumption.
Tactics for Software Energy Efficiency: A Review
Over the years, software systems experienced a growing popularization. With it, the energy they consume witnessed an exponential growth, surpassing the one of the entire aviation sector. Energy efficiency tactics can be used to optimize software energy consumption. In this work, we aim at understanding the state of the art of energy efficient tactics, in terms of activities in the field, tactic properties, tactic evaluation rigor, and potential for industrial adoption. We leverage a systematic literature review based on a search query and two rounds of bi-directional snowballing. We identify 142 primary studies, reporting on 163 tactics, which we extract and analyze via a mix of qualitative and quantitative research methods. The research interest in the topic peaked in 2015 and then steadily declined. Tactics on source code static optimizations and application level dynamic monitoring are the most frequently studied. Industry involvement is limited. This potentially creates a vicious cycle in which practitioners cannot apply tactics due to low industrial relevance, and academic researchers struggle to increase the industrial relevance of their findings. Despite the energy consumed by software is a growing concern, the future of energy efficiency tactics research does not look bright. From our results emerges a call for action, the need for academic researchers and industrial practitioners to join forces for creating real impact.
Sustainable Software Engineering: Patterns and Trends through Artifacts from a Practitioner's Perspective
This study aims to uncover trends and patterns in sustainable software engineering research, with a particular focus on artifact-oriented outcomes and a practitioner’s perspective. Continuous research on the topic of environmentally sustainable software engineering practices is essential to mitigate the environmental impact of software products and advance software processes that promote sustainability. Despite recognizing the issue, many software industry practitioners struggle to identify sustainability requirements for software products during software development. Many are unaware of any applied process models or other software engineering artifacts to support sustainability in software engineering practices. This working paper intends to map practitioner-focused outcomes and academic research in sustainable software engineering. By adopting a practitioner’s perspective, we categorize 11 types of software engineering artifacts. These artifacts represent tangible research outcomes for software practitioners and help with systematically analyzing academic publications on sustainable software engineering between 2001-2022. The analysis is based on a three-stage literature screening process, out of which three intermediate datasets are analyzed. The study provides valuable insights into the trends and patterns of research output, emphasizing the significance of artifacts and acknowledging their contribution to the field. The aim is to promote sustainable software engineering by considering and mapping the perspectives of both academics and practitioners. Furthermore, it opens up opportunities for future research and development.
Measuring environmental impact: Lessons learned

Within the recently completed SoftAWERE project, completed by the SDIA & Öko Institut on behalf of the Umweltbundesamt, we set out to measure the environmental impact of open-source libraries and tools.

With our talk, we would like to share key lessons learned:

(1) challenges in measuring power usage & barriers
(2) ideas & approaches for addressing measurement limitations
(3) tools we developed to simplify measurement as part of CI/CD process

We will also share further research areas we’ve identified as well as action items for the software community.