Cargando…

A refactoring categorization model for software quality improvement

Refactoring, a widely adopted technique, has proven effective in facilitating and reducing maintenance activities and costs. Nonetheless, the effects of applying refactoring techniques on software quality exhibit inconsistencies and contradictions, leading to conflicting evidence on their overall be...

Descripción completa

Detalles Bibliográficos
Autores principales: Almogahed, Abdullah, Mahdin, Hairulnizam, Omar, Mazni, Zakaria, Nur Haryani, Gu, Yeong Hyeon, Al-masni, Mohammed A., Saif, Yazid
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Public Library of Science 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10621946/
https://www.ncbi.nlm.nih.gov/pubmed/37917752
http://dx.doi.org/10.1371/journal.pone.0293742
_version_ 1785130462587387904
author Almogahed, Abdullah
Mahdin, Hairulnizam
Omar, Mazni
Zakaria, Nur Haryani
Gu, Yeong Hyeon
Al-masni, Mohammed A.
Saif, Yazid
author_facet Almogahed, Abdullah
Mahdin, Hairulnizam
Omar, Mazni
Zakaria, Nur Haryani
Gu, Yeong Hyeon
Al-masni, Mohammed A.
Saif, Yazid
author_sort Almogahed, Abdullah
collection PubMed
description Refactoring, a widely adopted technique, has proven effective in facilitating and reducing maintenance activities and costs. Nonetheless, the effects of applying refactoring techniques on software quality exhibit inconsistencies and contradictions, leading to conflicting evidence on their overall benefit. Consequently, software developers face challenges in leveraging these techniques to improve software quality. Moreover, the absence of a categorization model hampers developers’ ability to decide the most suitable refactoring techniques for improving software quality, considering specific design goals. Thus, this study aims to propose a novel refactoring categorization model that categorizes techniques based on their measurable impacts on internal quality attributes. Initially, the most common refactoring techniques used by software practitioners were identified. Subsequently, an experimental study was conducted using five case studies to measure the impacts of refactoring techniques on internal quality attributes. A subsequent multi-case analysis was conducted to analyze these effects across the case studies. The proposed model was developed based on the experimental study results and the subsequent multi-case analysis. The model categorizes refactoring techniques into green, yellow, and red categories. The proposed model, by acting as a guideline, assists developers in understanding the effects of each refactoring technique on quality attributes, allowing them to select appropriate techniques to improve specific quality attributes. Compared to existing studies, the proposed model emerges superior by offering a more granular categorization (green, yellow, and red categories), and its range is wide (including ten refactoring techniques and eleven internal quality attributes). Such granularity not only equips developers with an in-depth understanding of each technique’s impact but also fosters informed decision-making. In addition, the proposed model outperforms current studies and offers a more nuanced understanding, explicitly highlighting areas of strength and concern for each refactoring technique. This enhancement aids developers in better grasping the implications of each refactoring technique on quality attributes. As a result, the model simplifies the decision-making process for developers, saving time and effort that would otherwise be spent weighing the benefits and drawbacks of various refactoring techniques. Furthermore, it has the potential to help reduce maintenance activities and associated costs.
format Online
Article
Text
id pubmed-10621946
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher Public Library of Science
record_format MEDLINE/PubMed
spelling pubmed-106219462023-11-03 A refactoring categorization model for software quality improvement Almogahed, Abdullah Mahdin, Hairulnizam Omar, Mazni Zakaria, Nur Haryani Gu, Yeong Hyeon Al-masni, Mohammed A. Saif, Yazid PLoS One Research Article Refactoring, a widely adopted technique, has proven effective in facilitating and reducing maintenance activities and costs. Nonetheless, the effects of applying refactoring techniques on software quality exhibit inconsistencies and contradictions, leading to conflicting evidence on their overall benefit. Consequently, software developers face challenges in leveraging these techniques to improve software quality. Moreover, the absence of a categorization model hampers developers’ ability to decide the most suitable refactoring techniques for improving software quality, considering specific design goals. Thus, this study aims to propose a novel refactoring categorization model that categorizes techniques based on their measurable impacts on internal quality attributes. Initially, the most common refactoring techniques used by software practitioners were identified. Subsequently, an experimental study was conducted using five case studies to measure the impacts of refactoring techniques on internal quality attributes. A subsequent multi-case analysis was conducted to analyze these effects across the case studies. The proposed model was developed based on the experimental study results and the subsequent multi-case analysis. The model categorizes refactoring techniques into green, yellow, and red categories. The proposed model, by acting as a guideline, assists developers in understanding the effects of each refactoring technique on quality attributes, allowing them to select appropriate techniques to improve specific quality attributes. Compared to existing studies, the proposed model emerges superior by offering a more granular categorization (green, yellow, and red categories), and its range is wide (including ten refactoring techniques and eleven internal quality attributes). Such granularity not only equips developers with an in-depth understanding of each technique’s impact but also fosters informed decision-making. In addition, the proposed model outperforms current studies and offers a more nuanced understanding, explicitly highlighting areas of strength and concern for each refactoring technique. This enhancement aids developers in better grasping the implications of each refactoring technique on quality attributes. As a result, the model simplifies the decision-making process for developers, saving time and effort that would otherwise be spent weighing the benefits and drawbacks of various refactoring techniques. Furthermore, it has the potential to help reduce maintenance activities and associated costs. Public Library of Science 2023-11-02 /pmc/articles/PMC10621946/ /pubmed/37917752 http://dx.doi.org/10.1371/journal.pone.0293742 Text en © 2023 Almogahed et al https://creativecommons.org/licenses/by/4.0/This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
spellingShingle Research Article
Almogahed, Abdullah
Mahdin, Hairulnizam
Omar, Mazni
Zakaria, Nur Haryani
Gu, Yeong Hyeon
Al-masni, Mohammed A.
Saif, Yazid
A refactoring categorization model for software quality improvement
title A refactoring categorization model for software quality improvement
title_full A refactoring categorization model for software quality improvement
title_fullStr A refactoring categorization model for software quality improvement
title_full_unstemmed A refactoring categorization model for software quality improvement
title_short A refactoring categorization model for software quality improvement
title_sort refactoring categorization model for software quality improvement
topic Research Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10621946/
https://www.ncbi.nlm.nih.gov/pubmed/37917752
http://dx.doi.org/10.1371/journal.pone.0293742
work_keys_str_mv AT almogahedabdullah arefactoringcategorizationmodelforsoftwarequalityimprovement
AT mahdinhairulnizam arefactoringcategorizationmodelforsoftwarequalityimprovement
AT omarmazni arefactoringcategorizationmodelforsoftwarequalityimprovement
AT zakarianurharyani arefactoringcategorizationmodelforsoftwarequalityimprovement
AT guyeonghyeon arefactoringcategorizationmodelforsoftwarequalityimprovement
AT almasnimohammeda arefactoringcategorizationmodelforsoftwarequalityimprovement
AT saifyazid arefactoringcategorizationmodelforsoftwarequalityimprovement
AT almogahedabdullah refactoringcategorizationmodelforsoftwarequalityimprovement
AT mahdinhairulnizam refactoringcategorizationmodelforsoftwarequalityimprovement
AT omarmazni refactoringcategorizationmodelforsoftwarequalityimprovement
AT zakarianurharyani refactoringcategorizationmodelforsoftwarequalityimprovement
AT guyeonghyeon refactoringcategorizationmodelforsoftwarequalityimprovement
AT almasnimohammeda refactoringcategorizationmodelforsoftwarequalityimprovement
AT saifyazid refactoringcategorizationmodelforsoftwarequalityimprovement