Code Refactoring for Software Reusability: An Experimental Study

被引:0
|
作者
Almogahed, Abdullah [1 ]
Mandin, Hairulnizam [1 ]
Rejab, Mazidah Mat [1 ]
Alawadhi, Abdulwadood [2 ]
Barraood, Samera Obaid [3 ]
Othman, Manal [4 ]
Al-Jamili, Omar [5 ]
Almazroi, Abdulwahab Ali [6 ]
Shaharudin, Shazlyn Milleana [7 ]
机构
[1] Univ Tun Hussein Onn Malaysia, Fac Comp Sci & Informat Technol, Parit Raja, Johor, Malaysia
[2] Univ Utara Malaysia, Sch Comp, InterNetWorks Res Lab, Sintok, Kedah, Malaysia
[3] Hadhramout Univ, Coll Comp & Informat Technol, Hadhramout, Yemen
[4] Taiz Univ, Coll Appl Sci, Comp Sci Dept, Taizi, Yemen
[5] Univ Sci & Technol, Fac Engn & Comp, Aden, Yemen
[6] Univ Jeddah, Coll Comp & Informat Technol Khulais, Dept Informat Technol, Jeddah, Saudi Arabia
[7] Univ Pendidikan Sultan Idris, Fac Sci & Math, Tanjong Malim, Malaysia
来源
2024 4TH INTERNATIONAL CONFERENCE ON EMERGING SMART TECHNOLOGIES AND APPLICATIONS, ESMARTA 2024 | 2024年
关键词
refactoring; refactoring techniques; software reusability; software quality; software metrics; software maintenance;
D O I
10.1109/eSmarTA62850.2024.10638872
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Refactoring plays a critical role in enhancing the quality of software systems, enabling them to accommodate growing user bases, feature sets, and performance demands. Software reusability is an essential aspect of software quality. It is crucial in modern software development as it offers several benefits, including increased productivity, improved code quality, and cost-effectiveness. However, there is a lack of studies investigating how specific refactoring techniques affect reusability. Therefore, this study aims to explore the effects of code refactoring on software reusability. This study was conducted in four stages: selecting refactoring techniques, selecting a large dataset, selecting software metrics to measure the reusability, and applying the refactoring techniques. The five most common refactoring techniques (Extract Interface, Encapsulate Field, Extract Class, Inline Class, and Inline Method) used in practices were selected and applied in the jEdit dataset. The refactoring techniques were carried out 338 times through five experiments in the jEdit dataset. The finding reveals that Extract Interface, Encapsulate Field, and Extract Class significantly improve the code reusability while Inline Class and Inline Method impair it. Developers and software architects can use this knowledge to make well-informed judgments about refactoring techniques and develop more robust and reusable software systems.
引用
收藏
页码:62 / 67
页数:6
相关论文
共 50 条
  • [1] Code Refactoring and its Impact on Internal and External Software Quality: An Experimental Study
    Alawairdhi, Mohammed
    INTERNATIONAL JOURNAL OF COMPUTER SCIENCE AND NETWORK SECURITY, 2019, 19 (06): : 12 - 17
  • [2] Refactoring Patterns Study in Code Clones during Software Evolution
    Kanwal, Jaweria
    Inoue, Katsuro
    Maqbool, Onaiza
    2017 IEEE 11TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES (IWSC), 2017, : 45 - 46
  • [3] Analysis of Code Refactoring Impact on Software Quality
    Kaur, Amandeep
    Kaur, Manpreet
    4TH INTERNATIONAL CONFERENCE ON ADVANCEMENTS IN ENGINEERING & TECHNOLOGY (ICAET-2016), 2016, 57
  • [4] An empirical study to improve software security through the application of code refactoring
    Mumtaz, Haris
    Alshayeb, Mohammad
    Mahmood, Sajjad
    Niazi, Mahmood
    INFORMATION AND SOFTWARE TECHNOLOGY, 2018, 96 : 112 - 125
  • [5] Software Testing and Code Refactoring: A Survey with Practitioners
    Lima, Danilo Leandro
    Santos, Ronnie de Souza
    Garcia, Guilherme Pires
    da Silva, Sildemir S.
    Franca, Cesar
    Capretz, Luiz Fernando
    2023 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION, ICSME, 2023, : 500 - 507
  • [6] Helping Mobile Software Code Reviewers: A Study of Bug Repair and Refactoring Patterns
    Chen, Zhiyuan
    2016 IEEE/ACM INTERNATIONAL CONFERENCE ON MOBILE SOFTWARE ENGINEERING AND SYSTEMS (MOBILESOFT 2016), 2016, : 34 - 35
  • [7] Does refactoring improve reusability?
    Moser, Raimund
    Sillitti, Alberto
    Abrahamsson, Pekka
    Succi, Giancarlo
    REUSE OF OFF-THE-SHELF COMPONENTS, PROCEEDINGS, 2006, 4039 : 287 - 297
  • [8] Behind the Intents: An In-depth Empirical Study on Software Refactoring in Modern Code Review
    Paixao, Matheus
    Uchoa, Anderson
    Bibiano, Ana Carla
    Oliveira, Daniel
    Garcia, Alessandro
    Krinke, Jens
    Arvonio, Emilio
    2020 IEEE/ACM 17TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2020, : 125 - 136
  • [9] Towards the formalization of a reusability framework for refactoring
    Caballero, RE
    Demurjian, SA
    SOFTWARE REUSE: METHODS, TECHNIQUES, AND TOOLS, PROCEEDINGS, 2002, 2319 : 293 - 308
  • [10] A Code Refactoring Dataset and Its Assessment Regarding Software Maintainability
    Kadar, Istvan
    Hegedus, Peter
    Ferenc, Rudolf
    Gyimothy, Tibor
    2016 IEEE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), VOL 1, 2016, : 599 - 603