Symptoms of Architecture Erosion in Code Reviews: A Study of Two OpenStack Projects

01/04/2022
by   Ruiyin Li, et al.
0

The phenomenon of architecture erosion can negatively impact the maintenance and evolution of software systems, and manifest in a variety of symptoms during software development. While erosion is often considered rather late, its symptoms can act as early warnings to software developers, if detected in time. In addition to static source code analysis, code reviews can be a source of detecting erosion symptoms and subsequently taking action. In this study, we investigate the erosion symptoms discussed in code reviews, as well as their trends, and the actions taken by developers. Specifically, we conducted an empirical study with the two most active Open Source Software (OSS) projects in the OpenStack community (i.e., Nova and Neutron). We manually checked 21,274 code review comments retrieved by keyword search and random selection, and identified 502 code review comments (from 472 discussion threads) that discuss erosion. Our findings show that (1) the proportion of erosion symptoms is rather low, yet notable in code reviews and the most frequently identified erosion symptoms are architectural violation, duplicate functionality, and cyclic dependency; (2) the declining trend of the identified erosion symptoms in the two OSS projects indicates that the architecture tends to stabilize over time; and (3) most code reviews that identify erosion symptoms have a positive impact on removing erosion symptoms, but a few symptoms still remain and are ignored by developers. The results suggest that (1) code review provides a practical way to reduce erosion symptoms; and (2) analyzing the trend of erosion symptoms can help get an insight about the erosion status of software systems, and subsequently avoid the potential risk of architecture erosion.

READ FULL TEXT
research
03/21/2021

Understanding Code Smell Detection via Code Review: A Study of the OpenStack Community

Code review plays an important role in software quality control. A typic...
research
12/23/2022

Warnings: Violation Symptoms Indicating Architecture Erosion

As a software system evolves, its architecture tends to degrade, and gra...
research
03/06/2018

Code Review Comments: Language Matters

Recent research provides evidence that effective communication in collab...
research
08/23/2021

The "Shut the f**k up" Phenomenon: Characterizing Incivility in Open Source Code Review Discussions

Code review is an important quality assurance activity for software deve...
research
06/14/2023

Towards Automatic Identification of Violation Symptoms of Architecture Erosion

Architecture erosion has a detrimental effect on maintenance and evoluti...
research
03/21/2021

RAID: Tool Support for Refactoring-Aware Code Reviews

Code review is a key development practice that contributes to improve so...
research
03/16/2022

Code Smells in Elixir: Early Results from a Grey Literature Review

Elixir is a new functional programming language whose popularity is risi...

Please sign up or login with your details

Forgot password? Click here to reset