Sustainable software engineering: Reflections on advances in research and practice
Journal article, 2023
Context: Modern societies are highly dependent on complex, large-scale, software-intensive systems that increasingly operate within an environment of continuous availability, which are challenging to maintain, and evolve in response to changes in stakeholder requirements of the system. Software architectures are the foundation of any software system and provide a mechanism for reasoning about core software quality requirements. Their sustainability – the capacity to endure in changing environments – is a critical concern for software architecture research and practice. Objective: The objective of the paper is to re-examine our previous assumptions and arguments in light of advances in the field. This reflection paper provides an opportunity to obtain new insights into the trends in software sustainability in both academia and industry, from a software architecture perspective specifically and software engineering more broadly. Given advances in research in the field, the increasing introduction of academic courses on different sustainability topics, and the engagement of companies to cope with sustainability goals, we reflect on advances and maturity about the role sustainability in general plays in today's society. More specifically, we revisit the trends, open issues and research challenges identified five years ago in our previous paper on software sustainability research and practice from a software architecture viewpoint, which aimed to provide a foundation and roadmap of emerging research themes in the area of sustainable software architectures in order to consider how this paper influenced and motivated research in the intervening years. Method: The forward snowballing method was used to establish the methodological basis for our reflection on the state of the art. A total of 234 studies were identified between April 2018 and June 2023 and 102 studies were found to be relevant according to the selection criteria. A further subset was mapped to the primary themes of the original paper including definitions and concepts, reference architectures, measures and metrics, and education. Vision: The vision of this reflection paper is to provide a new foundation and road map of emerging research themes in the area of sustainable software engineering highlighting recent trends, and open issues and research challenges.
Sustainable software
Software metrics
Technical debt
Reference architectures
Architectural smells
Architectural debt
Software architecture
Software sustainability
Education and training
Software engineering
Sustainability
Code smells