Authors:
Yasemin Köşker
;
Burak Turhan
and
Ayşe Bener
Affiliation:
Boğaziçi University, Turkey
Keyword(s):
Weighted Naïve Bayes, Refactoring, Software Metrics, Naïve Bayes, Defect Prediction, Refactor Prediction.
Related
Ontology
Subjects/Areas/Topics:
Applications
;
Artificial Intelligence
;
Artificial Intelligence and Decision Support Systems
;
Case-Based Reasoning
;
Enterprise Information Systems
;
Enterprise Software Technologies
;
Information Systems Analysis and Specification
;
Maintenance
;
Operational Research
;
Pattern Recognition
;
Reliable Software Technologies
;
Requirements Analysis And Management
;
Software Engineering
;
Symbolic Systems
;
Theory and Methods
;
User Modeling
;
Web Information Systems and Technologies
;
Web Interfaces and Applications
Abstract:
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, adoptation and mainly enhancements. As Belady and Lehman (Lehman and Belady, 1985) 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 Naïve 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.