arrow
Return

Predicting software reuse using machine learning techniques-A case study on open-source Java software systems

delete2025-02-13
delete0
delete
OA
AI
M
Matthew Yit Hang Yeow
C
Chun Yong Chong
M
Mei Kuan Lim
Y
Yuen Yee Yen *
DOI:10.1371/journal.pone.0314512delete
deleteOriginal
deleteShare
deleteSave
Abstract

Abstract

En 中文
Software reuse is an essential practice to increase efficiency and reduce costs in software production. Software reuse practices range from reusing artifacts, libraries, components, packages, and APIs. Identifying suitable software for reuse requires pinpointing potential candidates. However, there are no objective methods in place to measure software reuse. This makes it challenging to identify highly reusable software. Software reuse research mainly addresses two hurdles: 1) identifying reusable candidates effectively and efficiently, and 2) selecting high-quality software components that improve maintainability and extensibility. This paper proposes automating software reuse prediction by leveraging machine learning (ML) algorithms, enabling future research and practitioners to better identify highly reusable software. Our approach uses cross-project code clone detection to establish the ground truth for software reuse, identifying code clones across popular GitHub projects as indicators of potential reuse candidates. Software metrics were extracted from Maven artifacts and used to train classification and regression models to predict and estimate software reuse. The average F1-score of the ML classification models is 77.19%. The best-performing model, Ridge Regression, achieved an F1-score of 79.17%. Additionally, this research aims to assist developers by identifying key metrics that significantly impact software reuse. Our findings suggest that the file-level PUA (Public Undocumented API) metric is the most important factor influencing software reuse. We also present suitable value ranges for the top five important metrics that developers can follow to create highly reusable software. Furthermore, we developed a tool that utilizes the trained models to predict the reuse potential of existing GitHub projects and rank Maven artifacts by their domain.

Journal

PLoS One cover
PLoS One
IF:
2.6
Papers:
2.6W
Citations:
81.6W

Organization

M
monash university malaysia
Scholars:
107
Papers: 86
Citations: 0
Cited Papers

Cited Papers

errShare
errSave
User-perceived reusability estimation based on analysis of software repositories
err2018-03-01
err0
PREAI
errMichail Papamichail; Themistoklis Diamantopoulos; Ilias Chrysovergis; Philippos Samlidis; Andreas Symeonidis
errShare
errSave
Measuring the reusability of software components using static analysis metrics and reuse rate information
err2019-12-01
err22
PREAI
errPapamichail, Michail D.; Diamantopoulos, Themistoklis; Symeonidis, Andreas L.
errShare
errSave
Predictive Data Mining Models for Novel Coronavirus (COVID-19) Infected Patients’ Recovery
err2020-06-21
err0
errOAAI
errL. J. Muhammad; Md. Milon Islam; Sani Sharif Usman; Safial Islam Ayon
errShare
errSave
Comparing machine learning classifiers in potential distribution modelling
err2011-05-01
err137
errOAAI
errLorena, Ana C.; Jacintho, Luis F. O.; Siqueira, Marinez F.; De Giovanni, Renato; Lohmann, Lucia G.; de Carvalho, Andre C. P. L. F.; Yamamoto, Missae
errShare
errSave
errShare
errSave
A metrics suite for object oriented design
err1994-01-01
err0
errOAAI
errShyam R. Chidamber; Chris F. Kemerer
errShare
errSave
researcher View more