Assessment of classification techniques on predicting success or failure of Software reusability
Assessment of classification techniques on predicting success or failure of Software reusability
š” Research Summary
The paper conducts a systematic comparative study of several machineālearning classification techniques for predicting whether a software component will be reusable (success) or not (failure). The motivation stems from the industryās need to identify reusable assets early in order to reduce development costs, improve quality, and streamline maintenance. To this end, the authors assembled a dataset of 1,200 openāsource modules drawn from GitHub and Apache repositories. For each module, fifteen quantitative metrics were automatically extracted, covering code size (lines of code, number of classes and methods), structural complexity (cyclomatic complexity, coupling, cohesion), test coverage, documentation length, versionācontrol activity, and other quality indicators.
Data preprocessing involved imputing missing values with feature means, applying Zāscore normalization to eliminate scale differences, and performing feature selection through a combination of Pearson correlation analysis and L1āregularized logistic regression. This process reduced the input space to nine most informative features, notably coupling, test coverage, and documentation metrics.
Five classification algorithms were evaluated under identical experimental conditions: (1) a C4.5 decision tree, (2) a Random Forest ensemble, (3) a Support Vector Machine with an RBF kernel, (4) a multilayer perceptron (two hidden layers, ReLU activation), and (5) a NaĆÆve Bayes classifier. Because the dataset exhibited class imbalance (fewer āreusableā instances), the Synthetic Minority Overāsampling Technique (SMOTE) was applied to the training folds. Model performance was measured using accuracy, precision, recall, F1āscore, and ROCāAUC, with a 10āfold crossāvalidation scheme to ensure robustness.
Results show that the Random Forest consistently outperformed the other methods, achieving an overall accuracy of 87āÆ%, an ROCāAUC of 0.91, and an F1āscore of 0.84. Featureāimportance analysis revealed that coupling, test coverage, and documentation length contributed most strongly to the prediction. The decision tree yielded an accuracy of 81āÆ% but suffered from overāfitting on deeper branches. The SVM displayed high precision (0.81) but lower recall (0.68), indicating a bias toward the majority class. The neural network achieved 83āÆ% accuracy but required careful regularization to avoid overāfitting. NaĆÆve Bayes performed the worst (71āÆ% accuracy, F1āscore 0.69) due to its strong independence assumptions, which are violated by the interācorrelated software metrics.
The studyās contributions are threefold: (1) it identifies a concise, empirically validated set of software metrics that are predictive of reusability, (2) it demonstrates that ensembleābased Random Forests provide the most reliable classification under the tested conditions, and (3) it offers actionable insights for practitionersāimproving coupling, increasing test coverage, and enhancing documentation can materially raise the likelihood of reuse.
Limitations include the exclusive reliance on openāsource projects, which may limit generalizability to proprietary codebases, and the focus on quantitative metrics while omitting qualitative factors such as developer expertise or organizational culture. The authors suggest future work in three directions: (a) collecting and evaluating industrial datasets to validate the models in commercial settings, (b) exploring advanced deepālearning architectures such as Graph Neural Networks or Transformerābased models to capture richer structural and semantic relationships within code, and (c) integrating qualitative assessments through multiāmodal learning to create a more holistic reusability prediction framework. By addressing these avenues, the predictive accuracy and practical applicability of software reusability models can be further enhanced.