Context: Sustainability is a cross-disciplinary research topic that has drawn attention from various knowledge areas, such as ecology, engineering, healthcare, and social sciences, and has supported the development of a more sustainable and modern world. Computer science area has also explored such a topic aiming at creating sustainable software systems.
Problem: However, there is no consensus of what sustainable software systems are exactly and which are their current achievements to support a more sustainable world.
Objective: The main contribution of this paper is to depict the core characteristics of sustainable software systems and the means to achieve them.
Results: To do that, we systematically enquired the literature on sustainability in software systems and found 242 studies, from which 24 were relevant for our deep analysis. Our results summarize 17 different understandings of sustainable software systems and present evidence that sustainable software is currently mainly concerned to preserve four resources (electric energy, human resources, monetary cost, and production time). As means to achieve sustainability in software systems, we outline 68 critical factors and 98 possible means to achieve sustainability (guidelines, tools, methods, metrics, models, and frameworks). We interpreted, selected, and grouped this multiplicity of initiatives to present the current research endeavors in this area and highlight current gaps that still need to be better investigated.
Conclusions: No matter the application domains of the software systems, sustainability must be treated as a core concern in software development together with both a better alignment between academia and industry and a change in the mindset of practitioners concerning sustainable system development.
Systematic Literature Reviews process need to be transparent, facilitate the access to data, consequently, enhance the reproducibility and auditability. Therefore, the selection of primary studies selection, data extraction and data analysis spreadsheets are also available on the link:
To checkout our repository on github acess:
Resource | Description | Link |
---|---|---|
RQ1 | Understandings about sustainable software systems | Link |
RQ2 | Resources taken into account when considering sustainability in software systems | Link |
RQ3 | Critical factors for sustainable software systems | Link |
RQ4.1 | Means to leverage the development of sustainable software systems (Approaches) | Link |
RQ4.2 | Guidelines to build a sustainable software systems | Link |
References | Table of references | Link |