Prioritization of smelly classes: A two phase approach (Reducing refactoring efforts)

Anshul Rani, Jitender Kumar Chhabra · 2017

Frequent changes in an object-oriented software system often result into a poor-quality and less maintainable design and the symptoms (known as Code Smells) causing that degradation, need to be corrected for which refactoring is one of the possible solutions. It is not feasible to refactor/ restructure each and every smelly class due to various constraints such as time and cost. Hence it is desirable to make an efficient approach of refactoring. Proposed scheme aims to save time (and cost) of refactoring by carrying out selective refactoring for high priority smelly classes. Prioritization is proposed to be done according to interaction level of each class with other classes. The proposed methodology works in two phases; first phase detects smelly classes using structural information of source code and second phase mines change history to prioritize smelly classes. This prioritization is used to carry out refactoring of more severe classes. This process helps in reducing efforts of refactoring and at the same time may result in avoiding refactoring chains. The proposed technique has been evaluated over a software consisting of 49 classes and results have been validated. The results clearly indicate that the proposed approach performs better and can be very useful for software maintainers in effective and efficient refactoring.

Read the paper · More papers on PaperTik