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
Proceedings ArticleDOI

An Empirical Study of Long Method and God Method in Industrial Projects

TL;DR: The study highlights the need for a clearer definition of this kind of code smell, and there are many factors not only length which is affecting the code quality, and at the same time the definition of "doing too much" should be modeling to illuminate this kindof code smell.
Journal ArticleDOI

Code Smells in Machine Learning Systems

TL;DR: This is the first study on investigating code smells in the context of DL software systems, which helps researchers and practitioners to get a first look at what kind of maintenance modification made and what code smells developers have been dealing with.

On Continuous Detection of Design Flaws in Evolving Object-Oriented Programs using Incremental Multi-Pattern Matching.

TL;DR: In this article, a comprehensive methodology for specifying object-oriented design flaws by means of compound rules integrating code metrics, code smells and anti-patterns in a modular way is proposed.
Proceedings ArticleDOI

An Empirical Study on Maintainable Method Size in Java

TL;DR: This paper examines the evolution of ∼785K Java methods and shows that developers should strive to keep their Java methods under 24 lines in length, and demonstrates that decomposing larger methods to smaller methods also decreases overall maintenance efforts.
Proceedings ArticleDOI

Alternative Sources of Information for Code Smell Detection: Postcards from Far Away

TL;DR: This work highlights several aspects that can possibly contribute to the improvement of the current state of the art of code smell detection and proposes solutions, based on the analysis on how code smells are actually introduced as well as the usefulness of historical and textual information to realize more reliable code smell detectors.
References
More filters
Book

Refactoring: Improving the Design of Existing Code

TL;DR: Almost every expert in Object-Oriented Development stresses the importance of iterative development, but how do you add function to the existing code base while still preserving its design integrity?
Journal Article

[''R"--project for statistical computing].

TL;DR: An introduction to the R project for statistical computing (www.R-project.org) is presented to make the professional community aware of "R" as a potent and free software for graphical and statistical analysis of medical data.
Journal ArticleDOI

A survey of software refactoring

TL;DR: This research is compared and discussed based on a number of different criteria: the refactoring activities that are supported, the specific techniques and formalisms that are used for supporting these activities, the types of software artifacts that are being refactored, the important issues that need to be taken into account when buildingRefactoring tool support, and the effect of refactors on the software process.
Journal ArticleDOI

A Systematic Literature Review on Fault Prediction Performance in Software Engineering

TL;DR: Although there are a set of fault prediction studies in which confidence is possible, more studies are needed that use a reliable methodology and which report their context, methodology, and performance comprehensively.
Journal ArticleDOI

DECOR: A Method for the Specification and Detection of Code and Design Smells

TL;DR: DETEX is proposed, a method that embodies and defines all the steps necessary for the specification and detection of code and design smells, and a detection technique that instantiates this method, and an empirical validation in terms of precision and recall of DETEX.
Related Papers (5)