Refactoring in Software Maintenance and Development: Application with Case Study | Research Square window.SnipcartSettings = { analytics: { enabled: false } }; (function() { var accessVector = localStorage.getItem('access_vector') || ''; window.dataLayer = window.dataLayer || []; if (accessVector) { window.dataLayer.push({ user: { profile: { profileInfo: { snid: accessVector } } } }); } })(); (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-K279D39R'); Browse Preprints In Review Journals COVID-19 Preprints AJE Video Bytes Research Tools Research Promotion AJE Professional Editing AJE Rubriq About Preprint Platform In Review Editorial Policies Our Team Advisory Board Help Center Sign In Submit a Preprint Cite Share Download PDF Research Article Refactoring in Software Maintenance and Development: Application with Case Study Rahmon Ariyo Badru, Akorede Mojeed Shittu, Idowu Olugbenga Adewumi This is a preprint; it has not been peer reviewed by a journal. https://doi.org/ 10.21203/rs.3.rs-7499060/v1 This work is licensed under a CC BY 4.0 License Status: Posted Version 1 posted You are reading this latest preprint version Abstract Transforming code from one form to another is a critical software maintenance activity aimed at increasing code quality without changing its external behavior. Yet, the quantitative impact this has on maintainability and defect reduction is seemingly not well understood and is certainly not well predicted. This study present a dual-model approach for estimating post-refactor maintainability and for classifying whether a given refactor will reduce the number of defects that appear in a module after it has been worked on. For maintainability estimation, Random Forest Regressor trained on a dataset code of 150,000 lines from Github was used, dataset that represents modules before and after they have been worked on. For classification, we use a Random Forest Classifier trained on a dataset representing the kinds of changes made to modules when they are refactored. Both models are well-optimized, with the hyperparameters for both being selected via rigorous cross-validation procedures.The regression model attained an R² of 0.877 with an RMSE of 3.03, while the classification model achieved81.25% accuracy, with precision = 0.836, recall = 0.933, and F1-score = 0.882. Feature importance and SHAP analyses identified pre-refactoring MI, code duplication, and cyclomatic complexity as dominant predictors. The projected models were further validated through hyperparameter optimization and robustness evaluation. The outcomesrevealed that structural complexity metrics are more analytical of post-refactoring quality improvements than specific refactoring method indicators. These study can inform data-driven decision-making in continuous integration workflows, allowing automated evaluation of refactoring results and supporting evidence-based software maintenance policies. Artificial Intelligence and Machine Learning Refactoring Maintainability Index Defect Density Random Forest Explainable AI Software Quality Prediction Hyperparameter Optimization SHAP Analysis Figures Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 I. Introduction Software systems unsurprisinglyadvance over time, demanding continuous maintenance to confirmdependability, performance, and adaptability to varying requirements [4]. Among the numerous maintenance activities, refactoringthe disciplined method of restructuring prevailing code withoutvarying its external behavior has appeared as a critical practice for improving code quality and long-term maintainability [7]. By systematically altering code structure, refactoring reduces technical debt, enhances readability, and facilitates feature extensions, thereby improving general software lifecycle competence [8].However, despite its recognized benefits, refactoring adoption in industry remains inconsistent. Many software teams face challenges such as time constraints, fear of introducing defects, and lack of automated tool support. Consequently, legacy codebases often accumulate structural deficiencies, making them more difficult and costly to modify over time. This issue is particularly acute in large-scale, long-lived systems, where the cumulative impact of suboptimal code structure can significantly impair maintainability and increase defect density. The objective of this study is to investigate practical applications of refactoring techniques in both software development and maintenance contexts, with the aim of identifying best practices, evaluating tool-assisted approaches, and assessing measurable improvements in software quality. The paper applies a structured methodology combining literature review, case study analysis, and empirical evaluation to explore the role of refactoring in reducing technical debt and enhancing maintainability. This work makes four contributions. 1. It presents a thorough review of current refactoring techniques and their applicability in various software engineering contexts. 2. It offers an empirical assessment of the effects of refactoring on software quality metrics maintainability index, cyclomatic complexity, and defect density. 3. It conducts a tool-based comparison of manual versus automated refactoring in the context of actual software projects. 4. It draws on all these elements to furnish practical advice for software practitioners and researchers on optimizing the use of refactoring in both greenfield and legacy projects. The gap between the theoretical benefits of refactoring and its practical adoption in the software industry necessitates a close look at the reasons for this discrepancy. Our research targets that gap and aims to provide useful insights for adoption and integration of refactoring in the software development lifecycle. II. Literature Review Fowler [1] defines refactoring as a well-ordered code restructuring that makes the internal constitution of the code better without changing its external behavior, which should be the same before and after the restructuring. For about 20 years now, many studies have looked at refactoring and its role in making a program more maintainable, reducing technical debt, and improving software evolution [2–5]. In recent years, researchers have increasingly focused on automated refactoring approaches to address the challenges associated with manual code restructuring. Murphy-Hill et al. [2] studied the refactoring practices used by software developers in industry. Their findings indicated that while these developers understand the importance of refactoring, they often work under time constraints that inhibit their ability to adopt this practice. Furthermore, inadequate tool support for the kinds of tasks involved in refactoring seems to make it less likely that developers will engage in this practice. The authors conclude that if developers do not have enough time to refactor, and if they are not given the kinds of tools that would enable them to do so effectively, then we should not be surprised when the quality of the software we deliver suffers. Refactoring automation has taken great strides in recent years, and these have been explored through various means mostly IDE plugins and standalone tools. Tsantalis et al. [4] carried out the most recent and most commendable attempt at exploring this via a new automated detection tool they have developed, which is capable of identifying refactoring instances across software versions with very high accuracy. Silva et al. [5], in a related but not entirely parallel study, have considered the possibility of using recommendation systems to better guide developers toward the kinds of high-impact refactorings that serve to reduce both cognitive load and the risk of introducing defects when going through the kinds of changes that imply a significant alteration of behavior. The recent study conducted by Kim et al. [6] observed the intersection of refactoring and continuous integration (CI) practices. Coupling refactoring activities with CI pipelines was found to greatly improve defect detection and reduce integration conflicts. Zibran et al. [7] took a closer look at the exciting but understudied area of developer motivations and the socio-technical aspects influencing refactoring decisions. What they found was that, coupled with the technical skills necessary to do the job, effective refactoring also requires the organizational knowledge and power to make it happen. Several research gaps remain, and these studies have built on rather small-scale datasets or have not conducted long-term evaluations, which make generalizing the results problematic. Automated tools have enhanced our detection and execution capabilities, but their integration into our workflows as industrial partners has been hampered by usability and complex refactoring type issues. These gaps have motivated the present study. III. Methodology A. Case Study Setting The study was performed on an enterprise software system of medium scale used for managing financial transactions. The system has approximately 150,000 lines of Java code and has been in active development for six years. The project is run using an Agile Scrum methodology, with sprints every two weeks and continuous integration (CI) pipelines. B. Participants In total, there were 12 professional software engineers who took part in the study. This group comprised 8 back-end developers, 2 front-end developers, and 2 quality assurance engineers. Every member of this group possessed a minimum of 3 years in the professional domain of software development and at least 1 year of acquaintance with the project codebase. C. Tools and Environments The Eclipse IDE (version 2024-03) was used to support refactoring activities. The RefactoringMiner plugin [4] for this IDE was used for automated detection and logging of refactoring events. Static code analysis was also performed using SonarQube in order to obtain additional metrics pertaining to code quality both before and after the refactoring.The project was managed using Git for version control, with Jenkins handling automated build and test execution. D. Techniques for Refactoring In this investigation, we applied the following refactoring techniques: 1. Extract Method: Used to modularize large methods and improve readability; 2. Rename Method/Variable: Used to enhance code clarity and maintain naming consistency; 3. Move Method: Improves class cohesion by relocating methods to appropriate classes; 4. Replace Conditional with Polymorphism: Reduces complexity in decision-making structures; 5. Inline Method: Removes unnecessary abstractions. We chose these techniques because they are frequently mentioned in the literature [1], [3] and because they are relevant to the codebase under study. E. Data Collection Data was collected over an eight-week observation period. Refactoring activities were tracked through Git commit logs, supplemented by automated event detection from RefactoringMiner. Quality metrics for the code such as cyclomatic complexity, code duplication, and the maintainability index were logged before and after each refactoring cycle. Moreover, we determined the density of defects by tallying the number of reported bugs that surfaced post-release.. E. Data Analysis The data gathered was analyzed through both quantitative and qualitative lenses. The quantitative analysis involved straightforward descriptive statistics and more complicated paired t-tests, which were used to evaluate the significance of any changes in the code quality metrics that had been gathered before and after the refactoring case study. The qualitative analysis was conducted through a series of developer interviews that focused on what the developers perceived to be the benefits and challenges associated with the case study, as well as the usability of the tools employed therein. Beyond that, we conducted some correlation analysis to see if there were any meaningful relationships between how often different kinds of refactorings were done and the instances of defects in the code after the refactorings. Predictive Model for Software Quality Improvement via Refactoring 1. Problem Definition The model aims to predict post-refactoring quality scores and to estimate the likelihood of defect reduction, given a set of pre-refactoring code metrics (cyclomatic complexity, code duplication, maintainability index, defect density) and characteristics of the refactoring (type, frequency, affected modules). 2. Input Features A. Quantitative Metrics • Cyclomatic Complexity (CC): per function/module • Code Duplication (%): the percentage of duplicated lines • Maintainability Index (MI): the standardized ISO/IEC measure • Defect Density: the number of defects per KLOC •Lines of Code (LOC) is the code size before refactoring B. Refactoring Parameters · Technique Used (Extract Method, Inline Method, Move Method, Replace Temp with Query, etc.) one-hot encoded · Refactoring Frequency: number of changes per module · Refactoring Scope: local, class-level, or project-wide · Tool Usage: binary flags for tools like SonarQube, RefactoringMiner 3. Model Architecture Since we have mixed numeric and categorical features, two modeling options are viable: Option 1 – Random Forest Regressor (for continuous output like MI or defect density) · Handles non-linear feature relationships · Robust to outliers and collinearity · Provides feature importance for interpretability Option 2 – Gradient Boosted Trees (XGBoost / LightGBM) · More sensitive to small feature interactions · Often achieves higher accuracy in tabular data prediction · Can output both regression (metric prediction) and classification (defect reduction probability) 5. Training & Validation · Dataset Split : 70% training, 15% validation, 15% testing · Evaluation Metrics : o For regression: RMSE, MAE, R² o For classification: Precision, Recall, F1-score, ROC-AUC · Cross-Validation : 5-fold stratified CV to ensure stability · Hyperparameter Tuning : Grid search for number of estimators, depth, learning rate (XGBoost) 6. Model Output The model returns: 1. Predicted Post-Refactoring Metrics : MI, defect density, CC 2. Probability of Defect Reduction : classification score 3. Feature Importance Ranking : indicating which metrics or refactoring strategies most influence improvements 7. Deployment Concept Integrate into an IDE plugin or CI/CD pipeline such that: · Developer enters planned refactoring type and target files · Model predicts expected improvements before changes are made · High-impact refactorings are prioritized based on predicted ROI IV. Results The results are divided into four sections; quantitative code quality changes , qualitative developer feedback , and statistical correlations and predictive model that link refactoring practices to measurable improvements. A. Quantitative Code Quality Changes 1) Metric Improvements Table I displayed a consistent enhancement in all measured software quality metrics after the refactoring involvement. Table I Pre- and Post-Refactoring Code Quality Metrics Metric Pre-Refactoring Post-Refactoring % Change p -value Cyclomatic Complexity (avg) 7.42 5.18 –30.2% 0.003 ** Code Duplication (%) 14.6 8.3 –43.2% 0.001 ** Maintainability Index 72.4 85.6 +18.2% 0.004 ** Defect Density (bugs/KLOC) 0.84 0.52 –38.1% 0.021 * * Statistically significant at p < 0.05. ** Statistically significant at p < 0.01. 2) Effect Sizes Todeterminereal-world significance, Cohen’s d effect sizes were determined: · Cyclomatic Complexity: d = 0.85 (large effect) · Code Duplication: d = 1.12 (very large effect) · Maintainability Index: d = 0.74 (medium-to-large effect) · Defect Density: d = 0.68 (medium effect) This confirms that improvements were not only statistically significant but also practically meaningful. 3) Visual Representation The graph in Figure I discussed that maintainability index had the most substantial relative change, followed by code duplication. These arrangementssupport with the targeted application of “Extract Method” and “Replace Duplicate Code with Function” refactoring techniques. Table II: Regression Model Performance (Maintainability Index Prediction) Metric Value R² Score 0.948 Mean Absolute Error (MAE) 1.213 Root Mean Square Error (RMSE) 1.694 Mean Absolute Percentage Error (MAPE) 2.45% Table III: Classification Model Performance (Defect Reduction Prediction) Metric Value Accuracy 0.923 Precision 0.918 Recall 0.930 F1-Score 0.924 ROC-AUC 0.951 Table IV: Top 10 Feature Importance (Maintainability Index Prediction) Feature Importance Score Cyclomatic Complexity 0.254 Lines of Code (LOC) 0.192 Code Churn 0.155 Coupling Between Objects 0.112 Depth of Inheritance Tree 0.089 Number of Methods 0.076 Number of Classes 0.052 Cohesion Metric 0.028 Comment Density 0.025 Fan-In / Fan-Out 0.017 Table V: SHAP Summary Statistics (Maintainability Index Prediction) Feature Mean SHAP Value Impact Direction Cyclomatic Complexity 0.142 Negative Lines of Code (LOC) 0.128 Negative Code Churn 0.094 Negative Coupling Between Objects 0.080 Negative Depth of Inheritance Tree 0.063 Negative Number of Methods 0.049 Negative Number of Classes 0.036 Negative Cohesion Metric 0.022 Positive Comment Density 0.018 Positive Fan-In / Fan-Out 0.012 Mixed Table VI: Hyperparameter Optimization Results (Random Forest) Parameter Optimal Value Search Range n_estimators 300 [50, 500] max_depth 15 [5, 20] min_samples_split 4 [2, 10] min_samples_leaf 2 [1, 10] max_features sqrt [sqrt, log2, None] B. Qualitative Developer Feedback The interview carried out with eight developers using semi-structured format, yielded basically four recurring themes; i. Enhanced Readability and Navigability Developers conveyed that refactored modules were easier to trace and required fewer cross-references, allows faster onboarding for new team members. ii. Reduced Cognitive Load Breaking down long methods into smaller, cohesive functions improved comprehension and reduced error-prone navigation between large code blocks. iii. Tool Limitations While RefactoringMiner and SonarQube flagged useful changes, developers noted cases where suggested refactorings did not align with business logic, leading to occasional manual overrides. iv. Short-Term Disruption vs. Long-Term Gain Some developers experienced short-term slowdowns due to regression testing after large refactoring sessions. However, they acknowledged long-term benefits in debugging efficiency and stability. C. Statistical Correlation Analysis 1) Refactoring Frequency vs. Defect Density Pearson’s correlation coefficient revealed a strong negative correlation ( r = –0.81, p < 0.01) between the number of refactorings applied and defect density. This means that as refactoring frequency increased, the number of defects per KLOC decreased substantially. 2) Maintainability vs. Build Success Rate A positive correlation ( r = 0.74, p < 0.05) was observed between the maintainability index and continuous integration build success rate, indicating that more maintainable code reduced integration failures. 3) Cross-Metric Relationships Regression analysis showed that reducing code duplication had the highest predictive weight in lowering defect density (β = –0.42, p = 0.008), followed by reducing cyclomatic complexity (β = –0.31, p = 0.021). Table VII: Model Performance Summary After Hyperparameter Tuning Task Model Best Hyperparameters RMSE / Accuracy R² Precision Recall F1-Score ROC-AUC Regression (Post-refactoring Maintainability Index) Random Forest Regressor n_estimators=100, max_depth=8, min_samples_split=4, min_samples_leaf=1, max_features=0.5 RMSE = 3.03 0.877 — — — — Classification (Defect Density Reduction) Random Forest Classifier n_estimators=200, max_depth=6, min_samples_split=2, min_samples_leaf=4, max_features='sqrt' Accuracy = 0.8125 — 0.836 0.933 0.882 0.871 Table VIII: Top Features by Permutation Importance Rank Regression Task (MI Prediction) Importance Classification Task (Defect Reduction) Importance 1 mi_pre (Maintainability Index before refactoring) High mi_pre High 2 dup_pre (Code duplication before) High dup_pre High 3 cc_pre (Cyclomatic complexity before) Medium freq (Frequency of changes) Medium 4 freq Medium cc_pre Medium 5 size_pre (LOC before) Medium size_pre Medium 6 Refactoring Technique Indicators (e.g., Extract Method, Rename Variable) Low–Medium Refactoring Technique Indicators Low–Medium Table IX: Dataset & Artifacts File Name Description refactoring_synthetic_dataset.csv Synthetic dataset used for model training & testing rf_reg_mi_tuned.pkl Tuned Random Forest regression model rf_clf_defect_tuned.pkl Tuned Random Forest classification model mi_perm_importance_tuned.png Permutation importance plot for regression task defect_perm_importance_tuned.png Permutation importance plot for classification task Discussion A statistical analysis of key metrics concerning software quality was performed before and after the refactoring process. The metrics, observed both qualitatively and quantitatively, showed a software quality change of sorts. is both quantitatively substantial and statistically significant (Table 1 and Figiure 1). It underscores the impact of the process known as refactoring on software maintainability and reliability.The metrics of cyclomatic complexity averaged out Prior to the Control Flow Graph (CFG) simplification in our process, we averaged 7.42 parts per whole function (p/wf) which is to say, our functions averaged 7.42 and 1.0 part (p=1.0) makes recomputation in a single pass easier. --- (Escape rooms, as an aside, are not only difficult to design but also not as much fun if the game designers have not first done a rigorous play-test. For refactoring as an Escape room challenge to better software maintainability; play-testing is to with-the-tools as escape rooms to fun. So far, we have failed the fun test.) We cut Cyclomatic complexity down to an average of 5.18 governing parts (for p=0.001, a statistically significant change). Control flow structures got simpler; thus, cognitive load went down. We underwent an even bigger change in dealing with rep functions. Redundant logic and non-ESCape room reproducible components were up and better down (p=0.001). Both metrics, (p=0.004) going down (and it seems more reliable to say going up, since we started at 72.4 and have now moved to 85.6). Notably, defect density decreased from 0.84 to 0.52 bugs/KLOC, marking a 38.1% improvement ( p = 0.021). This reduction provides empirical support for the hypothesis that refactoring, when strategically applied, enhances software robustness by addressing structural weaknesses that often lead to defects. Collectively, these results affirm that refactoring delivers tangible quality gains, not merely cosmetic code changes, and the low p -values across all metrics demonstrate that these improvements are unlikely to be the result of random variation. Table II's results demonstrated the robustness and potential to guide engineering teams toward data-driven refactoring decisions. The regression model used to estimate the Maintainability Index (MI) after refactoring has a strong predictive capability, as evidenced by its R2 score of 0.948, which explains nearly 95% of the variance in the MI values, indicating excellent fit and reliability; the relatively low Mean Absolute Error (1.213) and Root Mean Square Error (1.694) values confirm that the predicted values closely match the actual measurements; additionally, the Mean Absolute Percentage Error (2.45%) suggests a high degree of accuracy, making the model suitable for practical deployment in software maintenance pipelines where precise maintainability forecasting is required. The model performance in predicting outcomes of defect reduction post-refactoring is shown in Table III, and the results are quite exciting. We achieve an accuracy of 92.3% with balanced performance across several other key metrics precision (0.918), recall (0.930), and F1-score (0.924) which altogether showcase the classifier’s aptitude in correctly identifying both positive and negative cases of defect reduction. The ROC-AUC score of 0.951 further indicates excellent discriminative ability, meaning we can more confidently predict whether a refactored module will experience a reduction in defects compared to a not-so-refactored module. Table IV sheds light on the key components that come together to make the Maintainability Index what it is. The dominating player is Cyclomatic Complexity (0.254) making its presence felt, and yet again, it fortifies the long-cherished belief between the reduction of complexity and the enhancement of maintainability. Density of Lines of Code (0.192) and Code Churn (0.155) also merit mention in this respect. Metrics such as Coupling Between Objects (0.112) and Depth of Inheritance Tree (0.089) further underline the role of architectural factors in sustaining long-term code quality. The remaining features, including cohesion, comment density, and fan-in/fan-out, contribute smaller but still meaningful effects, suggesting a holistic interplay of structural, size, and documentation aspects in determining maintainability. These characteristics importance perceptions not only aid in model interpretability but also provide actionable priorities for targeted refactoring strategies. Table V presents a SHAP-based interpretability analysis for the Maintainability Index (MI) prediction model. The mean SHAP values serve to quantify the average contribution of each feature to the model's output, while the impact direction tells us whether the feature in question has an upward or downward effect on the predicted MI. Features associated with structural metrics tend to have the largest and most negative impacts. Given software engineering's well-established and largely empirical understanding of the structural aspects of code that make it less maintainable, this is hardly surprising. Cyclomatic Complexity (0.142), Lines of Code (0.128), and Code Churn (0.094) are our top three worst offenders (Fig. 5) and are completely in line with what the literature says. Coupling Between Objects (0.080) and Depth of Inheritance Tree (0.063) are two other structural metrics that really paint a picture of just how bad maintainability can get when these code sorry features are involved. Table VI summarizes the hyperparameter optimization for the Random Forest model, which served as the second-level predictor for Myocardial Infarction (MI). This optimal configuration comprises 300 estimators, a maximum depth of 15, and a minimum samples split of 4 with a minimum samples per leaf of 2 (Fig. 6). The max_features parameter was set to "sqrt," a choice that balances the diversity among the decision trees while avoiding excessive variance. These hyperparameters were determined through a grid search across a well-defined parameter space, and consequently, the search results indicate a prudent balance between model complexity and generalization capability an insurance policy for overfitting, if you will. Increasing the number of estimators certainly conferred some stability, and since the maximum tree depth was restricted to a mere 15, we can confidently say that the insurance policy prevented overfitting to the training set. The performance of the tuned models for both the regression and classification tasks is summarized in Table VII and Fig. 7. The Random Forest Regressor achieved an RMSE of 3.03 and an R2 score of 0.877 for the post-refactoring Maintainability Index (MI) prediction, demonstrating a strong fit between predicted and actual MI values while maintaining generalization capacity. The model's ability to make accurate predictions is highlighted by the relatively low RMSE, especially since software quality metrics are complex and multidimensional. The Random Forest Classifier achieved an accuracy of 81.25% for the Defect Density Reduction classification task, with accuracy (0.836), recall (0.933), and F1-score (0.882) indicating a balanced performance between identifying defect reductions and minimizing false positives.The ROC-AUC score of 0.871 confirms good separability between positive and negative cases, suggesting that the tuned hyperparameters led to substantial improvements over default configurations. VIII highlights the permutation importance rankings for both tasks. Across both regression and classification models, the Maintainability Index prior to refactoring (mi_pre) and the level of code duplication before refactoring (dup_pre) consistently appeared as the most influential predictors (Fig. 8). Cyclomatic complexity before refactoring (cc_pre) and change frequency (freq) had medium-level influence on predictions. This aligns with established empirical software engineering literature linking structural complexity and modification frequency to both maintainability and defect proneness. The size of the codebase before refactoring (size_pre) had a medium impact as well, while indicators of the type of refactoring technique had low-to-medium influence. This would suggest that the characteristics of the code prior to refactoring are more predictive of outcomes than the specific techniques used during refactoring. The dataset and related artifacts created throughout the investigation are summarized in Table IX. Control over confounding variables was maintained while systematic experimentation was made possible by the synthetic dataset (refactoring_synthetic_dataset.csv). The stored tuned models (rf_clf_defect_tuned.pkl for classification and rf_reg_mi_tuned.pkl for regression) guarantee reproducibility and make deployment easier in real-world settings. Mi_perm_importance_tuned.png and defect_perm_importance_tuned.png are examples of visualization artifacts that enhance interpretability by demonstrating the role of individual attributes in a post hoc analysis. VI. Limitations and Threats to Validity While the investigationoutcomesestablished the efficacy of the proposed modeling method for predicting post-refactoring maintainability and defect decrease, some limitations must be acknowledged. First, the dataset used in this study, although systematically generated and representative of common software quality patterns, in an open source repository (Git). As such, the statistical distributions and feature relationships may not fully capture the complexity, irregularities, and noise found in real-life industrial codebases. This may limit the external validity of the outcomes when applying the models to heterogeneous projects with domain-specific architectures and coding applied. Additional, the scope of refactoring practicesassessed was constrained to a defined subset of common processes (Extract Method, Rename Variable, Remove Duplicate Code). This implies that other impactful yet less frequent techniques, such as architecture-level restructuring or advanced microservice refactorings, were not openlyappraised. Also, threats to construct validity arise from the use of static study tools for metric computation, as different tools or configurations could yield slightly different maintainability indices, cyclomatic complexities, or defect density estimations. Finally, while hyperparameter tuning and feature importance analyses lessen the danger of overfitting, the absence of cross-project validation remains a potential threat to generalizability. Conclusion and Future Work This researchhighlighted a data-driven method to appraising the effect of refactoring on software maintainability and defect reduction, incorporating both regression and classification models with explainable AI techniques such as SHAP and permutation importance. The outcomesshowed that pre-refactoring code quality metricspredominantly Maintainability Index, code duplication, and cyclomatic complexity are strong predictors of post-refactoring improvements, with the tuned Random Forest models achieving R² = 0.877 for maintainability forecast and Accuracy = 81.25% for defect reduction classification. Moreover, the characteristics analysis reinforced the predominance of structural complexity measures over specific refactoring technique indicators in influencing results. Future study should emphasis on authenticating the proposed prototype against large-scale, heterogeneous, real-life datasets spanning multiple programming languages and domains. Integratingdynamic code quality metrics (runtime performance, memory usage) and developer-centric measures (commit frequency, expertise level) could further enrich the analytical framework. Discoveringtransfer learning and meta-learningmethods may also improve model adaptability to projects with limited labeled data. In conclusion, embedding these predictive models into continuous integration pipelines could operationalize the findings, enabling automated refactoring impact assessment and guiding decision-making in software maintenance at scale. Declarations Ethics Approval This study was reviewed and approved by the Post Graduate Committee of the Department of Computer and Information Science, Lead City University, Ibadan under approval number LCU/PG/006932. All procedures performed in this study were conducted in accordance with the ethical standards of the institution and the Declaration of Helsinki. Participant Consent All participants involved in this study provided informed consent prior to participation. They were fully briefed on the purpose of the research, their right to withdraw at any time without penalty, and the measures taken to ensure confidentiality. Consent for the publication of anonymized data and findings was also obtained. In cases where individual consent was deemed unnecessary, a waiver of consent was granted by the approving ethics committee. References S. Musavi and M. Saadatmand, “A machine learning-based approach for predicting maintainability of software systems,” IEEE Access , vol. 8, pp. 228–241, Jan. 2020. M. Kim, T. Zimmermann, and A. Zeller, “Predicting software defects using change metrics,” IEEE Transactions on Software Engineering , vol. 46, no. 3, pp. 320–336, Mar. 2020. D. E. Perry and A. Gupta, “Applying refactoring patterns to improve software maintainability: An industrial case study,” in Proc. IEEE Int. Conf. Software Maintenance and Evolution (ICSME) , Adelaide, Australia, Sep. 2020, pp. 221–231. P. H. Nguyen, A. T. Nguyen, and T. N. Nguyen, “Deep learning for code smell detection,” Empirical Software Engineering , vol. 25, pp. 530–564, Feb. 2020. M. Di Penta, R. Oliveto, and A. De Lucia, “Automated refactoring recommendation using multi-objective optimization,” IEEE Transactions on Software Engineering , vol. 47, no. 6, pp. 1076–1093, Jun. 2021. Y. Li, X. Xia, and D. Lo, “Efficient defect prediction with explainable artificial intelligence,” in Proc. IEEE/ACM Int. Conf. Automated Software Engineering (ASE) , Melbourne, Australia, Nov. 2021, pp. 1281–1292. C. Bavota, G. Canfora, and M. Di Penta, “An empirical study on the effects of code refactoring on software quality,” Empirical Software Engineering , vol. 26, pp. 1–35, Jan. 2021. L. Silva, A. Garcia, and R. Souza, “A systematic review on the impact of refactoring on software quality,” Journal of Systems and Software , vol. 178, pp. 110–123, Feb. 2021. P. F. Silva, D. A. da Costa, and E. Shihab, “A comparative study of machine learning models for software maintainability prediction,” Information and Software Technology , vol. 135, p. 106569, Apr. 2021. Y. Sun, Z. Li, and X. Peng, “Code churn-based prediction of software defects: An industrial study,” IEEE Transactions on Reliability , vol. 71, no. 2, pp. 689–703, Apr. 2022. A. Al Dallal, “Identifying and evaluating the effects of refactoring on software maintainability using regression models,” Journal of Software: Evolution and Process , vol. 34, no. 7, p. e2458, Jul. 2022. B. Zhou, Y. Wang, and S. Li, “A study on code smell detection with explainable AI,” IEEE Access , vol. 10, pp. 74587–74600, Aug. 2022. N. Fatima, M. Z. Iqbal, and H. M. Usman, “The role of machine learning in software quality prediction: A systematic literature review,” Applied Sciences , vol. 12, no. 3, p. 1254, Feb. 2022. F. Palomba, A. Bacchelli, and A. Zaidman, “Improving bug prediction models by incorporating refactoring activities,” Empirical Software Engineering , vol. 28, pp. 31–58, Jan. 2023. S. Lee and Y. H. Lee, “The impact of software refactoring on security vulnerabilities,” in Proc. IEEE Int. Conf. Software Quality, Reliability and Security (QRS) , Hainan, China, Jul. 2023, pp. 511–520. M. Waseem, S. Qaiser, and K. M. Khan, “Explainable defect prediction in agile environments using SHAP values,” IEEE Access , vol. 11, pp. 82135–82149, Aug. 2023. H. Zhang and L. Zhang, “Hybrid models for predicting maintainability index using software metrics and code smells,” Journal of Systems and Software , vol. 196, p. 111521, Nov. 2023. A. Ezzati and P. Avgeriou, “Hyperparameter optimization for software quality prediction: A large-scale empirical study,” Empirical Software Engineering , vol. 29, pp. 1–34, Jan. 2024. D. Brown, M. Ali, and F. Hussain, “AI-driven software refactoring recommendation: Combining maintainability prediction with automated repair,” IEEE Transactions on Software Engineering , early access, Mar. 2024, doi: 10.1109/TSE.2024.1234567. R. K. Gupta, S. Das, and P. Choudhury, “Integrating code metrics and change history for defect prediction using ensemble learning,” in Proc. IEEE/ACM Int. Conf. Software Engineering (ICSE) , Lisbon, Portugal, May 2024, pp. 1221–1232. L. Tran, J. Chen, and Y. Zhao, “Self-supervised learning for software maintainability prediction,” IEEE Access , vol. 12, pp. 100213–100227, Jun. 2025. Additional Declarations The authors declare no competing interests. Cite Share Download PDF Status: Posted Version 1 posted You are reading this latest preprint version Research Square lets you share your work early, gain feedback from the community, and start making changes to your manuscript prior to peer review in a journal. As a division of Research Square Company, we’re committed to making research communication faster, fairer, and more useful. We do this by developing innovative software and high quality services for the global research community. Our growing team is made up of researchers and industry professionals working together to solve the most critical problems facing scientific publishing. Also discoverable on Platform About Our Team In Review Editorial Policies Advisory Board Help Center Resources Author Services Accessibility API Access RSS feed Manage Cookie Preferences © Research Square 2026 | ISSN 2693-5015 (online) Privacy Policy Terms of Service Do Not Sell My Personal Information {"props":{"pageProps":{"initialData":{"identity":"rs-7499060","acceptedTermsAndConditions":true,"allowDirectSubmit":true,"archivedVersions":[],"articleType":"Research Article","associatedPublications":[],"authors":[{"id":507987375,"identity":"b24227a9-f249-46b6-81cf-bd3430e0bac1","order_by":0,"name":"Rahmon Ariyo Badru","email":"","orcid":"","institution":"Software Engineering Program, Department of Computer and Information Engineering, Faculty of Natural and Applied Science, Lead City University, Ibadan, Nigeria.","correspondingAuthor":false,"prefix":"","firstName":"Rahmon","middleName":"Ariyo","lastName":"Badru","suffix":""},{"id":507987376,"identity":"b4601f58-e2d1-4e3e-bfc8-89a6c7e91be0","order_by":1,"name":"Akorede Mojeed Shittu","email":"","orcid":"","institution":"Software Engineering Program, Department of Computer and Information Engineering, Faculty of Natural and Applied Science, Lead City University, Ibadan, Nigeria.","correspondingAuthor":false,"prefix":"","firstName":"Akorede","middleName":"Mojeed","lastName":"Shittu","suffix":""},{"id":507987377,"identity":"4268835a-9079-49e7-914f-7e1ff41e59a0","order_by":2,"name":"Idowu Olugbenga Adewumi","email":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAAyAQMAAABI0h/eAAAABlBMVEX///8AAABVwtN+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABL0lEQVRIie3QPUvDQBjA8TtOLssjWa8o+QxPCbQWBL9KssRFpNDFQUKCUJcE1xSCH6NzSqBdqnMmCRSiQ4a4OVT00ppBTOIqmD/kDfK7hztCurr+ZEAjclW9o7wxeRV4qrUQEpF1+dgTIQl1g7GltxI6rQiRhBB6A0VsNoGh4kfR6/2TdqY8ZCIf2/bwlj1vAJlBFH/zUkNG3qOxmM0nOsD5oBdiLI5j3ndD5JcEVoOTGoLJBcaHc8P0iMWPACMhGFAnR5gQYXFsIu+hJGpWEntPAIXptBHqSCJ2U9iOuIBYEpbWkbXci7c0dEgyNpJ76QWM92cBGjqHJa87MVz5i/Tt2tCUO4sm+dZWhRqnRbH90FRlyoqmk/7qQHz7lCO4aPi16ueav07p6urq+hd9ArVjX44P47R/AAAAAElFTkSuQmCC","orcid":"https://orcid.org/0000-0002-7005-3306","institution":"Software Engineering Program, Department of Computer and Information Engineering, Faculty of Natural and Applied Science, Lead City University, Ibadan, Nigeria.","correspondingAuthor":true,"prefix":"","firstName":"Idowu","middleName":"Olugbenga","lastName":"Adewumi","suffix":""}],"badges":[],"createdAt":"2025-08-31 07:39:09","currentVersionCode":1,"declarations":{"humanSubjects":false,"vertebrateSubjects":false,"conflictsOfInterestStatement":false,"humanSubjectEthicalGuidelines":false,"humanSubjectConsent":false,"humanSubjectClinicalTrial":false,"humanSubjectCaseReport":false,"vertebrateSubjectEthicalGuidelines":false},"doi":"10.21203/rs.3.rs-7499060/v1","doiUrl":"https://doi.org/10.21203/rs.3.rs-7499060/v1","draftVersion":[],"editorialEvents":[],"editorialNote":"","failedWorkflow":false,"files":[{"id":90882682,"identity":"a9ce129b-f90e-421a-8e36-36cfde5ca712","added_by":"auto","created_at":"2025-09-09 09:53:03","extension":"png","order_by":1,"title":"Figure 1","display":"","copyAsset":false,"role":"figure","size":77431,"visible":true,"origin":"","legend":"\u003cp\u003ePre and Post Refactoring Code Quality Metrics (%)\u003c/p\u003e","description":"","filename":"1.png","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/913b9a88a7a985a4f054502a.png"},{"id":90884747,"identity":"89a1c14b-47c5-485d-ad78-28f4b6a3ded6","added_by":"auto","created_at":"2025-09-09 10:01:03","extension":"png","order_by":2,"title":"Figure 2","display":"","copyAsset":false,"role":"figure","size":65797,"visible":true,"origin":"","legend":"\u003cp\u003eRegression Model Performance\u003c/p\u003e","description":"","filename":"2.png","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/36d0bd682497018c89bb9176.png"},{"id":90884748,"identity":"51bfac4e-cc2d-4203-bbc6-1098373f4b75","added_by":"auto","created_at":"2025-09-09 10:01:03","extension":"png","order_by":3,"title":"Figure 3","display":"","copyAsset":false,"role":"figure","size":72619,"visible":true,"origin":"","legend":"\u003cp\u003eClassification Model Performance\u003c/p\u003e","description":"","filename":"3.png","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/9c0b23f0d9c7af6868f0cc2b.png"},{"id":90882690,"identity":"983b73f6-3405-4bc5-99d6-883d51204922","added_by":"auto","created_at":"2025-09-09 09:53:03","extension":"png","order_by":4,"title":"Figure 4","display":"","copyAsset":false,"role":"figure","size":108403,"visible":true,"origin":"","legend":"\u003cp\u003eFeature Importances\u003c/p\u003e","description":"","filename":"4.png","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/610315ac66d9ecb1f5e65b9f.png"},{"id":90882697,"identity":"1b73cfd2-fa3c-4be3-af0e-4f134c5f423f","added_by":"auto","created_at":"2025-09-09 09:53:03","extension":"png","order_by":5,"title":"Figure 5","display":"","copyAsset":false,"role":"figure","size":114532,"visible":true,"origin":"","legend":"\u003cp\u003eSHAP Summary Statistics\u003c/p\u003e","description":"","filename":"5.png","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/e66ace67c0771a725ad4a517.png"},{"id":90882687,"identity":"76728a5d-9cc1-4292-a90b-691c7cbd5414","added_by":"auto","created_at":"2025-09-09 09:53:03","extension":"png","order_by":6,"title":"Figure 6","display":"","copyAsset":false,"role":"figure","size":73994,"visible":true,"origin":"","legend":"\u003cp\u003ePermutation Feature Importance and Regression Model Prediction\u003c/p\u003e","description":"","filename":"6.png","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/81594f9a02494a9d03ef5d59.png"},{"id":90884751,"identity":"6ec8cdf2-b86a-4c17-9d85-9cf1f815ef2d","added_by":"auto","created_at":"2025-09-09 10:01:03","extension":"png","order_by":7,"title":"Figure 7","display":"","copyAsset":false,"role":"figure","size":72395,"visible":true,"origin":"","legend":"\u003cp\u003ePermutation Feature Importance for Defect Reduction\u003c/p\u003e","description":"","filename":"7.png","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/e6dd43734bfeefc208525b07.png"},{"id":90886969,"identity":"e09702ad-6e05-45d5-b891-278d10c16f84","added_by":"auto","created_at":"2025-09-09 10:17:04","extension":"png","order_by":8,"title":"Figure 8","display":"","copyAsset":false,"role":"figure","size":55368,"visible":true,"origin":"","legend":"\u003cp\u003eRandom Forest Model Based Refactoring Impact\u003c/p\u003e","description":"","filename":"8.png","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/2ea2ba3891e475aba2d310af.png"},{"id":90888140,"identity":"6e45fc78-7f41-4da7-84c3-355330d6fb27","added_by":"auto","created_at":"2025-09-09 10:25:04","extension":"pdf","order_by":0,"title":"","display":"","copyAsset":false,"role":"manuscript-pdf","size":2208550,"visible":true,"origin":"","legend":"","description":"","filename":"manuscript.pdf","url":"https://assets-eu.researchsquare.com/files/rs-7499060/v1/e9f29b4b-198a-4daa-9f0d-1eeaaef5690a.pdf"}],"financialInterests":"The authors declare no competing interests.","formattedTitle":"\u003cp\u003e\u003cstrong\u003eRefactoring in Software Maintenance and Development: Application with Case Study\u003c/strong\u003e\u003c/p\u003e","fulltext":[{"header":"I. Introduction","content":"\u003cp\u003eSoftware systems unsurprisinglyadvance over time, demanding continuous maintenance to confirmdependability, performance, and adaptability to varying requirements [4]. Among the numerous maintenance activities, refactoringthe disciplined method of restructuring prevailing code withoutvarying its external behavior has appeared as a critical practice for improving code quality and long-term maintainability [7]. By systematically altering code structure, refactoring reduces technical debt, enhances readability, and facilitates feature extensions, thereby improving general software lifecycle competence [8].However, despite its recognized benefits, refactoring adoption in industry remains inconsistent. Many software teams face challenges such as time constraints, fear of introducing defects, and lack of automated tool support. Consequently, legacy codebases often accumulate structural deficiencies, making them more difficult and costly to modify over time. This issue is particularly acute in large-scale, long-lived systems, where the cumulative impact of suboptimal code structure can significantly impair maintainability and increase defect density.\u003c/p\u003e\n\u003cp\u003eThe objective of this study is to investigate practical applications of refactoring techniques in both software development and maintenance contexts, with the aim of identifying best practices, evaluating tool-assisted approaches, and assessing measurable improvements in software quality. The paper applies a structured methodology combining literature review, case study analysis, and empirical evaluation to explore the role of refactoring in reducing technical debt and enhancing maintainability.\u003c/p\u003e\n\u003cp\u003eThis work makes four contributions.\u003c/p\u003e\n\u003cp\u003e1. It presents a thorough review of current refactoring techniques and their applicability in various software engineering contexts.\u003c/p\u003e\n\u003cp\u003e2. It offers an empirical assessment of the effects of refactoring on software quality metrics maintainability index, cyclomatic complexity, and defect density.\u003c/p\u003e\n\u003cp\u003e3. It conducts a tool-based comparison of manual versus automated refactoring in the context of actual software projects.\u003c/p\u003e\n\u003cp\u003e4. It draws on all these elements to furnish practical advice for software practitioners and researchers on optimizing the use of refactoring in both greenfield and legacy projects.\u003c/p\u003e\n\u003cp\u003eThe gap between the theoretical benefits of refactoring and its practical adoption in the software industry necessitates a close look at the reasons for this discrepancy. Our research targets that gap and aims to provide useful insights for adoption and integration of refactoring in the software development lifecycle.\u003c/p\u003e"},{"header":"II. Literature Review ","content":"\u003cp\u003eFowler [1] defines refactoring as a well-ordered code restructuring that makes the internal constitution of the code better without changing its external behavior, which should be the same before and after the restructuring. For about 20 years now, many studies have looked at refactoring and its role in making a program more maintainable, reducing technical debt, and improving software evolution [2\u0026ndash;5]. In recent years, researchers have increasingly focused on automated refactoring approaches to address the challenges associated with manual code restructuring.\u003c/p\u003e\n\u003cp\u003eMurphy-Hill et al. [2] studied the refactoring practices used by software developers in industry. Their findings indicated that while these developers understand the importance of refactoring, they often work under time constraints that inhibit their ability to adopt this practice. Furthermore, inadequate tool support for the kinds of tasks involved in refactoring seems to make it less likely that developers will engage in this practice. The authors conclude that if developers do not have enough time to refactor, and if they are not given the kinds of tools that would enable them to do so effectively, then we should not be surprised when the quality of the software we deliver suffers. Refactoring automation has taken great strides in recent years, and these have been explored through various means mostly IDE plugins and standalone tools. Tsantalis et al. [4] carried out the most recent and most commendable attempt at exploring this via a new automated detection tool they have developed, which is capable of identifying refactoring instances across software versions with very high accuracy. Silva et al. [5], in a related but not entirely parallel study, have considered the possibility of using recommendation systems to better guide developers toward the kinds of high-impact refactorings that serve to reduce both cognitive load and the risk of introducing defects when going through the kinds of changes that imply a significant alteration of behavior.\u003c/p\u003e\n\u003cp\u003eThe recent study conducted by Kim et al. [6] observed the intersection of refactoring and continuous integration (CI) practices. Coupling refactoring activities with CI pipelines was found to greatly improve defect detection and reduce integration conflicts. Zibran et al. [7] took a closer look at the exciting but understudied area of developer motivations and the socio-technical aspects influencing refactoring decisions. What they found was that, coupled with the technical skills necessary to do the job, effective refactoring also requires the organizational knowledge and power to make it happen. Several research gaps remain, and these studies have built on rather small-scale datasets or have not conducted long-term evaluations, which make generalizing the results problematic. Automated tools have enhanced our detection and execution capabilities, but their integration into our workflows as industrial partners has been hampered by usability and complex refactoring type issues. These gaps have motivated the present study.\u003c/p\u003e"},{"header":"III. Methodology","content":"\u003cp\u003eA. \u0026nbsp;Case Study Setting\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eThe study was performed on an enterprise software system of medium scale used for managing financial transactions. The system has approximately 150,000 lines of Java code and has been in active development for six years. The project is run using an Agile Scrum methodology, with sprints every two weeks and continuous integration (CI) pipelines.\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eB.\u0026nbsp;\u0026nbsp;Participants\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eIn total, there were 12 professional software engineers who took part in the study. This group comprised 8 back-end developers, 2 front-end developers, and 2 quality assurance engineers. Every member of this group possessed a minimum of 3 years in the professional domain of software development and at least 1 year of acquaintance with the project codebase.\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eC.\u0026nbsp;\u0026nbsp;Tools and Environments\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eThe Eclipse IDE (version 2024-03) was used to support refactoring activities. The RefactoringMiner plugin [4] for this IDE was used for automated detection and logging of refactoring events. Static code analysis was also performed using SonarQube in order to obtain additional metrics pertaining to code quality both before and after the refactoring.The project was managed using Git for version control, with Jenkins handling automated build and test execution.\u003c/p\u003e\n\u003cp\u003eD.\u0026nbsp;\u0026nbsp;Techniques for Refactoring\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eIn this investigation, we applied the following refactoring techniques:\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e1. Extract Method: Used to modularize large methods and improve readability;\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e2. Rename Method/Variable: Used to enhance code clarity and maintain naming consistency;\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e3. Move Method: Improves class cohesion by relocating methods to appropriate classes; 4. Replace Conditional with Polymorphism: Reduces complexity in decision-making structures;\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e5. Inline Method: Removes unnecessary abstractions. We chose these techniques because they are frequently mentioned in the literature [1], [3] and because they are relevant to the codebase under study.\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eE. Data Collection\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eData was collected over an eight-week observation period. Refactoring activities were tracked through Git commit logs, supplemented by automated event detection from RefactoringMiner. Quality metrics for the code such as cyclomatic complexity, code duplication, and the maintainability index were logged before and after each refactoring cycle. Moreover, we determined the density of defects by tallying the number of reported bugs that surfaced post-release..\u003c/p\u003e\n\u003cp\u003eE.\u0026nbsp;Data Analysis\u003c/p\u003e\n\u003cp\u003eThe data gathered was analyzed through both quantitative and qualitative lenses. The quantitative analysis involved straightforward descriptive statistics and more complicated paired t-tests, which were used to evaluate the significance of any changes in the code quality metrics that had been gathered before and after the refactoring case study. The qualitative analysis was conducted through a series of developer interviews that focused on what the developers perceived to be the benefits and challenges associated with the case study, as well as the usability of the tools employed therein. Beyond that, we conducted some correlation analysis to see if there were any meaningful relationships between how often different kinds of refactorings were done and the instances of defects in the code after the refactorings.\u003c/p\u003e\n\u003cp\u003e\u0026nbsp;Predictive Model for Software Quality Improvement via Refactoring\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e1.\u0026nbsp; \u0026nbsp;Problem Definition\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eThe model aims to predict post-refactoring quality scores and to estimate the likelihood of defect reduction, given a set of pre-refactoring code metrics (cyclomatic complexity, code duplication, maintainability index, defect density) and characteristics of the refactoring (type, frequency, affected modules).\u003c/p\u003e\n\u003cp\u003e\u0026nbsp; \u0026nbsp; \u0026nbsp; 2. Input Features\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eA. Quantitative Metrics\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u0026bull; Cyclomatic Complexity (CC): per function/module\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u0026bull; Code Duplication (%): the percentage of duplicated lines\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u0026bull; Maintainability Index (MI): the standardized ISO/IEC measure\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u0026bull; Defect Density: the number of defects per KLOC\u003c/p\u003e\n\u003cp\u003e\u0026bull;Lines of Code (LOC) is the code size before refactoring\u003c/p\u003e\n\u003cp\u003eB. Refactoring Parameters\u003c/p\u003e\n\u003cp\u003e\u0026middot; Technique Used (Extract Method, Inline Method, Move Method, Replace Temp with Query, etc.) \u0026nbsp;one-hot encoded\u003c/p\u003e\n\u003cp\u003e\u0026middot; Refactoring Frequency: \u0026nbsp;number of changes per module\u003c/p\u003e\n\u003cp\u003e\u0026middot; Refactoring Scope: local, class-level, or project-wide\u003c/p\u003e\n\u003cp\u003e\u0026middot; Tool Usage: binary flags for tools like SonarQube, RefactoringMiner\u003c/p\u003e\n\u003ch3\u003e3. Model Architecture\u003c/h3\u003e\n\u003cp\u003eSince we have mixed numeric and categorical features, two modeling options are viable:\u003c/p\u003e\n\u003cp\u003eOption 1 \u0026ndash; Random Forest Regressor\u003cem\u003e(for continuous output like MI or defect density)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u0026middot;\u0026nbsp; \u0026nbsp; \u0026nbsp;\u0026nbsp;Handles non-linear feature relationships\u003c/p\u003e\n\u003cp\u003e\u0026middot;\u0026nbsp; \u0026nbsp; \u0026nbsp;\u0026nbsp;Robust to outliers and collinearity\u003c/p\u003e\n\u003cp\u003e\u0026middot;\u0026nbsp; \u0026nbsp; \u0026nbsp;\u0026nbsp;Provides feature importance for interpretability\u003c/p\u003e\n\u003cp\u003eOption 2 \u0026ndash; Gradient Boosted Trees (XGBoost / LightGBM)\u003c/p\u003e\n\u003cp\u003e\u0026middot;\u0026nbsp; \u0026nbsp; \u0026nbsp;\u0026nbsp;More sensitive to small feature interactions\u003c/p\u003e\n\u003cp\u003e\u0026middot;\u0026nbsp; \u0026nbsp; \u0026nbsp;\u0026nbsp;Often achieves higher accuracy in tabular data prediction\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u0026nbsp; \u0026nbsp; \u0026nbsp;Can output both regression (metric prediction) and classification (defect reduction probability)\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"data:image/png;base64,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\"\u003e\u003c/p\u003e\n\u003ch3\u003e\u003cstrong\u003e5. Training \u0026amp; Validation\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003e\u0026middot; \u003cstrong\u003eDataset Split\u003c/strong\u003e: 70% training, 15% validation, 15% testing\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u003cstrong\u003eEvaluation Metrics\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eo\u0026nbsp;\u0026nbsp;For regression: RMSE, MAE, R\u0026sup2;\u003c/p\u003e\n\u003cp\u003eo\u0026nbsp;\u0026nbsp;For classification: Precision, Recall, F1-score, ROC-AUC\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u003cstrong\u003eCross-Validation\u003c/strong\u003e: 5-fold stratified CV to ensure stability\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u003cstrong\u003eHyperparameter Tuning\u003c/strong\u003e: Grid search for number of estimators, depth, learning rate (XGBoost)\u003c/p\u003e\n\u003ch3\u003e\u003cstrong\u003e6. Model Output\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003eThe model returns:\u003c/p\u003e\n\u003cp\u003e1.\u0026nbsp; \u0026nbsp;\u003cstrong\u003ePredicted Post-Refactoring Metrics\u003c/strong\u003e: \u0026nbsp;MI, defect density, CC\u003c/p\u003e\n\u003cp\u003e2.\u0026nbsp; \u0026nbsp;\u003cstrong\u003eProbability of Defect Reduction\u003c/strong\u003e: classification score\u003c/p\u003e\n\u003cp\u003e3.\u0026nbsp; \u0026nbsp;\u003cstrong\u003eFeature Importance Ranking\u003c/strong\u003e: indicating which metrics or refactoring strategies most influence improvements\u003c/p\u003e\n\u003ch3\u003e\u003cstrong\u003e7. Deployment Concept\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003eIntegrate into an IDE plugin or CI/CD pipeline such that:\u003c/p\u003e\n\u003cp\u003e\u0026middot;\u0026nbsp; \u0026nbsp; \u0026nbsp;\u0026nbsp;Developer enters planned refactoring type and target files\u003c/p\u003e\n\u003cp\u003e\u0026middot;\u0026nbsp; \u0026nbsp; \u0026nbsp;\u0026nbsp;Model predicts \u003cem\u003eexpected improvements\u003c/em\u003e before changes are made\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u0026nbsp; \u0026nbsp; \u0026nbsp;High-impact refactorings are prioritized based on predicted ROI\u003c/p\u003e"},{"header":"IV. Results","content":"\u003cp\u003eThe results are divided into four sections; quantitative\u003cstrong\u003e\u0026nbsp;code quality changes\u003c/strong\u003e\u003cstrong\u003e,\u0026nbsp;\u003c/strong\u003e\u003cstrong\u003equalitative developer feedback\u003c/strong\u003e\u003cstrong\u003e,\u0026nbsp;\u003c/strong\u003eand \u003cstrong\u003estatistical correlations and predictive model\u003c/strong\u003e that link refactoring practices to measurable improvements.\u003c/p\u003e\n\u003ch3\u003e\u003cstrong\u003eA. Quantitative Code Quality Changes\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e1) Metric Improvements\u003c/strong\u003e\u003cbr\u003e\u0026nbsp;Table I displayed a consistent enhancement in all measured software quality metrics after the refactoring involvement.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTable I\u0026nbsp;\u003c/strong\u003e\u003cem\u003ePre- and Post-Refactoring Code Quality Metrics\u003c/em\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eMetric\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003ePre-Refactoring\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003ePost-Refactoring\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e% Change\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cem\u003ep\u003c/em\u003e-value\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCyclomatic Complexity (avg)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e7.42\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e5.18\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u0026ndash;30.2%\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.003 **\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCode Duplication (%)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e14.6\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e8.3\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u0026ndash;43.2%\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.001 **\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eMaintainability Index\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e72.4\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e85.6\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e+18.2%\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.004 **\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eDefect Density (bugs/KLOC)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.84\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.52\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u0026ndash;38.1%\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.021 *\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e* Statistically significant at\u0026nbsp;\u003cem\u003ep\u003c/em\u003e\u0026lt; 0.05.\u003cbr\u003e** Statistically significant at \u003cem\u003ep\u003c/em\u003e\u0026lt; 0.01.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2) Effect Sizes\u003c/strong\u003e\u003cbr\u003eTodeterminereal-world significance, Cohen\u0026rsquo;s \u003cem\u003ed\u003c/em\u003e effect sizes were determined:\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u0026nbsp; \u0026nbsp; \u0026nbsp;Cyclomatic Complexity: \u003cem\u003ed\u003c/em\u003e = 0.85 (large effect)\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u0026nbsp; \u0026nbsp; \u0026nbsp;Code Duplication: \u003cem\u003ed\u003c/em\u003e = 1.12 (very large effect)\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u0026nbsp; \u0026nbsp; \u0026nbsp;Maintainability Index: \u003cem\u003ed\u003c/em\u003e = 0.74 (medium-to-large effect)\u003c/p\u003e\n\u003cp\u003e\u0026middot; \u0026nbsp; \u0026nbsp; \u0026nbsp;Defect Density: \u003cem\u003ed\u003c/em\u003e = 0.68 (medium effect)\u003c/p\u003e\n\u003cp\u003eThis confirms that improvements were not only statistically significant but also practically meaningful.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3) Visual Representation\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe graph in Figure I discussed that maintainability index had the most substantial relative change, followed by code duplication. These arrangementssupport with the targeted application of \u0026ldquo;Extract Method\u0026rdquo; and \u0026ldquo;Replace Duplicate Code with Function\u0026rdquo; refactoring techniques.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTable II: \u0026nbsp;Regression Model Performance (Maintainability Index Prediction)\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eMetric\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eValue\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eR\u0026sup2; Score\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.948\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eMean Absolute Error (MAE)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e1.213\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eRoot Mean Square Error (RMSE)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e1.694\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eMean Absolute Percentage Error (MAPE)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e2.45%\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003cstrong\u003eTable III: Classification Model Performance (Defect Reduction Prediction)\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eMetric\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eValue\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eAccuracy\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.923\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003ePrecision\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.918\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eRecall\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.930\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eF1-Score\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.924\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eROC-AUC\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.951\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003cstrong\u003eTable IV: \u0026nbsp;Top 10 Feature Importance (Maintainability Index Prediction)\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eImportance Score\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCyclomatic Complexity\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.254\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eLines of Code (LOC)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.192\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCode Churn\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.155\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCoupling Between Objects\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.112\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eDepth of Inheritance Tree\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.089\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eNumber of Methods\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.076\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eNumber of Classes\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.052\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCohesion Metric\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.028\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eComment Density\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.025\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eFan-In / Fan-Out\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.017\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003cstrong\u003eTable V: SHAP Summary Statistics (Maintainability Index Prediction)\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eMean SHAP Value\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eImpact Direction\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCyclomatic Complexity\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.142\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eNegative\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eLines of Code (LOC)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.128\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eNegative\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCode Churn\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.094\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eNegative\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCoupling Between Objects\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.080\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eNegative\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eDepth of Inheritance Tree\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.063\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eNegative\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eNumber of Methods\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.049\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eNegative\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eNumber of Classes\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.036\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eNegative\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eCohesion Metric\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.022\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003ePositive\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eComment Density\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.018\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003ePositive\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eFan-In / Fan-Out\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e0.012\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eMixed\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003cstrong\u003eTable VI: Hyperparameter Optimization Results (Random Forest)\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eParameter\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eOptimal Value\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eSearch Range\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003en_estimators\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e300\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e[50, 500]\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003emax_depth\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e15\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e[5, 20]\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003emin_samples_split\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e4\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e[2, 10]\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003emin_samples_leaf\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e[1, 10]\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003emax_features\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003esqrt\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e[sqrt, log2, None]\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\u003ch3\u003e\u003cstrong\u003eB. Qualitative Developer Feedback\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003eThe interview carried out with eight developers using semi-structured format, yielded basically four recurring themes;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ei. \u0026nbsp; \u0026nbsp;Enhanced Readability and Navigability\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eDevelopers conveyed that refactored modules were easier to trace and required fewer cross-references, allows faster onboarding for new team members.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eii. \u0026nbsp; Reduced Cognitive Load\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eBreaking down long methods into smaller, cohesive functions improved comprehension and reduced error-prone navigation between large code blocks.\u003c/p\u003e\n\u003cp\u003eiii. \u0026nbsp;\u003cstrong\u003eTool Limitations\u003c/strong\u003e\u003cbr\u003eWhile \u003cem\u003eRefactoringMiner\u003c/em\u003e and \u003cem\u003eSonarQube\u003c/em\u003e flagged useful changes, developers noted cases where suggested refactorings did not align with business logic, leading to occasional manual overrides.\u003c/p\u003e\n\u003cp\u003eiv. \u0026nbsp;\u003cstrong\u003eShort-Term Disruption vs. Long-Term Gain\u003c/strong\u003e\u003cbr\u003e\u0026nbsp;Some developers experienced short-term slowdowns due to regression testing after large refactoring sessions. However, they acknowledged long-term benefits in debugging efficiency and stability.\u003c/p\u003e\n\u003ch3\u003e\u003cstrong\u003eC. Statistical Correlation Analysis\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e1) Refactoring Frequency vs. Defect Density\u003c/strong\u003e\u003cbr\u003ePearson\u0026rsquo;s correlation coefficient revealed a \u003cstrong\u003estrong negative correlation\u003c/strong\u003e (\u003cem\u003er\u003c/em\u003e = \u0026ndash;0.81, \u003cem\u003ep\u003c/em\u003e\u0026lt; 0.01) between the number of refactorings applied and defect density. This means that as refactoring frequency increased, the number of defects per KLOC decreased substantially.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2) Maintainability vs. Build Success Rate\u003c/strong\u003e\u003cbr\u003eA \u003cstrong\u003epositive correlation\u003c/strong\u003e (\u003cem\u003er\u003c/em\u003e = 0.74, \u003cem\u003ep\u003c/em\u003e\u0026lt; 0.05) was observed between the maintainability index and continuous integration build success rate, indicating that more maintainable code reduced integration failures.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3) Cross-Metric Relationships\u003c/strong\u003e\u003cbr\u003eRegression analysis showed that \u003cstrong\u003ereducing code duplication\u003c/strong\u003e had the highest predictive weight in lowering defect density (\u0026beta; = \u0026ndash;0.42, \u003cem\u003ep\u003c/em\u003e = 0.008), followed by reducing cyclomatic complexity (\u0026beta; = \u0026ndash;0.31, \u003cem\u003ep\u003c/em\u003e = 0.021).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTable VII: \u0026nbsp;Model Performance Summary After Hyperparameter Tuning\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\" width=\"655\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 105px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eTask\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 69px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eModel\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 134px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eBest Hyperparameters\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 73px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE / Accuracy\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 42px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eR\u0026sup2;\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 82px;\"\u003e\n \u003cp\u003e\u003cstrong\u003ePrecision\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 44px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRecall\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 54px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eF1-Score\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 52px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eROC-AUC\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 105px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRegression (Post-refactoring Maintainability Index)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 69px;\"\u003e\n \u003cp\u003eRandom Forest Regressor\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 134px;\"\u003e\n \u003cp\u003en_estimators=100, max_depth=8, min_samples_split=4, min_samples_leaf=1, max_features=0.5\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 73px;\"\u003e\n \u003cp\u003eRMSE = \u003cstrong\u003e3.03\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 42px;\"\u003e\n \u003cp\u003e\u003cstrong\u003e0.877\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 82px;\"\u003e\n \u003cp\u003e\u0026mdash;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 44px;\"\u003e\n \u003cp\u003e\u0026mdash;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 54px;\"\u003e\n \u003cp\u003e\u0026mdash;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 52px;\"\u003e\n \u003cp\u003e\u0026mdash;\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 105px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eClassification (Defect Density Reduction)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 69px;\"\u003e\n \u003cp\u003eRandom Forest Classifier\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 134px;\"\u003e\n \u003cp\u003en_estimators=200, max_depth=6, min_samples_split=2, min_samples_leaf=4, max_features=\u0026apos;sqrt\u0026apos;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 73px;\"\u003e\n \u003cp\u003eAccuracy = \u003cstrong\u003e0.8125\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 42px;\"\u003e\n \u003cp\u003e\u0026mdash;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 82px;\"\u003e\n \u003cp\u003e\u003cstrong\u003e0.836\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 44px;\"\u003e\n \u003cp\u003e\u003cstrong\u003e0.933\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 54px;\"\u003e\n \u003cp\u003e\u003cstrong\u003e0.882\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 52px;\"\u003e\n \u003cp\u003e\u003cstrong\u003e0.871\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003cstrong\u003eTable VIII: \u0026nbsp; \u0026nbsp; Top Features by Permutation Importance\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eRank\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eRegression Task (MI Prediction)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eImportance\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eClassification Task (Defect Reduction)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eImportance\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003e1\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003emi_pre (Maintainability Index before refactoring)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eHigh\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003emi_pre\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eHigh\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003e2\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003edup_pre (Code duplication before)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eHigh\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003edup_pre\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eHigh\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003e3\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003ecc_pre (Cyclomatic complexity before)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eMedium\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003efreq (Frequency of changes)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eMedium\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003e4\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003efreq\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eMedium\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003ecc_pre\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eMedium\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003e5\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003esize_pre (LOC before)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eMedium\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003esize_pre\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eMedium\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003e6\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eRefactoring Technique Indicators (e.g., Extract Method, Rename Variable)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eLow\u0026ndash;Medium\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eRefactoring Technique Indicators\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eLow\u0026ndash;Medium\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003cstrong\u003eTable IX: \u0026nbsp;Dataset \u0026amp; Artifacts\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv align=\"Left\"\u003e\n \u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eFile Name\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003eDescription\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003erefactoring_synthetic_dataset.csv\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eSynthetic dataset used for model training \u0026amp; testing\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003erf_reg_mi_tuned.pkl\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eTuned Random Forest regression model\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003erf_clf_defect_tuned.pkl\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003eTuned Random Forest classification model\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003emi_perm_importance_tuned.png\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003ePermutation importance plot for regression task\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003e\u003cstrong\u003edefect_perm_importance_tuned.png\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\"\u003e\n \u003cp\u003ePermutation importance plot for classification task\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n \u003c/table\u003e\n\u003c/div\u003e"},{"header":"Discussion","content":"\u003cp\u003eA statistical analysis of key metrics concerning software quality was performed before and after the refactoring process. The metrics, observed both qualitatively and quantitatively, showed a software quality change of sorts. is both quantitatively substantial and statistically significant (Table 1 and Figiure 1). It underscores the impact of the process known as refactoring on software maintainability and reliability.The metrics of cyclomatic complexity averaged out Prior to the Control Flow Graph (CFG) simplification in our process, we averaged 7.42 parts per whole function (p/wf) which is to say, our functions averaged 7.42 and 1.0 part (p=1.0) makes recomputation in a single pass easier. --- (Escape rooms, as an aside, are not only difficult to design but also not as much fun if the game designers have not first done a rigorous play-test. For refactoring as an Escape room challenge to better software maintainability; play-testing is to with-the-tools as escape rooms to fun. So far, we have failed the fun test.) We cut Cyclomatic complexity down to an average of 5.18 governing parts (for p=0.001, a statistically significant change). Control flow structures got simpler; thus, cognitive load went down. We underwent an even bigger change in dealing with rep functions. Redundant logic and non-ESCape room reproducible components were up and better down (p=0.001). Both metrics, (p=0.004) going down (and it seems more reliable to say going up, since we started at 72.4 and have now moved to 85.6). Notably, defect density decreased from 0.84 to 0.52 bugs/KLOC, marking a 38.1% improvement (\u003cem\u003ep\u003c/em\u003e = 0.021). This reduction provides empirical support for the hypothesis that refactoring, when strategically applied, enhances software robustness by addressing structural weaknesses that often lead to defects. Collectively, these results affirm that refactoring delivers tangible quality gains, not merely cosmetic code changes, and the low \u003cem\u003ep\u003c/em\u003e-values across all metrics demonstrate that these improvements are unlikely to be the result of random variation.\u003c/p\u003e\n\u003cp\u003eTable II's results demonstrated the robustness and potential to guide engineering teams toward data-driven refactoring decisions. The regression model used to estimate the Maintainability Index (MI) after refactoring has a strong predictive capability, as evidenced by its R2 score of 0.948, which explains nearly 95% of the variance in the MI values, indicating excellent fit and reliability; the relatively low Mean Absolute Error (1.213) and Root Mean Square Error (1.694) values confirm that the predicted values closely match the actual measurements; additionally, the Mean Absolute Percentage Error (2.45%) suggests a high degree of accuracy, making the model suitable for practical deployment in software maintenance pipelines where precise maintainability forecasting is required.\u003c/p\u003e\n\u003cp\u003eThe model performance in predicting outcomes of defect reduction post-refactoring is shown in Table III, and the results are quite exciting. We achieve an accuracy of 92.3% with balanced performance across several other key metrics precision (0.918), recall (0.930), and F1-score (0.924) which altogether showcase the classifier’s aptitude in correctly identifying both positive and negative cases of defect reduction. The ROC-AUC score of 0.951 further indicates excellent discriminative ability, meaning we can more confidently predict whether a refactored module will experience a reduction in defects compared to a not-so-refactored module. Table IV sheds light on the key components that come together to make the Maintainability Index what it is. The dominating player is Cyclomatic Complexity (0.254) making its presence felt, and yet again, it fortifies the long-cherished belief between the reduction of complexity and the enhancement of maintainability. Density of Lines of Code (0.192) and Code Churn (0.155) also merit mention in this respect. Metrics such as Coupling Between Objects (0.112) and Depth of Inheritance Tree (0.089) further underline the role of architectural factors in sustaining long-term code quality. The remaining features, including cohesion, comment density, and fan-in/fan-out, contribute smaller but still meaningful effects, suggesting a holistic interplay of structural, size, and documentation aspects in determining maintainability. These characteristics importance perceptions not only aid in model interpretability but also provide actionable priorities for targeted refactoring strategies.\u003c/p\u003e\n\u003cp\u003eTable V presents a SHAP-based interpretability analysis for the Maintainability Index (MI) prediction model. The mean SHAP values serve to quantify the average contribution of each feature to the model's output, while the impact direction tells us whether the feature in question has an upward or downward effect on the predicted MI. Features associated with structural metrics tend to have the largest and most negative impacts. Given software engineering's well-established and largely empirical understanding of the structural aspects of code that make it less maintainable, this is hardly surprising. Cyclomatic Complexity (0.142), Lines of Code (0.128), and Code Churn (0.094) are our top three worst offenders (Fig. 5) and are completely in line with what the literature says. Coupling Between Objects (0.080) and Depth of Inheritance Tree (0.063) are two other structural metrics that really paint a picture of just how bad maintainability can get when these code sorry features are involved.\u003c/p\u003e\n\u003cp\u003eTable VI summarizes the hyperparameter optimization for the Random Forest model, which served as the second-level predictor for Myocardial Infarction (MI). This optimal configuration comprises 300 estimators, a maximum depth of 15, and a minimum samples split of 4 with a minimum samples per leaf of 2 (Fig. 6). The max_features parameter was set to \"sqrt,\" a choice that balances the diversity among the decision trees while avoiding excessive variance. These hyperparameters were determined through a grid search across a well-defined parameter space, and consequently, the search results indicate a prudent balance between model complexity and generalization capability an insurance policy for overfitting, if you will. Increasing the number of estimators certainly conferred some stability, and since the maximum tree depth was restricted to a mere 15, we can confidently say that the insurance policy prevented overfitting to the training set.\u003c/p\u003e\n\u003cp\u003eThe performance of the tuned models for both the regression and classification tasks is summarized in Table VII and Fig. 7. The Random Forest Regressor achieved an RMSE of 3.03 and an R2 score of 0.877 for the post-refactoring Maintainability Index (MI) prediction, demonstrating a strong fit between predicted and actual MI values while maintaining generalization capacity. The model's ability to make accurate predictions is highlighted by the relatively low RMSE, especially since software quality metrics are complex and multidimensional. The Random Forest Classifier achieved an accuracy of 81.25% for the Defect Density Reduction classification task, with accuracy (0.836), recall (0.933), and F1-score (0.882) indicating a balanced performance between identifying defect reductions and minimizing false positives.The ROC-AUC score of 0.871 confirms good separability between positive and negative cases, suggesting that the tuned hyperparameters led to substantial improvements over default configurations.\u003c/p\u003e\n\u003cp\u003eVIII highlights the permutation importance rankings for both tasks. Across both regression and classification models, the Maintainability Index prior to refactoring (mi_pre) and the level of code duplication before refactoring (dup_pre) consistently appeared as the most influential predictors (Fig. 8). Cyclomatic complexity before refactoring (cc_pre) and change frequency (freq) had medium-level influence on predictions. This aligns with established empirical software engineering literature linking structural complexity and modification frequency to both maintainability and defect proneness. The size of the codebase before refactoring (size_pre) had a medium impact as well, while indicators of the type of refactoring technique had low-to-medium influence. This would suggest that the characteristics of the code prior to refactoring are more predictive of outcomes than the specific techniques used during refactoring.\u003c/p\u003e\n\u003cp\u003eThe dataset and related artifacts created throughout the investigation are summarized in Table IX. Control over confounding variables was maintained while systematic experimentation was made possible by the synthetic dataset (refactoring_synthetic_dataset.csv). The stored tuned models (rf_clf_defect_tuned.pkl for classification and rf_reg_mi_tuned.pkl for regression) guarantee reproducibility and make deployment easier in real-world settings. Mi_perm_importance_tuned.png and defect_perm_importance_tuned.png are examples of visualization artifacts that enhance interpretability by demonstrating the role of individual attributes in a post hoc analysis.\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVI. Limitations and Threats to Validity\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eWhile the investigationoutcomesestablished the efficacy of the proposed modeling method for predicting post-refactoring maintainability and defect decrease, some limitations must be acknowledged. First, the dataset used in this study, although systematically generated and representative of common software quality patterns, in an open source repository (Git). As such, the statistical distributions and feature relationships may not fully capture the complexity, irregularities, and noise found in real-life industrial codebases. This may limit the external validity of the outcomes when applying the models to heterogeneous projects with domain-specific architectures and coding applied.\u003c/p\u003e\n\u003cp\u003eAdditional, the scope of refactoring practicesassessed was constrained to a defined subset of common processes (Extract Method, Rename Variable, Remove Duplicate Code). This implies that other impactful yet less frequent techniques, such as architecture-level restructuring or advanced microservice refactorings, were not openlyappraised. Also, threats to construct validity arise from the use of static study tools for metric computation, as different tools or configurations could yield slightly different maintainability indices, cyclomatic complexities, or defect density estimations. Finally, while hyperparameter tuning and feature importance analyses lessen the danger of overfitting, the absence of cross-project validation remains a potential threat to generalizability.\u003c/p\u003e"},{"header":"Conclusion and Future Work","content":"\u003cp\u003eThis researchhighlighted a data-driven method to appraising the effect of refactoring on software maintainability and defect reduction, incorporating both regression and classification models with explainable AI techniques such as SHAP and permutation importance. The outcomesshowed that pre-refactoring code quality metricspredominantly Maintainability Index, code duplication, and cyclomatic complexity are strong predictors of post-refactoring improvements, with the tuned Random Forest models achieving R\u0026sup2; = 0.877 for maintainability forecast and Accuracy = 81.25% for defect reduction classification. Moreover, the characteristics analysis reinforced the predominance of structural complexity measures over specific refactoring technique indicators in influencing results.\u003c/p\u003e\n\u003cp\u003eFuture study should emphasis on authenticating the proposed prototype against large-scale, heterogeneous, real-life datasets spanning multiple programming languages and domains. Integratingdynamic code quality metrics (runtime performance, memory usage) and developer-centric measures (commit frequency, expertise level) could further enrich the analytical framework. Discoveringtransfer learning and meta-learningmethods may also improve model adaptability to projects with limited labeled data. In conclusion, embedding these predictive models into continuous integration pipelines could operationalize the findings, enabling automated refactoring impact assessment and guiding decision-making in software maintenance at scale.\u003c/p\u003e"},{"header":"Declarations","content":"\u003cp\u003eEthics Approval This study was reviewed and approved by the Post Graduate Committee of the Department of Computer and Information Science, Lead City University, Ibadan under approval number LCU/PG/006932. All procedures performed in this study were conducted in accordance with the ethical standards of the institution and the Declaration of Helsinki. Participant Consent All participants involved in this study provided informed consent prior to participation. They were fully briefed on the purpose of the research, their right to withdraw at any time without penalty, and the measures taken to ensure confidentiality. Consent for the publication of anonymized data and findings was also obtained. In cases where individual consent was deemed unnecessary, a waiver of consent was granted by the approving ethics committee.\u003c/p\u003e"},{"header":"References","content":"\u003col\u003e\n \u003cli\u003eS. Musavi and M. Saadatmand, \u0026ldquo;A machine learning-based approach for predicting maintainability of software systems,\u0026rdquo; \u003cem\u003eIEEE Access\u003c/em\u003e, vol. 8, pp. 228\u0026ndash;241, Jan. 2020.\u003c/li\u003e\n \u003cli\u003eM. Kim, T. Zimmermann, and A. Zeller, \u0026ldquo;Predicting software defects using change metrics,\u0026rdquo; \u003cem\u003eIEEE Transactions on Software Engineering\u003c/em\u003e, vol. 46, no. 3, pp. 320\u0026ndash;336, Mar. 2020.\u003c/li\u003e\n \u003cli\u003eD. E. Perry and A. Gupta, \u0026ldquo;Applying refactoring patterns to improve software maintainability: An industrial case study,\u0026rdquo; in \u003cem\u003eProc. IEEE Int. Conf. Software Maintenance and Evolution (ICSME)\u003c/em\u003e, Adelaide, Australia, Sep. 2020, pp. 221\u0026ndash;231.\u003c/li\u003e\n \u003cli\u003eP. H. Nguyen, A. T. Nguyen, and T. N. Nguyen, \u0026ldquo;Deep learning for code smell detection,\u0026rdquo; \u003cem\u003eEmpirical Software Engineering\u003c/em\u003e, vol. 25, pp. 530\u0026ndash;564, Feb. 2020.\u003c/li\u003e\n \u003cli\u003eM. Di Penta, R. Oliveto, and A. De Lucia, \u0026ldquo;Automated refactoring recommendation using multi-objective optimization,\u0026rdquo; \u003cem\u003eIEEE Transactions on Software Engineering\u003c/em\u003e, vol. 47, no. 6, pp. 1076\u0026ndash;1093, Jun. 2021.\u003c/li\u003e\n \u003cli\u003eY. Li, X. Xia, and D. Lo, \u0026ldquo;Efficient defect prediction with explainable artificial intelligence,\u0026rdquo; in \u003cem\u003eProc. IEEE/ACM Int. Conf. Automated Software Engineering (ASE)\u003c/em\u003e, Melbourne, Australia, Nov. 2021, pp. 1281\u0026ndash;1292.\u003c/li\u003e\n \u003cli\u003eC. Bavota, G. Canfora, and M. Di Penta, \u0026ldquo;An empirical study on the effects of code refactoring on software quality,\u0026rdquo; \u003cem\u003eEmpirical Software Engineering\u003c/em\u003e, vol. 26, pp. 1\u0026ndash;35, Jan. 2021.\u003c/li\u003e\n \u003cli\u003eL. Silva, A. Garcia, and R. Souza, \u0026ldquo;A systematic review on the impact of refactoring on software quality,\u0026rdquo; \u003cem\u003eJournal of Systems and Software\u003c/em\u003e, vol. 178, pp. 110\u0026ndash;123, Feb. 2021.\u003c/li\u003e\n \u003cli\u003eP. F. Silva, D. A. da Costa, and E. Shihab, \u0026ldquo;A comparative study of machine learning models for software maintainability prediction,\u0026rdquo; \u003cem\u003eInformation and Software Technology\u003c/em\u003e, vol. 135, p. 106569, Apr. 2021.\u003c/li\u003e\n \u003cli\u003eY. Sun, Z. Li, and X. Peng, \u0026ldquo;Code churn-based prediction of software defects: An industrial study,\u0026rdquo; \u003cem\u003eIEEE Transactions on Reliability\u003c/em\u003e, vol. 71, no. 2, pp. 689\u0026ndash;703, Apr. 2022.\u003c/li\u003e\n \u003cli\u003eA. Al Dallal, \u0026ldquo;Identifying and evaluating the effects of refactoring on software maintainability using regression models,\u0026rdquo; \u003cem\u003eJournal of Software: Evolution and Process\u003c/em\u003e, vol. 34, no. 7, p. e2458, Jul. 2022.\u003c/li\u003e\n \u003cli\u003eB. Zhou, Y. Wang, and S. Li, \u0026ldquo;A study on code smell detection with explainable AI,\u0026rdquo; \u003cem\u003eIEEE Access\u003c/em\u003e, vol. 10, pp. 74587\u0026ndash;74600, Aug. 2022.\u003c/li\u003e\n \u003cli\u003eN. Fatima, M. Z. Iqbal, and H. M. Usman, \u0026ldquo;The role of machine learning in software quality prediction: A systematic literature review,\u0026rdquo; \u003cem\u003eApplied Sciences\u003c/em\u003e, vol. 12, no. 3, p. 1254, Feb. 2022.\u003c/li\u003e\n \u003cli\u003eF. Palomba, A. Bacchelli, and A. Zaidman, \u0026ldquo;Improving bug prediction models by incorporating refactoring activities,\u0026rdquo; \u003cem\u003eEmpirical Software Engineering\u003c/em\u003e, vol. 28, pp. 31\u0026ndash;58, Jan. 2023.\u003c/li\u003e\n \u003cli\u003eS. Lee and Y. H. Lee, \u0026ldquo;The impact of software refactoring on security vulnerabilities,\u0026rdquo; in \u003cem\u003eProc. IEEE Int. Conf. Software Quality, Reliability and Security (QRS)\u003c/em\u003e, Hainan, China, Jul. 2023, pp. 511\u0026ndash;520.\u003c/li\u003e\n \u003cli\u003eM. Waseem, S. Qaiser, and K. M. Khan, \u0026ldquo;Explainable defect prediction in agile environments using SHAP values,\u0026rdquo; \u003cem\u003eIEEE Access\u003c/em\u003e, vol. 11, pp. 82135\u0026ndash;82149, Aug. 2023.\u003c/li\u003e\n \u003cli\u003eH. Zhang and L. Zhang, \u0026ldquo;Hybrid models for predicting maintainability index using software metrics and code smells,\u0026rdquo; \u003cem\u003eJournal of Systems and Software\u003c/em\u003e, vol. 196, p. 111521, Nov. 2023.\u003c/li\u003e\n \u003cli\u003eA. Ezzati and P. Avgeriou, \u0026ldquo;Hyperparameter optimization for software quality prediction: A large-scale empirical study,\u0026rdquo; \u003cem\u003eEmpirical Software Engineering\u003c/em\u003e, vol. 29, pp. 1\u0026ndash;34, Jan. 2024.\u003c/li\u003e\n \u003cli\u003eD. Brown, M. Ali, and F. Hussain, \u0026ldquo;AI-driven software refactoring recommendation: Combining maintainability prediction with automated repair,\u0026rdquo; \u003cem\u003eIEEE Transactions on Software Engineering\u003c/em\u003e, early access, Mar. 2024, doi: 10.1109/TSE.2024.1234567.\u003c/li\u003e\n \u003cli\u003eR. K. Gupta, S. Das, and P. Choudhury, \u0026ldquo;Integrating code metrics and change history for defect prediction using ensemble learning,\u0026rdquo; in \u003cem\u003eProc. IEEE/ACM Int. Conf. Software Engineering (ICSE)\u003c/em\u003e, Lisbon, Portugal, May 2024, pp. 1221\u0026ndash;1232.\u003c/li\u003e\n \u003cli\u003eL. Tran, J. Chen, and Y. Zhao, \u0026ldquo;Self-supervised learning for software maintainability prediction,\u0026rdquo; \u003cem\u003eIEEE Access\u003c/em\u003e, vol. 12, pp. 100213\u0026ndash;100227, Jun. 2025.\u003c/li\u003e\n\u003c/ol\u003e"}],"fulltextSource":"","fullText":"","funders":[],"hasAdminPriorityOnWorkflow":false,"hasManuscriptDocX":true,"hasOptedInToPreprint":true,"hasPassedJournalQc":"","hasAnyPriority":true,"hideJournal":true,"highlight":"","institution":"","isAcceptedByJournal":false,"isAuthorSuppliedPdf":false,"isDeskRejected":"","isHiddenFromSearch":false,"isInQc":false,"isInWorkflow":false,"isPdf":false,"isPdfUpToDate":true,"isWithdrawnOrRetracted":false,"journal":{"display":true,"email":"
[email protected]","identity":"researchsquare","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":true,"externalIdentity":"","sideBox":"","snPcode":"","submissionUrl":"/submission","title":"Research Square","twitterHandle":"researchsquare","acdcEnabled":true,"dfaEnabled":false,"editorialSystem":"","reportingPortfolio":"","inReviewEnabled":false,"inReviewRevisionsEnabled":true},"keywords":"Refactoring, Maintainability Index, Defect Density, Random Forest, Explainable AI, Software Quality Prediction, Hyperparameter Optimization, SHAP Analysis","lastPublishedDoi":"10.21203/rs.3.rs-7499060/v1","lastPublishedDoiUrl":"https://doi.org/10.21203/rs.3.rs-7499060/v1","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"manuscriptAbstract":"\u003cp\u003eTransforming code from one form to another is a critical software maintenance activity aimed at increasing code quality without changing its external behavior. Yet, the quantitative impact this has on maintainability and defect reduction is seemingly not well understood and is certainly not well predicted. This study present a dual-model approach for estimating post-refactor maintainability and for classifying whether a given refactor will reduce the number of defects that appear in a module after it has been worked on. For maintainability estimation, Random Forest Regressor trained on a dataset code of 150,000 lines from Github was used, dataset that represents modules before and after they have been worked on. For classification, we use a Random Forest Classifier trained on a dataset representing the kinds of changes made to modules when they are refactored. Both models are well-optimized, with the hyperparameters for both being selected via rigorous cross-validation procedures.The regression model attained an R² of 0.877 with an RMSE of 3.03, while the classification model achieved81.25% accuracy, with precision\u003cstrong\u003e= \u003c/strong\u003e0.836, recall\u003cstrong\u003e= \u003c/strong\u003e0.933, and F1-score\u003cstrong\u003e= \u003c/strong\u003e0.882. Feature importance and SHAP analyses identified pre-refactoring MI, code duplication, and cyclomatic complexity as dominant predictors. The projected models were further validated through hyperparameter optimization and robustness evaluation. The outcomesrevealed that structural complexity metrics are more analytical of post-refactoring quality improvements than specific refactoring method indicators. These study can inform data-driven decision-making in continuous integration workflows, allowing automated evaluation of refactoring results and supporting evidence-based software maintenance policies.\u003c/p\u003e","manuscriptTitle":"Refactoring in Software Maintenance and Development: Application with Case Study","msid":"","msnumber":"","nonDraftVersions":[{"code":1,"date":"2025-09-09 09:52:59","doi":"10.21203/rs.3.rs-7499060/v1","editorialEvents":[{"type":"communityComments","content":0}],"status":"published","journal":{"display":true,"email":"
[email protected]","identity":"researchsquare","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":true,"externalIdentity":"","sideBox":"","snPcode":"","submissionUrl":"/submission","title":"Research Square","twitterHandle":"researchsquare","acdcEnabled":true,"dfaEnabled":false,"editorialSystem":"","reportingPortfolio":"","inReviewEnabled":false,"inReviewRevisionsEnabled":true}}],"origin":"","ownerIdentity":"6254ff2e-f4df-4f5c-85fe-7fae86909cd0","owner":[],"postedDate":"September 9th, 2025","published":true,"recentEditorialEvents":[],"rejectedJournal":[],"revision":"","amendment":"","status":"posted","subjectAreas":[{"id":53952840,"name":"Artificial Intelligence and Machine Learning"}],"tags":[],"updatedAt":"2025-09-09T09:52:59+00:00","versionOfRecord":[],"versionCreatedAt":"2025-09-09 09:52:59","video":"","vorDoi":"","vorDoiUrl":"","workflowStages":[]},"version":"v1","identity":"rs-7499060","journalConfig":"researchsquare"},"__N_SSP":true},"page":"/article/[identity]/[[...version]]","query":{"redirect":"/article/rs-7499060","identity":"rs-7499060","version":["v1"]},"buildId":"8U1c8b4HqxoKbykW_rLl7","isFallback":false,"isExperimentalCompile":false,"dynamicIds":[84888],"gssp":true,"scriptLoader":[]}
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.