Understanding Software Architecture Erosion: A Systematic Mapping Study

12/21/2021
by   Ruiyin Li, et al.
0

Architecture erosion (AEr) can adversely affect software development and has received significant attention in the last decade. However, there is an absence of a comprehensive understanding of the state of research about the reasons and consequences of AEr, and the countermeasures to address AEr. This work aims at systematically investigating, identifying, and analyzing the reasons, consequences, and ways of detecting and handling AEr. With 73 studies included, the main results are as follows: (1) AEr manifests not only through architectural violations and structural issues but also causing problems in software quality and during software evolution; (2) non-technical reasons that cause AEr should receive the same attention as technical reasons, and practitioners should raise awareness of the grave consequences of AEr, thereby taking actions to tackle AEr-related issues; (3) a spectrum of approaches, tools, and measures has been proposed and employed to detect and tackle AEr; and (4) three categories of difficulties and five categories of lessons learned on tackling AEr were identified. The results can provide researchers a comprehensive understanding of AEr and help practitioners handle AEr and improve the sustainability of their architecture. More empirical studies are required to investigate the practices of detecting and addressing AEr in industrial settings.

READ FULL TEXT

page 1

page 14

research
12/26/2022

Mining Architectural Information: A Systematic Mapping Study

Context: Mining Software Repositories (MSR) has become an essential acti...
research
03/21/2021

Understanding Architecture Erosion: The Practitioners' Perceptive

As software systems evolve, their architecture is meant to adapt accordi...
research
07/20/2020

Why Research on Test-Driven Development is Inconclusive?

[Background] Recent investigations into the effects of Test-Driven Devel...
research
04/16/2021

Exploring software developers' work practices: Task differences, participation, engagement, and speed of task resolution

In seeking to understand the processes enacted during software developme...
research
05/29/2021

Identification and Measurement of Technical Debt Requirements in Software Development: a Systematic Literature Review

Context: Technical Debt requirements are related to the distance between...
research
04/26/2019

Are Architectural Smells Independent from Code Smells? An Empirical Study

Background. Architectural smells and code smells are symptoms of bad cod...
research
01/29/2021

Résumé-Driven Development: A Definition and Empirical Characterization

Technologies play an important role in the hiring process for software p...

Please sign up or login with your details

Forgot password? Click here to reset