Abstract:
Softwarecomponent reusability refers to the development of a new software system
using existing software components with or without anymodification. Reusability has a
vital role and is becoming a critical concept in the software industry. Various researches
have been done on software component reusability estimation.Most studies were
concentrated on the six of CK metrics only. Coupling and size software metrics were
neglected in the previous studies. Thus, in this work, we considered CK, coupling and
size software metrics with effectiveassessment and identification of reusable software
components to estimate the reusability levels of object oriented software
components.The proposed system has preprocessing and classification phases. In data
preprocessing min-max normalization and outlier detection has been done to have the
input data similar dimensionality. The proposed software component reusability
estimation techniques were consideredseventeen object oriented software metrics using
convolutional neural networks. A 3-way softmaxclassifier is used for assigningthe reuse
level of a specific class (high, medium and low) reusable software classes.Key software
characteristics were considered for proper software component reusability estimation
such as coupling, cohesion and complexity metrics. Different performance evaluation
criteria like precision, recall and f1-score are used.Fully connected convolutional neural
networks used for our work for software component reusability estimation due to its
best feature extraction ability and its reduction of network complexity as well as
training parameters. The proposed system is implemented using keras (TensorFlow as a
backend) in python and tested using object oriented software metrics collected from the
comet dataset on the web. We have conducted an experiment on three different java
based systems.The model achieved the training accuracy of 95% and for testing
accuracy of 95.425% for Eclipse JDT, the training accuracy of 94% and for testing
accuracy of 93.803% for Eclipse PDE and the training accuracy of 95% and for testing
accuracy of 94.766% for hibernate systems respectively to train the model.