Logo PTI Logo FedCSIS

Proceedings of the 18th Conference on Computer Science and Intelligence Systems

Annals of Computer Science and Information Systems, Volume 35

Review of Automated Code Refactoring of C# Programs

,

DOI: http://dx.doi.org/10.15439/2023F7277

Citation: Proceedings of the 18th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 35, pages 937941 ()

Full text

Abstract. Code refactoring is supported by many Integrated Development Environments. This paper is focused on the automated code refactoring of C\# programs. We have analyzed more than sixty refactorings available in three popular IDEs. We cataloged different restrictions, defects, and other quality concerns associated with the implementation of the refactorings, taking into account both modification of the production code and of the corresponding test cases. An extension to automate selected refactoring improvements has been developed for the ReSharper platform and experimentally verified.

References

  1. M. Fowler, Refactoring: improving the design of existing code. 2nd ed. Addison-Wesley, 2018.
  2. A. A. B. Baqais and M. Alshayeb, “Automatic software refactoring: a systematic literature review,” Software Quality Journal, vol. 28, 2020, pp. 459-502, http://dx.doi.org/10.1007/s11219-019-09477-y
  3. “ReSharper: The Visual Studio extension for .NET developers by JetBrains,” 2023, https://www.jetbrains.com/resharper/, [Online, Accessed 20 Jan 2023]
  4. A. M. Eilertsen and G. C. Murphy, “The usability (or not) of refactoring tools,” in Proc. IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), 2021, pp. 237-248. http://dx.doi.org/10.1109/SANER50967.2021.00030
  5. M. Gligoric, F. Behrang, Y. Li, J. Overbey, M. Hafiz, and D. Marinov, “Systematic Testing of Refactoring Engines on Real Software Projects,” in Proc. ECOOP 2013 – Object-Oriented Programming, LNCS vol 7920. Springer, Berlin, Heidelberg. 2013, pp. 629–654, https://doi.org/10.1007/978-3-642-39038-8_26
  6. M. Schäfer, A. Thies, F. Steimann, and F. Tip, "A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs," IEEE Transactions on Software Engineering, vol. 38, no. 6, 2012, pp. 1233-1257, http://dx.doi.org/10.1109/TSE.2012.13
  7. Y. Kashiwa, K. Shimizu, B. Lin, G. Bavota, M. Lanza, Y. Kamei, and N. Ubayashi, “Does refactoring break tests and to what extent?” in Proc. IEEE International Conference on Software Maintenance and Evolution (ICSME), 2021, pp.171-182, http://dx.doi.org/10.1109/ICSME52107.2021.00022
  8. Y. Gao, H. Liu, X. Fan, Z. Niu, and B. Nyirongo, “Analyzing refactoring' impact on regression test cases,” in Proc. IEEE 39th Annual Computer Software and Applications Conference (COMPSAC), vol. 2, 2015, pp. 222-231, http://dx.doi.org/10.1109/COMPSAC.2015.16
  9. H. Passier, L. Bijlsma, C. Bockisch,, “Maintaining unit tests during refactoring,” in Proc. 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, no. 18, 2016, pp.1-6. http://dx.doi.org/10.1145/2972206.2972223
  10. A. Derezinska, O. Sobieraj, “Enhancing unit tests in refactored Java programs,” in Proc. 18th Inter. Conf. on Evaluation of Novel Approaches to Software Engineering - ENASE, Scitepress, 2023, pp. 734-741, http://dx.doi.org/10.5220/0011997800003464
  11. M. Gatrell, S. Counsell,S. Swift, R. M. Hierons, and X. Liu, “Test and production classes of an industrial C# system: a refactoring and fault perspective,” in Proc. 41st Euromicro Conference on Software Engineering and Advanced Applications, 2015, http://dx.doi.org/10.1109/SEAA.2015.40
  12. M. Linka, “Visual Studio refactoring and code style management toolset,” M.S. thesis, Charles University in Prague, 2015.
  13. E. Firouzi and A. Sami, "Visual Studio automated refactoring tool should improve development time, but ReSharper led to more solution-build failures," in IEEE Workshop on Mining and Analyzing Interaction Histories (MAINT), Hangzhou, China, 2019, pp. 2-6, http://dx.doi.org/10.1109/MAINT.2019.8666936
  14. S. Amann, S. Proksch, S. Nadi, and M. Mezini, "A study of Visual Studio usage in practice,” in Proc. IEEE 23rd International Conference on Software Analysis Evolution and Reengineering (SANER), vol. 1, pp. 124-134, 2016.
  15. “Rider: The Cross-Platform .NET IDE from JetBrains,” 2023, https://www.jetbrains.com/rider/, [Online, Accessed 20 Jan 2023]
  16. Refix, https://galera.ii.pw.edu.pl/~adr/Refix/ [Online , Accessed 30 July 2023]