Background: Owing to the benefits of software refactoring, the software industry started
adopting this practice in the maintenance phase as a means to improve developer’s productivity and
software quality. As a result, proposing new techniques for refactoring opportunity identification
and sequencing has become the key area of interest for academicians and industry researchers.
Objective: This paper aims to perform a review of such existing approaches which are related to
software refactoring opportunity identification and sequencing.
Methods: We discussed the background concepts of code smells and refactoring and provided their
corresponding taxonomies. Moreover, comprehensive literature of several techniques that automatically
or semi-automatically identify or prioritize the refactoring opportunities is presented along
with considered refactoring activities, optimization algorithms, bad smells, datasets and underlying
Results: The research in the direction of refactoring opportunity identification and sequencing is
highly active and is generally performed by academic researchers. Most of the techniques address
Move Method and Extract Class refactoring activities in Java datasets.
Conclusion: This paper highlights various open challenges that need further investigation, including
lack of dynamic analysis-based approaches, lesser utilization of industrial datasets, nonconsideration
of recent optimization algorithms, etc.