Predicting Successful Software Reuse Using Machine Learning Algorithms
Linked Agent
Hammad, Mustafa, Thesis advisor
Date Issued
2021
Language
English
Extent
[3], xi, 92, [1] Pages
Place of institution
Sakhir, Bahrain
Thesis Type
Thesis (Master)
Institution
University of Bahrain , College of Information Technology, Department of Computer Science
English Abstract
Abstract :
Software engineering is witnessing a market struggle in delivering functional products due to time constraints. Nowadays, software developers are reusing already existing software components instead of developing the whole software from scratch. Therefore, software reuse is considered a state of practice in the software development industry. The primary goal of software reuse is to reduce the development effort and project budget and increase produc- tivity. Howsoever, some factors may lead to a software reuse failure. Wherefore, software development companies have to consider these factors to prevent project failure due to soft- ware reuse. Also, it has been seen clearly in the past the disastrous consequences of wrong software reuse. Thus, predicting a successful software reuse experience can help prior any software reuse attempt to avoid any loss caused by a wrong software reuse decision. However, until this day, there is no silver bullet solution that could predict software reuse experience nor estimate software components' reusability.
This thesis tackles two scenarios that help during software reuse decision-making. These scenarios do not focus on factors related to the technical aspects of the project, but they also cover the companies' managerial decisions. The first scenario is predicting the success of soft- ware reuse experience in a project using machine learning. In this thesis, the potential of six machine learning algorithms to predict successful software reuse experiences were evaluated. Naive Bayes, Artificial Neural Network, K-Star, Hoeffding Tree, Support Vector Sachine, and K-Nearest Neighbor were used to evaluate the prediction on a public dataset. Results showed that machine learning performed very well in predicting software reuse, with accuracy reach- ing 100%. Also, feature selection techniques were introduced to extract the most relevant attributes from the dataset. The empirical results showed that feature selection improved software reuse experience prediction. Finally, we tried to handle the dataset's weakness by incorporating ensemble machine learning. To the best of our knowledge, this is the first attempt at using ensemble learning in predicting successful software reuse experiences. The empirical study showed remarkable results that scored an accuracy of 100%.
The second scenario proposes a software reusability estimation model. The model analyzes the static metric of java classes using data clustering and regression to estimate its reusability. The model was built based on a public dataset that used import line code as a reuse rate. Also, the goal, question, metric paradigm was used as a feature selection technique to extract the most relevant metrics in the used dataset. The evaluation results of the proposed model
have successfully evaluated java classes reusability with very minimal error rates.
Note
Title on cover:
توقع إعادة الاستخدام الناجح للبرامج بإستخدام خوارزميات التعلم الآلي
توقع إعادة الاستخدام الناجح للبرامج بإستخدام خوارزميات التعلم الآلي
Member of
Identifier
https://digitalrepository.uob.edu.bh/id/8c75a161-1af5-4970-ae0c-035c75949828