Estimating Refactoring Efforts of Code Smells

Motivation. Code Smells detection approaches commonly provide an exhaustive list of refactoring. However, not all the code smells are important to be refactored. To find an important factor, there several studies have proposed, they introduced a severity score, context-driven, bug and change proneness etc. Although the studies identified these important factors to refactor, the effort to refactor still unknown. By introducing effort factor, we could improve our decision to refactor in term of the cost of maintenance. Low cost of refactoring with high severity score, bug and changes related and context-driven could be maximize the list of refactoring candidates.

Challenges. One of the reasons is the level of effort is very low. In other words, to define a unit of refactoring work quite hard. For example, Move Method or Extract Class is one of the effort that need to be executed to refactor God Class but it is hard to estimate in time (i.e., how many minutes to implement the step is depend how programmer comprehend the system and his background/experience) or size(i.e.,how many LOC need be changed in order to achieve the step).

Goal. To construct a refactoring effort model that consider severity and change proneness score.

Research Questions

  • How to measure a refactoring work or effort of code smells?
    • Based on class dependency or change impact analysis?
    • Based on issue tracking?
  • Is there any existing literature or approach (to calculate refactoring effort) that can measure empirically instead of estimation?
  • Do the refactoring effort could help in minimizing a list of code smells? (validation phase)



Project information



Thesis for degree:



Umair Abbas Hayat