The Influence of Code Smells in Efferent Neighbors on Class Stability
Zushuai Zhang, Elliott Wen, Ewan Tempero

TL;DR
This paper investigates how code smells in classes that a given class depends on influence its stability, especially considering code smell interrelation and interaction, using empirical data from GitHub projects.
Contribution
It introduces an empirical analysis of the impact of efferent neighbor code smells, interrelation, and interaction on class stability, expanding understanding beyond the class itself.
Findings
Code smells in efferent neighbors affect class stability.
Code smell interrelation and interaction exacerbate stability issues.
Empirical evidence from GitHub projects supports these effects.
Abstract
Understanding what drives code instability is essential for effective software maintenance, as unstable classes require larger or more frequent edits and increase the risk of unintended side effects. Although code smells are widely believed to harm maintainability, most prior stability studies examine only the smells within the class being modified. In practice, however, classes can change because their efferent neighbors (i.e., the classes they depend on) are modified due to ripple effects that propagate along static dependencies, even if the class itself is clean. Such ripple effects may be more severe when the efferent neighbor exhibits code smells. In addition, code smells rarely occur alone. They often appear together within a class or across classes connected by static dependencies, a phenomenon known as code smell interrelation. Such interrelation can lead to code smell…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software System Performance and Reliability
