Refactoring prediction using class complexity metrics

Yasemin Köşker, Burak Turhan, Ayşe Bener

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

2 Citations (Scopus)

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.

Original languageEnglish
Title of host publication2nd International Workshop on Architectures, Concepts and Technologies for Service Oriented Computing, ACT4SOC 2008 - In Conjunction with the 3rd International Conference on Software and Data Technologies, ICSOFT 2008
Pages289-292
Number of pages4
VolumeSE
EditionGSDCA/M/-
Publication statusPublished - 22 Dec 2008
Externally publishedYes
EventInternational Workshop on Architectures, Concepts and Technologies for Service Oriented Computing 2008 - Porto, Portugal
Duration: 5 Jul 20088 Jul 2008
Conference number: 2nd

Workshop

WorkshopInternational Workshop on Architectures, Concepts and Technologies for Service Oriented Computing 2008
Abbreviated titleACT4SOC 2008
Country/TerritoryPortugal
CityPorto
Period5/07/088/07/08

Keywords

  • Defect prediction
  • Naïve Bayes
  • Refactor prediction
  • Refactoring
  • Software metrics
  • Weighted Naïve Bayes

Cite this