Understanding Architecture Erosion: The Practitioners' Perceptive

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

As software systems evolve, their architecture is meant to adapt accordingly by following the changes in requirements, the environment, and the implementation. However, in practice, the evolving system often deviates from the architecture, causing severe consequences to system maintenance and evolution. This phenomenon of architecture erosion has been studied extensively in research, but not yet been examined from the point of view of developers. In this exploratory study, we look into how developers perceive the notion of architecture erosion, its causes and consequences, as well as tools and practices to identify and control architecture erosion. To this end, we searched through several popular online developer communities for collecting data of discussions related to architecture erosion. Besides, we identified developers involved in these discussions and conducted a survey with 10 participants and held interviews with 4 participants. Our findings show that: (1) developers either focus on the structural manifestation of architecture erosion or on its effect on run-time qualities, maintenance and evolution; (2) alongside technical factors, architecture erosion is caused to a large extent by non-technical factors; (3) despite the lack of dedicated tools for detecting architecture erosion, developers usually identify erosion through a number of symptoms; and (4) there are effective measures that can help to alleviate the impact of architecture erosion.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

12/21/2021

Understanding Software Architecture Erosion: A Systematic Mapping Study

Architecture Erosion (AEr) can adversely affect software development and...
06/22/2021

Do practitioners intentionally self-fix Technical Debt and why?

The impact of Technical Debt (TD) on software maintenance and evolution ...
08/04/2021

The Impact of Traceability on Software Maintenance and Evolution: A Mapping Study

Software traceability plays a critical role in software maintenance and ...
08/08/2017

An Empirical Comparison of Developer Retention in the RubyGems and npm Software Ecosystems

Software ecosystems can be viewed as socio-technical networks consisting...
08/02/2021

Relationships between Software Architecture and Source Code in Practice: An Exploratory Survey and Interview

Context: Software Architecture (SA) and Source Code (SC) are two intertw...
05/15/2018

Two Sides of the Same Coin: Software Developers' Perceptions of Task Switching and Task Interruption

In the constantly evolving world of software development, switching back...
05/27/2020

Beware the evolving 'intelligent' web service! An integration architecture tactic to guard AI-first components

Intelligent services provide the power of AI to developers via simple RE...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.