Thesis Research Project Ann-Christin Fleischle

Enabling Environmentally Aware Programming at the Example of the SAP S/4HANA Technology Stack

ANN-Christin fleischle

Abstract: Environmentally aware programming, referring to programming practices minimizing the resource consumption induced by software, has gained both theoretical and practical relevance in recent years. Researchers have started to investigate and recognize the environmental impact of information systems induced by software. However, practitioners often lack the intuition and knowledge to be able to reduce the environmental impact of their programming practices. Research on the factors such as data structures influencing the environmental impact of code and therefore software and information systems is required to provide practitioners with tools fostering environmentally aware programming. We take a design science research approach to contribute to closing this research gap. First, we investigate and synthesize the code-level factors influencing the environmental impact of software by conducting a literature review and analyzing the factors used in existing attempts of tools fostering environmentally aware programming. Then we examine the code behavior of these factors on the example of the SAP S/4HANA technology stack because of its relevance in practice. Based on the resulting list of validated factors, we design, implement and evaluate a code analysis tool in the SAP context to fulfill two goals: 1) increase the users’ awareness of the energy consumption of code by identifying and presenting possibly energy inefficient factors in a piece of code and 2) foster energy-aware programming by displaying informed recommendations for possibly more energy-efficient alternatives to the users. For the tool, we target a focus on energy efficiency since research shows that software sustainability is principally achieved through improving energy efficiency, measurable in joule. Finally, we derive a generalized design theory for similar tools. Thereby we advance the understanding of environmentally aware programming and respective supporting tools contributing to a knowledge transfer from theory to practice