ABSTRACT
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.
- Fowler, M. Refactoring: Improving the Design of Existing Programs. Addison-Wesley Publishing Company, 1999. Google ScholarDigital Library
- Meananeatra, P., Rongviriyapanish S., Apiwattanapong T. A Survey on the Maintaining of Software Structure in Thai Software Industries. In Computer Science and Information Technology,International Conference on Information and Digital Engineering, September 2011.Google Scholar
- Qayum, F., and Heckel, R. Search-Based Refactoring based on Unfolding of GraphTransformation Systems. In the Fifth International Conference on Graph Transformation - Doctoral Symposium Proceedings, September 2010.Google Scholar
- Touryw, T., and Mens, T. Identifying Refactoring Opportunities Using Logic Meta Programming. In the Seventh European Conference on Software Maintenance and Reengineering Proceedings, March 2003. Google ScholarDigital Library
- Yang, L., Liu, H., and Niu, Z. Identify Fragments to Be Extracted from Long Method. In the 2009 16th Asia-Pacific Software Engineering Conference , December 2009. Google ScholarDigital Library
- Tsantalis, N., Chatzigeorgiou, A. Identification of Extract Method Refactoring Opportunities. In Software Maintenance and Reengineering Proceedings, March 2009. Google ScholarDigital Library
- Tsantalis, N., Chaikalis, T., and Chatzigeorgiou, A. JDeodorant: Identi?cation and Removal of Type-Checking Bad Smells. In European Conference on Software Maintenance and Refactoring Proceedings, April 2008. Google ScholarDigital Library
- Meananeatra, P., Rongviriyapanish S., Apiwattanapong T. Using software metrics to select refactoring for long method bad smell. In 8th International Conference on Electrical Engineering/ Electronics, Computer, Telecommunications and Information Technology Proceedings, May 2011.Google ScholarCross Ref
- Meananeatra, P., Rongviriyapanish S., Apiwattanapong T. Identifying Refactoring through Formal Model Based on Data Flow Graph. In 5th Malaysian Conference in Software Engineering Proceedings, December 2011.Google ScholarCross Ref
- Schneider, J., Vasa, R. and Hoon, L. Do metrics help to identify refactoring? In the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution Proceedings, 2010. Google ScholarDigital Library
- Piveta, E., Araujo, J., Pimenta, M., Moreira, A., Guerreiro, P., and Price, R.T. Searching for Opportunities of Refactoring Sequences: Reducing the Search Space. In 32nd Annual IEEE International Computer Software and Applications Conference Proceedings, July 2008. Google ScholarDigital Library
- Kuhlemann, M., Liang, L. and Saake, G. Algebraic and Cost-based Optimization of Refactoring Sequences. In 2nd International Workshop on Model-driven Product Line Engineering held in conjunction with ECMFA 2010 Proceedings, June 2010.Google Scholar
- Kanellopoulos, Y., Antonellis, P., Antoniou, D., Makris, C., Theodoridis, E., Tjortjis, C., and Tsirakis, N. Code quality evaluation methodology using the ISO/IEC 9126 standard. International Journal of Software Engineering and Applications, July 2010.Google ScholarCross Ref
Index Terms
- Identifying refactoring sequences for improving software maintainability
Recommendations
Analyzing the Impact of Refactoring on Bad Smells
SBES '20: Proceedings of the XXXIV Brazilian Symposium on Software EngineeringRefactoring aims to remove bad smells and increase software maintainability by improving the software structure without changing its behavior. However, some studies show that refactoring tools may introduce new bad smells into the source code, but to the ...
Prioritization of Classes for Refactoring: A Step towards Improvement in Software Quality
WCI '15: Proceedings of the Third International Symposium on Women in Computing and InformaticsBad Smells are certain structures in the software which violates the design principles and ruin the software quality. In order to deals with the bad smells, often refactoring treatment is provided in the code which further improves the software quality. ...
Comments