Quality Assessment for Primary Studies on Identifying Refactoring Opportunities in Object-Oriented Code

Quality Assessment for Primary Studies on Identifying Refactoring Opportunities in Object-Oriented Code

Refactoring is a maintenance task that refers to the process of restructuring software source code to enhance its quality without affecting its external behavior. Manually inspecting and analyzing the source code of the system under consideration to identify refactoring opportunities are time consuming and costly process. Researchers typically propose fully or semi-automated techniques to predict or identify the refactoring opportunities. In the present study, we demonstrate an application for a proposed framework that assesses the quality of the studies reported in the published primary studies (PSs) on the refactoring prediction/ identification techniques. The framework is applied on 47 selected PSs to assess the quality of the studies based on their design, conduct, analysis, and conclusion. We used the results to comment on the weakness of the existing PSs and the issues that have to be considered with much attention in the future studies.

___

  • Al Dallal J. 2012. Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics, Journal Information and Software Technology archive. 54, 10, 1125- 1141.
  • Al Dallal J. 2015. Identifying refactoring opportunities in object- oriented code: a systematic literature review, Information and Software Technology. 58, 231-249.
  • Al Dallal J. and Briand L.C. 2012. A Precise Method-Method Interaction-Based Cohesion Metric for Object-Oriented Classes, ACM Transactions on Software Engineering and Methodology (TOSEM) TOSEM, 21, 2, Article No. 8.
  • Alkhalid A., Alshayeb M., and Mahmoud S. 2010. Software refactoring at the function level using new Adaptive K-Nearest Neighbor algorithm, Advances in Engineering Software, 41, 10-11, 1160-1178.
  • Alkhalid A., Alshayeb M., and Mahmoud S.A. 2011. Software refactoring at the class level using clustering techniques, Journal of Research and Practice in Information Technology, 43, 4, 285-306.
  • Alkhalid A., Alshayeb M., and Mahmoud S.A. 2011. Software refactoring at the package level using clustering techniques, Software IET, 5, 3, 276-284.
  • Bavota G., De Lucia A., Marcus A., and Oliveto R. 2013a, Automating extract class refactoring: an improved method and its evaluation, Empirical Software Engineering, 1-48.
  • Bavota G., De Lucia A,, Marcus A., and Oliveto R. 2013b. Using structural and semantic measures to improve software modularization, Empirical Software Engineering, 18, 5, 901-932.
  • Bavota G., De Lucia A., and Oliveto R. 2011. Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures, Journal of Systems and Software, 84, 3, 397-414.
  • Bavota G., Gethers M., Oliveto R., Poshyvanyk D., and De Lucia A. 2014. Improving software modularization via automated analysis of latent topics and dependencies, ACM Transactions on Software Engineering and Methodologies, 23, 1, Article No. 4.
  • Bavota G., Oliveto R., Gethers M., Poshyvanyk D., and De Lucia A. 2014. Methodbook: Recommending move method refactorings via relational topic models, IEEE Transactions on Software Engineering, 40, 7, 671-694.
  • Bavota G., OlivetoR., De Lucia A., Antoniol G., and Gueheneuc Y. 2010. Playing with refactoring: Identifying extract class opportunities through game theory, In: IEEE International Conference on Software Maintenance (ICSM), 1-5.
  • Cassell K., Andreae P., and Groves L. 2011. A dual clustering approach to the extract class refactoring, In: Proceedings on the 23rd International Conference on Software Engineering and Knowledge Engineering (SEKE'11), Miami, FL, USA.
  • Czibula I.G. and Czibula G.2008. Hierarchical clustering based automatic refactorings detection, WSEAS Transactions on Electronics, 5, 7, 291-302.
  • Czibula I.G. and Serban G. 2006. Improving systems design using a clustering approach, IJCSNS International Journal of Computer Science and Network Security, 6, 12, 40-49.
  • Du Bois B., Demeyer S., and Verelst J. 2004. Refactoring - improving coupling and cohesion of existing code, In: Proceedings of the 11th Working Conference on Reverse Engineering, 144-151.
  • Fokaefs M., Tsantalis N., Chatzigeorgiou A., and Sander J. 2009. Decomposing object-oriented class modules using an agglomerative clustering technique, IEEE International Conference on Software Maintenance, Canada, 93-101.
  • Fokaefs M., Tsantalis N., and Stroulia E. 2011. A. Chatzigeorgiou, JDeodorant: identification and application of extract class refactorings, In: Proceedings of the 33rd International Conference on Software Engineering, 1037-1039.
  • Fokaefs M., Tsantalis N., Stroulia E., and Chatzigeorgiou A. 2012. Identification and application of Extract Class refactorings in object- oriented systems, Journal of Systems and Software, 85, 10, 2241- 2260.
  • Fokaefs M., Tsantalis N., Stroulia E., and Chatzigeorgiou A.2007. JDeodorant: Identification and removal of Feature Envy bad smells, In: Proceedings of IEEE International Conference on Software Maintenance, 467-468.
  • Fowler M. 1999. Refactoring: improving the design of existing code, Addison-Wesley Longman Publishing Co., Inc., Boston, MA.
  • Higo Y., Kamiya T., Kusumoto S., and Inoue K. 2004. Aries: Refactoring support environment based on code clone analysis, In: Proceedings of the 8th IASTED International Conference on Software Engineering and Applications, Article No. 436-084, 222- 229.
  • Higo Y., Kusumoto S., and Inoue K. 2008. A metric-based approach to identifying refactoring opportunities for merging code clones in a Java software system, Journal of Software Maintenance and Evolution: Research and Practice, 20, 6, 435-461.
  • Hotta K., Higo Y., and Kusumoto S. 2012. Identifying, Tailoring, and Suggesting Form Template Method Refactoring Opportunities with Program Dependence Graph, In: Proceedings of the 16th European Conference on Software Maintenance and Reengineering, 53-62.
  • Kanemitsu T., Higo Y., and Kusumoto S. 2011. A visualization method of program dependency graph for identifying extract method opportunity, In: Proceedings of the 4th Workshop on Refactoring Tools, 8-14.
  • Kataoka Y., Notkin D., Ernst M.D., and Griswold W.G. 2001. Automated Support for Program Refactoring using Invariants, In: Proceedings of the IEEE International Conference on Software Maintenance, 736.
  • Kimura S., Higo Y., Igaki H., and Kusumoto S. 2012. Move code refactoring with dynamic analysis, In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM), 575- 578.
  • Kitchenham B. and Charters S. 2007. Guidelines for performing systematic literature reviews in software engineering, Technical Report EBSE, Keele University, UK.
  • Lee S., Bae G., Chae S.H., Bae D., and Kwon Y.R. 2011. Automated scheduling for clone-based refactoring using a competent GA, Software--Practice & Experience, 41, 5, 521-550.
  • Liu H., Niu Z., Ma Z., and Shao W. 2013. Identification of generalization refactoring opportunities, Automated Software Engineering, 20, 1, 81-110.
  • Mahouachi R., Kessentini M., and Ghedira K. 2012. A new design defects classification: marrying detection and correction, In: Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering, 455-470.
  • Melton H. and Tempero E. 2007. The CRSS metric for package design quality, In: Proceedings of the 30th Australasian conference on Computer science, 62, 201-210.
  • Mens T. and Tourwé T. 2004. A survey of software refactoring, IEEE Transactions on Software Engineering, 30, 2, 126-139.
  • Mens T., Tourwé T., and Muñoz F. 2003. Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring, In: Proceedings of the 6th International Workshop on Principles of Software Evolution, 39.
  • Oliveto R., Gethers M., Bavota G., Poshyvanyk D., and De Lucia A. 2011. Identifying method friendships to remove the feature envy bad smell (NIER track), In: Proceedings of the 33rd International Conference on Software Engineering,820-823.
  • Pan WF., JiangB., and Li B. 2013. Refactoring software packages via community detection in complex software networks, International Journal of Automation and Computing, 10, 2, 157-166.
  • Pan W., Jiang WB., and Xu Y. 2013. Refactoring packages of object- oriented software using genetic algorithm based community detection technique, International Journal of Computer Applications in Technology, 48, 3, 185-194.
  • PanW., Li B., Ma Y., Liu J., and Qin Y. 2009. Class structure refactoring of object-oriented softwares using community detection in dependency networks, Frontiers of Computer Science in China, 3, 3, 396-404.
  • Pan WF., Wang J. and Wang MC. 2013. Identifying the move method refactoring opportunities based on evolutionary algorithm, International Journal of Modelling, Identification and Control, 18, 2, 182-189.
  • Piveta E. 2009. Improving the search for refactoring opportunities on object-oriented and aspect-oriented software, Ph.D. thesis, Univeridade Federal Do Rio Grande Do Sul, Porto Alegre.
  • RadjenovicD., Hericko M., Torkar R., and Zivkovic A. 2013. Software fault prediction metrics: a systematic literature review, Information and Software Technology, 55, 8, 1397-1418.
  • Rao AA. And Reddy Kn. 2011. Identifying clusters of concepts in a low cohesive class for extract class refactoring using metrics supplemented agglomerative clustering technique, International Journal of Computer Science Issues, 8,5 5-2, 185-194.
  • Sales V., Terra R., Miranda L.F., and Valente M.T. 2013. Recommending move method refactorings using dependency sets, IEEE 20th Working Conference on Reverse Engineering (WCRE), 232-241.
  • Seng O., Stammel J., and Burkhart D. 2006. Search-based determination of refactorings for improving the class structure of object-oriented systems, In: Proceedings of the 8th annual conference on Genetic and evolutionary computation, 1909-1916.
  • Serban G. and Czibula I.G. 2007. Restructuring software systems using clustering, 22nd international symposium on Computer and information sciences, 1-6.
  • Tairas R. and Gray J. 2012. Increasing clone maintenance support by unifying clone detection and refactoring activities, Information and Software Technology, 54, 12, 1297-1307.
  • Tourwé T. and Mens T. 2003. Identifying refactoring opportunities using logic meta programming, In: Proceedings of the 7th European Conference on Software Maintenance and Reengineering, 91-100.
  • Tsantalis N. and Chatzigeorgiou A. 2009. Identification of Extract Method Refactoring Opportunities, In: Proceedings of the 13th European Conference on Software Maintenance and Reengineering, 119-128.
  • Tsantalis N. and Chatzigeorgiou A. 2009. Identification of Move Method Refactoring Opportunities, IEEE Transactions on Software Engineering, 35, 3, 347-367.
  • Tsantalis N. and Chatzigeorgiou A. 2010. Identification of refactoring opportunities introducing polymorphism, Journal of Systems and Software, 83 ,3, 391-404.
  • Tsantalis N. and Chatzigeorgiou A. 2011. Identification of extract method refactoring opportunities for the decomposition of methods, Journal of Systems and Software, 84, 10, 1757-1782.
  • Yang L., Liu H., and NiuZ. 2009. Identifying Fragments to be Extracted from Long Methods, In: Proceedings of the 16th Asia- Pacific Software Engineering Conference, 43-49.
  • Zhao L. and Hayes J. 2006. Predicting classes in need of refactoring: an application of static metrics, In: Proceedings of the 2nd International PROMISE Workshop, Philadelphia, Pennsylvania USA.
  • J. Al Dallal, Evaluating quality of primary studies on determining object-oriented code refactoring candidates, International Conference on Engineering & MIS 2015, Istanbul , Turkey, 2015.