Advertisement

Application of SMOTE and LSSVM with Various Kernels for Predicting Refactoring at Method Level

  • Lov Kumar
  • Shashank Mouli Satapathy
  • Aneesh Krishna
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11305)

Abstract

Improving maintainability by refactoring is essentially being considered as one of the important aspect of software development. For large and complex systems, identification of code segments, which require re-factorization is a compelling task for software developers. Development of recommendation systems for suggesting methods, which require refactoring are achieved using this research work. Materials and Methods: Literature works considered source code metrics for object-oriented software systems in order to measure the complexity of a software. In order to predict the need of refactoring, the proposed system computes twenty-five different source code metrics at the method level and utilize them as features in a machine learning framework. An open source dataset consisting of five different software systems is being considered for conducting a series of experiments in order to assess the performance of proposed approach. LSSVM with SMOTE data imbalance technique are being utilized in order to overcome the class imbalance problem. Conclusion: Analysis of the results reveals that LS-SVM with RBF kernel using SMOTE results in the best performance.

Keywords

LSSVM Kernels Refactoring Source code metrics Smote 

References

  1. 1.
    The promise repository of empirical software engineering data (2015)Google Scholar
  2. 2.
    Al Dallal, J.: Predicting move method refactoring opportunities in object-oriented code. Inf. Softw. Technol. 92, 105–120 (2017)CrossRefGoogle Scholar
  3. 3.
    Bavota, G., De Lucia, A., Di Penta, M., Oliveto, R., Palomba, F.: An experimental investigation on the innate relationship between quality and refactoring. J. Syst.Softw. 107, 1–14 (2015)CrossRefGoogle Scholar
  4. 4.
    Chávez, A., Ferreira, I., Fernandes, E., Cedrim, D., Garcia, A.: How does refactoring affect internal quality attributes?: A multi-project study. In: Proceedings of the 31st Brazilian Symposium on Software Engineering, pp. 74–83. ACM (2017)Google Scholar
  5. 5.
    Fowler, M., Beck, K.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Boston (1999)Google Scholar
  6. 6.
    Kádár, I., Hegedus, P., Ferenc, R., Gyimóthy, T.: A code refactoring dataset and its assessment regarding software maintainability. In: 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1, pp. 599–603. IEEE (2016)Google Scholar
  7. 7.
    Kádár, I., Hegedűs, P., Ferenc, R., Gyimóthy, T.: A manually validated code refactoring dataset and its assessment regarding software maintainability. In: Proceedings of the The 12th International Conference on Predictive Models and Data Analytics in Software Engineering, p. 10. ACM (2016)Google Scholar
  8. 8.
    Kim, M., Gee, M., Loh, A., Rachatasumrit, N.: Ref-finder: a refactoring reconstruction tool based on logic query templates. In: Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 371–372. ACM (2010)Google Scholar
  9. 9.
    Kosker, Y., Turhan, B., Bener, A.: An expert system for determining candidate software classes for refactoring. Expert Syst. Appl. 36(6), 10000–10003 (2009)CrossRefGoogle Scholar
  10. 10.
    Kumar, L., Sureka, A.: Application of LSSVM and SMOTE on seven open source projects for predicting refactoring at class level. In: 2017 24th Asia-Pacific Software Engineering Conference (APSEC), pp. 90–99 (2017)Google Scholar
  11. 11.
    Kumar, L., Sureka, A.: Application of LSSVM and SMOTE on seven open source projects for predicting refactoring at class level. In: 2017 24th Asia-Pacific Software Engineering Conference (APSEC), pp. 90–99. IEEE (2017)Google Scholar
  12. 12.
    Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)CrossRefGoogle Scholar
  13. 13.
    Suykens, J., Lukas, L., Van Dooren, P., De Moor, B., Vandewalle, J., et al.: Least squares support vector machine classifiers: a large scale algorithm. In: European Conference on Circuit Theory and Design, ECCTD, vol. 99, pp. 839–842 (1999)Google Scholar
  14. 14.
    Suykens, J.A., Lukas, L., Vandewalle, J.: Sparse approximation using least squares support vector machines. In: Proceedings of the IEEE International Symposium on Circuits and Systems, ISCAS 2000, vol. 2, pp. 757–760. IEEE, Geneva (2000)Google Scholar
  15. 15.
    Zhao, L., Hayes, J.: Predicting classes in need of refactoring: an application of static metrics. In: Proceedings of the 2nd International PROMISE Workshop, Philadelphia, Pennsylvania, USA (2006)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.Department of Computer Science and Information SystemsBITS Pilani HyderabadHyderabadIndia
  2. 2.School of Computer Science and EngineeringVellore Institute of TechnologyVelloreIndia
  3. 3.School of Electrical Engineering, Computing and Mathematical SciencesCurtin UniversityBentleyAustralia

Personalised recommendations