Statically Analyzing the Energy Efficiency of Software Product Lines

Optimizing software to become (more) energy efficient is an important concern for the software industry. Although several techniques have been proposed to measure energy consumption within software engineering, little work has specifically addressed Software Product Lines (SPLs). SPLs are a widely used software development approach, where the core concept is to study the systematic development of products that can be deployed in a variable way, e.g., to include different features for different clients. The traditional approach for measuring energy consumption in SPLs is to generate and individually measure all products, which, given their large number, is impractical. We present a technique, implemented in a tool, to statically estimate the worst-case energy consumption for SPLs. The goal is to reason about energy consumption in all products of a SPL, without having to individually analyze each product. Our technique combines static analysis and worst-case prediction with energy consumption analysis, in order to analyze products in a feature-sensitive manner: a feature that is used in several products is analyzed only once, while the energy consumption is estimated once per product. This paper describes not only our previous work on worst-case prediction, for comprehensibility, but also a significant extension of such work. This extension has been realized in two different axis: firstly, we incorporated in our methodology a simulated annealing algorithm to improve our worst-case energy consumption estimation. Secondly, we evaluated our new approach in four real-world SPLs, containing a total of 99 software products. Our new results show that our technique is able to estimate the worst-case energy consumption with a mean error percentage of 17.3% and standard deviation of 11.2%.

[1]  Sven Apel,et al.  Family-based performance measurement , 2014 .

[2]  D. C. Sharp,et al.  Reducing avionics software cost through component based product line development , 1998, 17th DASC. AIAA/IEEE/SAE. Digital Avionics Systems Conference. Proceedings (Cat. No.98CH36267).

[3]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[4]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[5]  Lidia Fuentes,et al.  Context-aware energy-efficient applications for cyber-physical systems , 2019, Ad Hoc Networks.

[6]  Mikkel Baun Kjærgaard,et al.  Unsupervised Power Profiling for Mobile Devices , 2011, MobiQuitous.

[7]  Gustavo Pinto,et al.  Energy efficiency , 2017, Commun. ACM.

[8]  Sven Apel,et al.  A Comparison of 10 Sampling Algorithms for Configurable Systems , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[9]  Hermann Härtig,et al.  Measuring energy consumption for short code paths using RAPL , 2012, PERV.

[10]  Antonio Ruiz Cortés,et al.  Article in Press G Model the Journal of Systems and Software an Overview of Dynamic Software Product Line Architectures and Techniques: Observations from Research and Industry , 2022 .

[11]  Mustafa Al-Hajjaji,et al.  A classification of product sampling for software product lines , 2018, SPLC.

[12]  Manuel V. Hermenegildo,et al.  Energy Consumption Analysis of Programs Based on XMOS ISA-Level Models , 2013, LOPSTR.

[13]  Shin Nakajima,et al.  Model Checking of Energy Consumption Behavior , 2014, CSDM Asia.

[14]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[15]  Jácome Cunha,et al.  Detecting Anomalous Energy Consumption in Android Applications , 2014, SBLP.

[16]  Shin Nakajima Using Real-Time Maude to Model Check Energy Consumption Behavior , 2015, FM.

[17]  B. J. Pronk Medical Product Line Architectures , 1999 .

[18]  Dong Yan,et al.  Lightweight energy consumption analysis and prediction for Android applications , 2018, Sci. Comput. Program..