Software development lifecycle for energy efficiency: Techniques and tools

Stefanos Georgiou, Stamatia Rizou, Diomidis Spinellis

Research output: Contribution to journalReview articleScientificpeer-review

1 Citation (Scopus)

Abstract

Motivation: In modern IT systems, the increasing demand for computational power is tightly coupled with ever higher energy consumption. Traditionally, energy efficiency research has focused on reducing energy consumption at the hardware level. Nevertheless, the software itself provides numerous opportunities for improving energy efficiency. Goal: Given that energy efficiency for IT systems is a rising concern, we investigate existing work in the area of energy-aware software development and identify open research challenges. Our goal is to reveal limitations, features, and tradeoffs regarding energy-performance for software development and provide insights on existing approaches, tools, and techniques for energy-efficient programming. Method: We analyze and categorize research work mostly extracted from top-tier conferences and journals concerning energy efficiency across the software development lifecycle phases. Results: Our analysis shows that related work in this area has focused mainly on the implementation and verification phases of the software development lifecycle. Existing work shows that the use of parallel and approximate programming, source code analyzers, efficient data structures, coding practices, and specific programming languages can significantly increase energy efficiency. Moreover, the utilization of energy monitoring tools and benchmarks can provide insights for the software practitioners and raise energy-awareness during the development phase.

Original languageEnglish
Article number81
JournalACM Computing Surveys
Volume52
Issue number4
DOIs
Publication statusPublished - Aug 2019
Externally publishedYes

Keywords

  • Approximate programming
  • Code refactoring
  • Coding practices
  • Design patterns
  • Energy efficiency
  • Energy optimization
  • Energy profiling
  • GreenIT
  • Parallel programming
  • Software development lifecycle
  • Source code analysis

Fingerprint Dive into the research topics of 'Software development lifecycle for energy efficiency: Techniques and tools'. Together they form a unique fingerprint.

Cite this