The University of Southampton
University of Southampton Institutional Repository

Software sustainability: Research and practice from a software architecture viewpoint

Software sustainability: Research and practice from a software architecture viewpoint
Software sustainability: Research and practice from a software architecture viewpoint

Context Modern societies are highly dependent on complex, large-scale, software-intensive systems that increasingly operate within an environment of continuous availability, which is challenging to maintain and evolve in response to the inevitable changes in stakeholder goals and 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. Problem Accidental software complexity accrues both naturally and gradually over time as part of the overall software design and development process. From a software architecture perspective, this allows several issues to overlap including, but not limited to: the accumulation of technical debt design decisions of individual components and systems leading to coupling and cohesion issues; the application of tacit architectural knowledge resulting in unsystematic and undocumented design decisions; architectural knowledge vaporisation of design choices and the continued ability of the organization to understand the architecture of its systems; sustainability debt and the broader cumulative effects of flawed architectural design choices over time resulting in code smells, architectural brittleness, erosion, and drift, which ultimately lead to decay and software death. Sustainable software architectures are required to evolve over the entire lifecycle of the system from initial design inception to end-of-life to achieve efficient and effective maintenance and evolutionary change. Method This article outlines general principles and perspectives on sustainability with regards to software systems to provide a context and terminology for framing the discourse on software architectures and sustainability. Focusing on the capacity of software architectures and architectural design choices to endure over time, it highlights some of the recent research trends and approaches with regards to explicitly addressing sustainability in the context of software architectures. Contribution The principal aim of this article is to provide a foundation and roadmap of emerging research themes in the area of sustainable software architectures highlighting recent trends, and open issues and research challenges.

Evolution, Longevity, Software architecture, Software sustainability
0164-1212
174-188
Venters, Colin C.
6d90fe45-3619-4309-b2fe-25c54a274e6e
Capilla, Rafael
508dad4c-f59c-4f7c-bfcb-656859ff17d7
Betz, Stefanie
822228a1-9128-4169-8877-6879f3499922
Penzenstadler, Birgit
452c8978-a15f-4b0a-8b7a-e788bf56538b
Crick, Tom
6afbb944-d575-4317-87f0-7bbc3187a453
Crouch, Steve
a136ad57-82ec-4664-8d8e-79a605808e6d
Nakagawa, Elisa Yumi
e26a0b31-689b-4727-8d22-2fe6c840f43b
Becker, Christoph
6dd583cf-89f0-46a3-8fa2-a0c523da1628
Carrillo, Carlos
c88360a9-1cac-43e5-8bc5-dc8693dd74cd
Venters, Colin C.
6d90fe45-3619-4309-b2fe-25c54a274e6e
Capilla, Rafael
508dad4c-f59c-4f7c-bfcb-656859ff17d7
Betz, Stefanie
822228a1-9128-4169-8877-6879f3499922
Penzenstadler, Birgit
452c8978-a15f-4b0a-8b7a-e788bf56538b
Crick, Tom
6afbb944-d575-4317-87f0-7bbc3187a453
Crouch, Steve
a136ad57-82ec-4664-8d8e-79a605808e6d
Nakagawa, Elisa Yumi
e26a0b31-689b-4727-8d22-2fe6c840f43b
Becker, Christoph
6dd583cf-89f0-46a3-8fa2-a0c523da1628
Carrillo, Carlos
c88360a9-1cac-43e5-8bc5-dc8693dd74cd

Venters, Colin C., Capilla, Rafael, Betz, Stefanie, Penzenstadler, Birgit, Crick, Tom, Crouch, Steve, Nakagawa, Elisa Yumi, Becker, Christoph and Carrillo, Carlos (2018) Software sustainability: Research and practice from a software architecture viewpoint. Journal of Systems and Software, 138, 174-188. (doi:10.1016/j.jss.2017.12.026).

Record type: Review

Abstract

Context Modern societies are highly dependent on complex, large-scale, software-intensive systems that increasingly operate within an environment of continuous availability, which is challenging to maintain and evolve in response to the inevitable changes in stakeholder goals and 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. Problem Accidental software complexity accrues both naturally and gradually over time as part of the overall software design and development process. From a software architecture perspective, this allows several issues to overlap including, but not limited to: the accumulation of technical debt design decisions of individual components and systems leading to coupling and cohesion issues; the application of tacit architectural knowledge resulting in unsystematic and undocumented design decisions; architectural knowledge vaporisation of design choices and the continued ability of the organization to understand the architecture of its systems; sustainability debt and the broader cumulative effects of flawed architectural design choices over time resulting in code smells, architectural brittleness, erosion, and drift, which ultimately lead to decay and software death. Sustainable software architectures are required to evolve over the entire lifecycle of the system from initial design inception to end-of-life to achieve efficient and effective maintenance and evolutionary change. Method This article outlines general principles and perspectives on sustainability with regards to software systems to provide a context and terminology for framing the discourse on software architectures and sustainability. Focusing on the capacity of software architectures and architectural design choices to endure over time, it highlights some of the recent research trends and approaches with regards to explicitly addressing sustainability in the context of software architectures. Contribution The principal aim of this article is to provide a foundation and roadmap of emerging research themes in the area of sustainable software architectures highlighting recent trends, and open issues and research challenges.

This record has no associated files available for download.

More information

Accepted/In Press date: 19 December 2017
e-pub ahead of print date: 20 December 2017
Published date: 1 April 2018
Keywords: Evolution, Longevity, Software architecture, Software sustainability

Identifiers

Local EPrints ID: 418962
URI: http://eprints.soton.ac.uk/id/eprint/418962
ISSN: 0164-1212
PURE UUID: 2467b23e-8546-4b01-b035-66ef0ebbc0b4
ORCID for Steve Crouch: ORCID iD orcid.org/0000-0001-8985-6814

Catalogue record

Date deposited: 27 Mar 2018 16:30
Last modified: 18 Mar 2024 02:53

Export record

Altmetrics

Contributors

Author: Colin C. Venters
Author: Rafael Capilla
Author: Stefanie Betz
Author: Birgit Penzenstadler
Author: Tom Crick
Author: Steve Crouch ORCID iD
Author: Elisa Yumi Nakagawa
Author: Christoph Becker
Author: Carlos Carrillo

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×