Elements of Software Science (Operating and programming systems series)
Elements of Software Science (Operating and programming systems series)
Naive (Bayes) at Forty: The Independence Assumption in Information Retrieval
ECML '98 Proceedings of the 10th European Conference on Machine Learning
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
Maintainability Prediction: A Regression Analysis of Measures of Evolving Systems
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Data Mining Static Code Attributes to Learn Defect Predictors
IEEE Transactions on Software Engineering
Building an expert system to assist system refactorization
Expert Systems with Applications: An International Journal
Information and Software Technology
Hi-index | 12.05 |
In the lifetime of a software product, development costs are only the tip of the iceberg. Nearly 90% of the cost is maintenance due to error correction, adaptation and mainly enhancements. As Lehman and Belady [Lehman, M. M., & Belady, L. A. (1985). Program evolution: Processes of software change. Academic Press Professional.] state that software will become increasingly unstructured as it is changed. One way to overcome this problem is refactoring. Refactoring is an approach which reduces the software complexity by incrementally improving internal software quality. Our motivation in this research is to detect the classes that need to be rafactored by analyzing the code complexity. We propose a machine learning based model to predict classes to be refactored. We use Weighted Naive Bayes with InfoGain heuristic as the learner and we conducted experiments with metric data that we collected from the largest GSM operator in Turkey. Our results showed that we can predict 82% of the classes that need refactoring with 13% of manual inspection effort on the average.