Software Sustainability

Research and Practice from a Software Architecture Viewpoint

Colin Venters, Rafael Capilla, Stefanie Betz, Birgit Penzenstadler, Tom Crick, Steve Crouch, Elisa Yumi Nakagawa, Christoph Becker, Carlos Carrillo

Research output: Contribution to journalArticle

10 Citations (Scopus)

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.
Original languageEnglish
Pages (from-to)174-188
Number of pages15
JournalJournal of Systems and Software
Volume138
Early online date20 Dec 2017
DOIs
Publication statusPublished - Apr 2018

Fingerprint

Software architecture
Sustainable development
Architectural design
Computer systems
Software design
Terminology
Brittleness
Vaporization
Erosion
Software engineering
Availability

Cite this

Venters, C., Capilla, R., Betz, S., Penzenstadler, B., Crick, T., Crouch, S., ... Carrillo, C. (2018). Software Sustainability: Research and Practice from a Software Architecture Viewpoint. Journal of Systems and Software, 138, 174-188. https://doi.org/10.1016/j.jss.2017.12.026
Venters, Colin ; Capilla, Rafael ; Betz, Stefanie ; Penzenstadler, Birgit ; Crick, Tom ; Crouch, Steve ; Nakagawa, Elisa Yumi ; Becker, Christoph ; Carrillo, Carlos. / Software Sustainability : Research and Practice from a Software Architecture Viewpoint. In: Journal of Systems and Software. 2018 ; Vol. 138. pp. 174-188.
@article{8d93b3c24b114631bcf649d866fc9fe3,
title = "Software Sustainability: Research and Practice from a Software Architecture Viewpoint",
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.",
keywords = "Software architecture, Software sustainability, Sustainability debt, Software Evolution, Software engineering, Sustainability, sustainability design, Longevity, Evolution",
author = "Colin Venters and Rafael Capilla and Stefanie Betz and Birgit Penzenstadler and Tom Crick and Steve Crouch and Nakagawa, {Elisa Yumi} and Christoph Becker and Carlos Carrillo",
year = "2018",
month = "4",
doi = "10.1016/j.jss.2017.12.026",
language = "English",
volume = "138",
pages = "174--188",
journal = "Journal of Systems and Software",
issn = "0164-1212",
publisher = "Elsevier Inc.",

}

Venters, C, Capilla, R, Betz, S, Penzenstadler, B, Crick, T, Crouch, S, Nakagawa, EY, Becker, C & Carrillo, C 2018, 'Software Sustainability: Research and Practice from a Software Architecture Viewpoint', Journal of Systems and Software, vol. 138, pp. 174-188. https://doi.org/10.1016/j.jss.2017.12.026

Software Sustainability : Research and Practice from a Software Architecture Viewpoint. / Venters, Colin; Capilla, Rafael; Betz, Stefanie; Penzenstadler, Birgit; Crick, Tom; Crouch, Steve; Nakagawa, Elisa Yumi; Becker, Christoph; Carrillo, Carlos.

In: Journal of Systems and Software, Vol. 138, 04.2018, p. 174-188.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Software Sustainability

T2 - Research and Practice from a Software Architecture Viewpoint

AU - Venters, Colin

AU - Capilla, Rafael

AU - Betz, Stefanie

AU - Penzenstadler, Birgit

AU - Crick, Tom

AU - Crouch, Steve

AU - Nakagawa, Elisa Yumi

AU - Becker, Christoph

AU - Carrillo, Carlos

PY - 2018/4

Y1 - 2018/4

N2 - 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.

AB - 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.

KW - Software architecture

KW - Software sustainability

KW - Sustainability debt

KW - Software Evolution

KW - Software engineering

KW - Sustainability

KW - sustainability design

KW - Longevity

KW - Evolution

UR - http://www.scopus.com/inward/record.url?scp=85043776263&partnerID=8YFLogxK

U2 - 10.1016/j.jss.2017.12.026

DO - 10.1016/j.jss.2017.12.026

M3 - Article

VL - 138

SP - 174

EP - 188

JO - Journal of Systems and Software

JF - Journal of Systems and Software

SN - 0164-1212

ER -