Reduction of Multiple Move Method Suggestions Using Total Call-Frequencies of Distinct Entities

Full Text (PDF, 563KB), PP.21-29

Views: 0 Downloads: 0

Author(s)

Atish Kumar Dipongkor 1,* Rayhanul Islam 2 Nadia Nahar 3 Iftekhar Ahmed 3 Kishan Kumar Ganguly 3 S.M. Arif Raian 3 Abdus Satter 3

1. Department of Computer Science and Engineering Jashore University of Science and Technology, Bangladesh

2. Institute of Leather Engineering and Technology, University of Dhaka

3. Institute of Information Technology, University of Dhaka

* Corresponding author.

DOI: https://doi.org/10.5815/ijieeb.2020.04.03

Received: 21 Mar. 2020 / Revised: 26 Apr. 2020 / Accepted: 24 Jun. 2020 / Published: 8 Aug. 2020

Index Terms

Feature Envy, Move Method Refactoring.

Abstract

Inappropriate placement of methods causes Feature Envy (FE) code smell and makes classes coupled with each other. To achieve cohesion among classes, FE code smell can be removed using automated Move Method Refactoring (MMR) suggestions. However, challenges arise when existing techniques provide multiple MMR suggestions for a single FE instance. The developers need to manually find an appropriate target classes for applying MMR as an FE instance cannot be moved to multiple classes. In this paper, a technique is proposed named MultiMMRSReducer, to reduce multiple MMR suggestions by considering the Total Call-Frequencies of Distinct Entities (TCFDE). Experimental results show that TCFDE can reduce the multiple MMR suggestions of an FE instance and performs 77.92% better than an existing approach, namely, JDeodorant. Moreover, it can ensure minimum future changes in the dependent classes of an FE instance.

Cite This Paper

Atish Kumar Dipongkor, Rayhanul Islam, Nadia Nahar, Iftekhar Ahmed, Kishan Kumar Ganguly, S.M. Arif Raian, Abdus Satter, "Reduction of Multiple Move Method Suggestions Using Total Call-Frequencies of Distinct Entities", International Journal of Information Engineering and Electronic Business(IJIEEB), Vol.12, No.4, pp. 21-29, 2020. DOI:10.5815/ijieeb.2020.04.03

Reference

[1]E. Gamma, Design patterns: elements of reusable object-oriented software, Pearson Education India, 1995.
[2]R. C. Martin, Agile software development: principles, patterns, and practices, Prentice Hall, 2002.
[3]V. R. Basili, L. C. Briand and W. L. Melo, "A validation of object-oriented design metrics as quality indicators," IEEE Transactions on software engineering, vol. 22, p. 751–761, 1996.
[4]L. C. Briand, J. Wüst, S. V. Ikonomovski and H. Lounis, "Investigating quality factors in object-oriented designs: an industrial case study," in Proceedings of the 21st international conference on Software engineering, 1999.
[5]S. R. Chidamber, D. P. Darcy and C. F. Kemerer, "Managerial use of metrics for object-oriented software: An exploratory analysis," IEEE Transactions on software Engineering, vol. 24, p. 629–639, 1998.
[6]L. C. Briand, J. Wust and H. Lounis, "Using coupling measurement for impact analysis in object-oriented systems," in Software Maintenance, 1999.(ICSM'99) Proceedings. IEEE International Conference on, 1999.
[7]M. A. Chaumun, H. Kabaili, R. K. Keller, F. Lustman and G. Saint-Denis, "Design Properties and Object-Oriented Software Changeability," in 4th European Conference on Software Maintenance and Reengineering, CSMR 2000, Zurich, Switzerland, February 29 - March 3, 2000., 2000.
[8]M. D'Ambros, A. Bacchelli and M. Lanza, "On the impact of design flaws on software defects," in Quality Software (QSIC), 2010 10th International Conference on, 2010.
[9]D. I. K. Sjøberg, A. Yamashita, B. C. D. Anda, A. Mockus and T. Dybå, "Quantifying the effect of code smells on maintenance effort," IEEE Transactions on Software Engineering, vol. 39, p. 1144–1156, 2013.
[10]M. Fowler and K. Beck, Refactoring: improving the design of existing code, Addison-Wesley Professional, 1999.
[11]M. Lanza and R. Marinescu, Object-Oriented Metrics in Practice - Using Software Metrics to Characterize, Evaluate, and Improve the Design of OO Systems, Springer, 2006.
[12]A. Yamashita and L. Moonen, "Do code smells reflect important maintainability aspects?," in Software Maintenance (ICSM), 2012 28th IEEE International Conference on, 2012.
[13]F. Simon, F. Steinbruckner and C. Lewerentz, "Metrics based refactoring," in Software Maintenance and Reengineering, 2001. Fifth European Conference on, 2001.
[14]N. Tsantalis and A. Chatzigeorgiou, "Identification of move method refactoring opportunities," IEEE Transactions on Software Engineering, vol. 35, p. 347–367, 2009.
[15]J. A. Dallal, "Predicting move method refactoring opportunities in object-oriented code," Information and Software Technology, vol. 92, p. 105–120, 2017.
[16]V. Sales, R. Terra, L. F. Miranda and M. T. Valente, "Recommending move method refactorings using dependency sets," in Reverse Engineering (WCRE), 2013 20th Working Conference on, 2013.
[17]R. M. Masudur, R. R. Rubby, K. S. Mostafa, S. Abdus and R. M. Rayhanur, "MMRUC3: A recommendation approach of move method refactoring using coupling, cohesion, and contextual similarity to enhance software design," Softw Pract Exper. 2018, pp. 1-28.
[18]G. Bavota, R. Oliveto, M. Gethers, D. Poshyvanyk and A. De Lucia, "Methodbook: Recommending move method refactorings via relational topic models," IEEE Transactions on Software Engineering, vol. 40, p. 671–694, 2014.
[19]F. Palomba, A. Panichella, A. De Lucia, R. Oliveto and A. Zaidman, "A textual-based technique for smell detection," in Program Comprehension (ICPC), 2016 IEEE 24th International Conference on, 2016.
[20]F. Palomba, G. Bavota, M. Di Penta, R. Oliveto, A. De Lucia and D. Poshyvanyk, "Detecting bad smells in source code using change history information," in Automated software engineering (ASE), 2013 IEEE/ACM 28th international conference on, 2013.
[21]W. F. Opdyke, "Refactoring object-oriented frameworks," 1992.
[22]T. Mens and T. Tourwé, "A survey of software refactoring," IEEE Transactions on software engineering, vol. 30, p. 126–139, 2004.
[23]R. R. Sokal and P. H. A. Sneath, "Principles of numerical taxonomy WH Freeman," San Francisco, CA, 1963.
[24]P. H. A. Sneath, R. R. Sokal and others, Numerical taxonomy. The principles and practice of numerical classification., 1973.
[25]J. Chang and D. Blei, "Relational topic models for document networks," in Artificial Intelligence and Statistics, 2009.
[26]R. Islam and K. Sakib A package-based clustering approach to enhance the accuracy and performance of software defect prediction. International Journal of Software Engineering, Technology and Applications. 2017; 2(1):1-21.
[27]R. Islam, and K. Sakib. "A Package Based Clustering for enhancing software defect prediction accuracy." In 2014 17th International Conference on Computer and Information Technology (ICCIT), pp. 81-86. IEEE, 2014.
[28]A. K. Dipongkor , I. Ahmed, and N. Nahar. "Move Method Recommendation using Call Frequency of Methods and Attributes." In 2018 Joint 7th International Conference on Informatics, Electronics & Vision (ICIEV) and 2018 2nd International Conference on Imaging, Vision & Pattern Recognition (icIVPR), pp. 76-81. IEEE, 2018.
[29]M. Selim, S. Siddik, A. U. Gias, M. Wadud, and S. M. Khaled. "A genetic algorithm for software design migration from structured to object oriented paradigm." arXiv preprint arXiv:1407.6116 (2014).