Variability models for generating efficient configurations of functional quality attributes

Abstract Context: Quality attributes play a critical role in the architecture elicitation phase. Software Sustainability and energy efficiency is becoming a critical quality attribute that can be used as a selection criteria to choose from among different design or implementation alternatives. Energy efficiency usually competes with other non-functional requirements, like for instance, performance. Objective: This paper presents a process that helps developers to automatically generate optimum configurations of functional quality attributes in terms of energy efficiency and performance. Functional quality attributes refer to the behavioral properties that need to be incorporated inside a software architecture to fulfill a particular quality attribute (e.g., encryption and authentication for the security quality attribute, logging for the usability quality attribute). Method: Quality attributes are characterized to identify their design and implementation variants and how the different configurations influence both energy efficiency and performance. A usage model for each characterized quality attribute is defined. The variability of quality attributes, as well as the energy efficiency and performance experiment results, are represented as a constraint satisfaction problem with the goal of formally reasoning about it. Then, a configuration of the selected functional quality attributes is automatically generated, which is optimum with respect to a selected objective function. Results: Software developers can improve the energy efficiency and/or performance of their applications by using our approach to perform a richer analysis of the energy consumption and performance of different alternatives for functional quality attributes. We show quantitative values of the benefits of using our approach and discuss the threats to validity. Conclusions: The process presented in this paper will help software developers to build more energy efficient software, whilst also being aware of how their decisions affect other quality attributes, such as performance.

[1]  Abram Hindle,et al.  Energy Profiles of Java Collections Classes , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[2]  Erik Jagroep,et al.  Extending software architecture views with an energy consumption perspective , 2017, Computing.

[3]  Lidia Fuentes,et al.  A mobile and interactive multiobjective urban tourist route planning system , 2017, J. Ambient Intell. Smart Environ..

[4]  Abram Hindle,et al.  GreenMiner: a hardware based mining software repositories software energy consumption framework , 2014, MSR 2014.

[5]  William G. J. Halfond,et al.  How does code obfuscation impact energy usage? , 2016, J. Softw. Evol. Process..

[6]  Reijo Savola,et al.  Quality of security metrics and measurements , 2013, Comput. Secur..

[7]  Lidia Fuentes,et al.  An automatic process for weaving functional quality attributes using a software product line approach , 2016, J. Syst. Softw..

[8]  Iris Reinhartz-Berger,et al.  Comprehending Feature Models Expressed in CVL , 2014, MoDELS.

[9]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[10]  Birger Møller-Pedersen,et al.  Adding Standardized Variability to Domain Specific Languages , 2008, 2008 12th International Software Product Line Conference.

[11]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[12]  Joost Visser,et al.  Energy Efficiency Optimization of Application Software , 2013, Adv. Comput..

[13]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[14]  Matthias Schöttle,et al.  On the modularization provided by concern-oriented reuse , 2016, MODULARITY.

[15]  Andreas Vogelsang,et al.  Are "Non-functional" Requirements really Non-functional? , 2017, Software Engineering.

[16]  Joost Visser,et al.  A Practical Model for Evaluating the Energy Efficiency of Software Applications , 2014, ICT4S.

[17]  Lars Grunske,et al.  Model-based performance analysis of software architectures under uncertainty , 2013, QoSA '13.

[18]  Mónica Pinto,et al.  HADAS and web services: Eco-efficiency assistant and repository use case evaluation , 2017, 2017 International Conference in Energy and Sustainability in Small Developing Economies (ES2DE).

[19]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[20]  Oscar Pastor,et al.  A framework to identify primitives that represent usability within Model-Driven Development methods , 2015, Inf. Softw. Technol..

[21]  Jang-Eui Hong,et al.  Evaluating energy efficiency of Internet of Things software architecture based on reusable software components , 2017, Int. J. Distributed Sens. Networks.

[22]  Alexander Egyed,et al.  Applying multiobjective evolutionary algorithms to dynamic software product lines for reconfiguring mobile applications , 2015, J. Syst. Softw..

[23]  Bashar Nuseibeh,et al.  Characterizing Architecturally Significant Requirements , 2013, IEEE Software.

[24]  Apostolos Ampatzoglou,et al.  Investigating the effect of design patterns on energy consumption , 2017, J. Softw. Evol. Process..

[25]  Sven Apel,et al.  Scalable Prediction of Non-functional Properties in Software Product Lines , 2011, 2011 15th International Software Product Line Conference.

[26]  Heiko Koziolek,et al.  From monolithic to component-based performance evaluation of software architectures , 2010, Empirical Software Engineering.

[27]  Hazem M. El-Bakry,et al.  Analyzing Preferences and Interactions of Software Quality Attributes Using Choquet Integral Approach , 2016, INFOS '16.

[28]  Mohamed Wiem Mkaouer,et al.  On the use of many quality attributes for software refactoring: a many-objective search-based software engineering approach , 2016, Empirical Software Engineering.

[29]  Christophe Ponsard,et al.  Energy Efficiency Embedded Service Lifecycle: Towards an Energy Efficient Cloud Computing Architecture , 2014, ICT4S.

[30]  Olivier Barais,et al.  Leveraging CVL to Manage Variability in Software Process Lines , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[31]  Ralf H. Reussner,et al.  Model-Based Energy Efficiency Analysis of Software Architectures , 2015, ECSA.

[32]  Natalia Juristo Juzgado,et al.  Reusable Solutions for Implementing Usability Functionalities , 2015, Int. J. Softw. Eng. Knowl. Eng..

[33]  Lidia Fuentes,et al.  Extending the Common Variability Language (CVL) Engine: A practical tool , 2017, SPLC.

[34]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..

[35]  Fernando Pinciroli Improving Software Applications Quality by Considering the Contribution Relationship Among Quality Attributes , 2016, ANT/SEIT.

[36]  Andreas Vogelsang,et al.  Are "Non-functional" Requirements really Non-functional? An Investigation of Non-functional Requirements in Practice , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[37]  Matteo Cristani,et al.  Non-monotonic reasoning rules for energy efficiency , 2017, J. Ambient Intell. Smart Environ..

[38]  Yan Zhuang The performance cost of software obfuscation for Android applications , 2018, Comput. Secur..