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

Evaluating the Impact of Possible Dependencies on Architecture-Level Maintainability

TL;DR: In this article , the authors conducted a study of 499 open-source Python projects, employing type inference techniques and type hint practices to discern possible dependencies, and found that the impact of possible dependencies on architecture-level maintainability is substantial.
Proceedings ArticleDOI

An exploratory study on the identification and evaluation of bad smell agglomerations

TL;DR: In this article, the authors evaluate agglomerations composed of four kinds of bad smells: Large Class, Long Method, Feature Envy and Refused Bequest, and find that these smells are highly spread in the source code, even when the size of the systems are taken into account.
Proceedings Article

Identifying strategies on god class detection in two controlled experiments.

TL;DR: The aim is to build empirical support to exploration of the human role on code smell detection by investigating strategies adopted by developers on god class detection and finding that the observation of coupling is more relevant than the observed attributes like LOC or complexity and the hierarchical relation among these.
Posted Content

Benchmarking Web-testing - Selenium versus Watir and the Choice of Programming Language and Browser

TL;DR: The performance of web-testing tools is investigated to provide empirical evidence supporting choices in software test tool selection and configuration and to recommend benchmarking tools before adopting them.
Proceedings ArticleDOI

Measuring refactoring benefits: a survey of the evidence

TL;DR: The evidence suggests that what motivates developers to refactor, and what benefits accrue from refactoring, are open issues that require further research.
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)