Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Identifying Refactoring Opportunities Using Logic Meta Programming
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Searching for Opportunities of Refactoring Sequences: Reducing the Search Space
COMPSAC '08 Proceedings of the 2008 32nd Annual IEEE International Computer Software and Applications Conference
JDeodorant: Identification and Removal of Type-Checking Bad Smells
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Identification of Extract Method Refactoring Opportunities
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Identifying Fragments to be Extracted from Long Methods
APSEC '09 Proceedings of the 2009 16th Asia-Pacific Software Engineering Conference
Do metrics help to identify refactoring?
Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE)
Hi-index | 0.00 |
Refactoring is a well-known technique that preserves software behaviors and improves its bad structures or bad smells. In most cases, more than one bad smell is found in a program. Consequently, developers frequently apply refactorings more than once. Applying appropriate refactoring sequences, an ordered list of refactorings, developers can remove bad smells as well as reduce improvement time and produce highly maintainable software. According to our 2011 survey, developers consider four main criteria to select an optimal refactoring sequence: 1) the number of removed bad smells, 2) maintainability, 3) the size of refactoring sequence and 4) the number of modified program elements. A refactoring sequence that satisfies these four criteria produces code without bad smells, with higher maintainability, using the least improvement effort and time, and providing more traceability. Some existing works suggest a list of refactorings without ordering, and others suggest refactoring sequences. However, these works do not consider the four criteria discussed earlier. Therefore, our research proposes an approach to identify an optimal refactoring sequence that meets these criteria. In addition, it is expected that the findings will reduce maintenance time and cost, increase maintainability and enhance software quality.