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
Raw Data: Are Architectural Smells independent from Code Smells? An empirical study
TL;DR: The results show that architectural smells are correlated with code smells only in a very low number of occurrences and therefore cannot be derived from code smells.
Posted Content
Bellwethers: A Baseline Method For Transfer Learning
Rahul Krishna,Tim Menzies +1 more
TL;DR: Using bellwethers as a baseline method for transfer learning against which future work should be compared is recommended, because conclusions about a community are stable as long as this Bellwether continues as the best oracle.
Journal ArticleDOI
Predicting Code Smells and Analysis of Predictions: Using Machine Learning Techniques and Software Metrics
TL;DR: This paper proposed a code smell prediction approach based on machine learning techniques and software metrics, and the local interpretable model-agnostic explanations (LIME) algorithm was further used to explain the machine learning model’s predictions and interpretability.
Proceedings ArticleDOI
Validating and prioritizing quality rules for managing technical debt: An industrial case study
Davide Falessi,Alexander Voegele +1 more
TL;DR: A case study aimed at exploring the interest associated with violating quality rules, which results pave the way to a better practical use of quality rules to manage technical debt and describe new research directions for building a scientific foundation to the technical debt metaphor.
Proceedings ArticleDOI
Revisiting the relationship between code smells and refactoring
TL;DR: This study investigates whether developers apply appropriate refactoring patterns to fix code smells in three open source software systems.
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
Tom Mens,Tom Tourwe +1 more
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.