scispace - formally typeset
Journal ArticleDOI

Quantifying the Effect of Code Smells on Maintenance Effort

Reads0
Chats0
TLDR
To reduce maintenance effort, a focus on reducing code size and the work practices that limit the number of changes may be more beneficial than refactoring code smells.
Abstract
Context: Code smells are assumed to indicate bad design that leads to less maintainable code. However, this assumption has not been investigated in controlled studies with professional software developers. Aim: This paper investigates the relationship between code smells and maintenance effort. Method: Six developers were hired to perform three maintenance tasks each on four functionally equivalent Java systems originally implemented by different companies. Each developer spent three to four weeks. In total, they modified 298 Java files in the four systems. An Eclipse IDE plug-in measured the exact amount of time a developer spent maintaining each file. Regression analysis was used to explain the effort using file properties, including the number of smells. Result: None of the 12 investigated smells was significantly associated with increased effort after we adjusted for file size and the number of changes; Refused Bequest was significantly associated with decreased effort. File size and the number of changes explained almost all of the modeled variation in effort. Conclusion: The effects of the 12 smells on maintenance effort were limited. To reduce maintenance effort, a focus on reducing code size and the work practices that limit the number of changes may be more beneficial than refactoring code smells.

read more

Citations
More filters
Journal ArticleDOI

When and Why Your Code Starts to Smell Bad (and Whether the Smells Go Away)

TL;DR: The findings mostly contradict common wisdom stating that smells are being introduced during evolutionary tasks, and call for the need to develop a new generation of recommendation systems aimed at properly planning smell refactoring activities.
Journal ArticleDOI

Comparing and experimenting machine learning techniques for code smell detection

TL;DR: The largest experiment of applying machine learning algorithms to code smells to the best of the authors' knowledge concludes that the application of machine learning to the detection of these code smells can provide high accuracy (>96 %), and only a hundred training examples are needed to reach at least 95 % accuracy.
Proceedings ArticleDOI

When and why your code starts to smell bad

TL;DR: The findings mostly contradict common wisdom, showing that most of the smell instances are introduced when an artifact is created and not as a result of its evolution, and at the same time, 80 percent of smells survive in the system.
Journal ArticleDOI

On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation

TL;DR: The results show that smells characterized by long and/or complex code (e.g., Complex Class) are highly diffused, and that smelly classes have a higher change- and fault-proneness than smell-free classes.
Journal ArticleDOI

Evolution of software in automated production systems

TL;DR: In this article, the authors provide an interdisciplinary survey on challenges and state-of-the-art in evolution of automated production systems, and summarize future research directions to address the challenges of evolution in automated production system.
References
More filters
Proceedings ArticleDOI

Assessing the effect of clones on changeability

TL;DR: This paper compares measures of the maintenance effort on methods with clones against those without and finds that some methods seem to increase significantly their maintenance effort when a clone was present, but the characteristics analyzed in these methods did not reveal any systematic relation between cloning and such maintenance effort increase.
Journal ArticleDOI

Clones: what is that smell?

TL;DR: The findings do not support the claim that clones are really a “bad smell” (Fowler et al. 1999), and it is found that clones may be less defect prone than non-cloned code.
Proceedings ArticleDOI

Some misconceptions about lines of code

TL;DR: It is shown that there is an important inverse relationship between defect density and code size, and that SLOC is most useful as a predictor of software quality as well as a covariate of other predictors.
Journal ArticleDOI

Evaluating the effect of a delegated versus centralized control style on the maintainability of object-oriented software

TL;DR: The results show that the most skilled developers, in particular, the senior consultants, require less time to maintain software with a delegated control style than with a centralized control style, however, more novice developers have serious problems understanding a delegatedControl style, and perform far better with a central control style.
Proceedings ArticleDOI

A Visual Text Mining approach for Systematic Reviews

TL;DR: It is observed that VTM can contribute to systematic review and a new strategy is proposed, called VTM-Based systematic review, which is proposed to aid systematic reviews of software engineering research topics.
Related Papers (5)