Software Reusability Estimation based on Dynamic Metrics using Soft Computing Techniques
Keywords:Neuro-Fuzzy system, Fuzzy system, Software Reusability, Neural Network Model, Dynamic metrics, Dynamic Polymorphism
Dynamic metrics capture the run time features of object-oriented languages, i.e., runtime polymorphism, dynamic binding, etc., that are not covered by static metrics. Therefore, in this paper, we derived a new approach to measuring the software reusability of a design pattern based on dynamic metrics. To achieve this, the authors proposed a model based on five parameters, i.e., polymorphism, inheritance, number of children, coupling, and complexity, to measure the reusability factor by using various soft computing techniques, i.e., Fuzzy, Neural Network, and Neuro-Fuzzy. Further, we also compared the proposed model with four existing machine learning algorithms. Lastly, we found that the proposed model using the neuro-fuzzy technique is trained well and predicts well with MAE (Mean absolute error) 0.003 and RMSE (Root mean square error) 0.009 based on dynamic metrics. Hence, it is concluded that dynamic metrics are a better predictor of the reusability factor than static metrics.
R. S. Pressman, Software Engineering – A Practitioner’s Approach, 7th ed., McGraw Hill, 2005.
S. Benlarbi, W. L. Melo, “Polymorphism measures for early risk prediction,” Proceedings of the International Conference on Software Engineering, 1999, pp. 334-344. https://doi.org/10.1145/302405.302652.
K. H. T. Choi, E. Tempero, “Dynamic measurement of polymorphism,” Proceedings of the Thirtieth Australasian Computer Science Conference, Victoria, Australia, 2007, vol. 62, pp. 211-220.
Manju, P. K. Bhatia, “Empirical validation of dynamic metrics using knowledge based approach,” International Journal of Advanced Research in Engineering and Technology, vol. 11, issue 12, pp. 3219-3230, 2020.
S. R. Chidamber, C. F. Kemerer, “A metrics suite for object oriented design,” IEEE Transactions on Software Engineering, vol. 20, issue 6, pp. 476-493, 1994. https://doi.org/10.1109/32.295895.
A. Mitchell, J. F. Power, “A study of the influence of coverage on the relationship between static and dynamic coupling metrics,” Science of Computer Programming, vol. 59, issue (1/2), pp. 4-25, 2006. https://doi.org/10.1016/j.scico.2005.07.002.
H. Lounis, T. Gayed, M. Boukadoum, “Using efficient machine-learning models to assess two important quality factors: Maintainability and reusability,” Proceedings of the 2011 Joint Conference of the 21st International Workshop on Software Measurement and the 6th International Conference on Software Process and Product Measurement, pp. 170-177, 2011, https://doi.org/10.1109/IWSM-MENSURA.2011.44.
M. Papamichail, T. Diamantopoulos, I. Chrysovergis, P. Samlidis, A. Symeonidis, “User perceived reusability estimation based on analysis of software repositories,” Proceedings of the IEEE Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE), 2018, pp. 49–54. https://doi.org/10.1109/MALTESQUE.2018.8368459.
R. Feldt, F. G. Neto, R. Torkar, “Ways of applying artificial intelligence in software engineering,” Proceedings of the 6th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering, 2018, pp. 35–41.
D. Stefano, T. Menzies, “Machine learning for software engineering: case studies in software reuse,” Proceedings of 14th IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2002), pp. 246–251, 2002.
S. I. Zahara, M. Ilyas, T. Zia, “A study of comparative analysis of regression algorithms for reusability evaluation of object-oriented based software components,” Proceedings of 2013 International Conference on Open-Source Systems and Technologies, 2013, pp. 75–80. https://doi.org/10.1109/ICOSST.2013.6720609.
S. S. Aksenova, Machine Learning with WEKA, WEKA Explorer Tutorial, 2004.
N. Padhy, R. Panigrahi, S. Baboo, “A systematic literature review of an object oriented metric: reusability,” Proceedings of the International Conference on Computational Intelligence and Networks, Bhubaneswar, 2015, pp. 190–191. https://doi.org/10.1109/CINE.2015.44.
D. Godara, O. P. Sangwan, “Neuro-fuzzy based approach to software reusability estimation,” Proceedings of the International Conference on Sustainable Computing Techniques in Engineering Science and Management (IJCTA), pp. 3811-3891, 2016.
O. D. Adekola, S. A. Idowu, S. O. Okolie, J. V. Joshua, A. O Akinsanya, M. O. Eze, E. Seun, “Software maintainability and reusability using cohesion metrics,” international journal of computer trends and technology (ijctt), vol. 54, pp. 63–73, 2017. https://doi.org/10.14445/22312803/IJCTT-V54P111.
M. Papamichail, T. Diamantopoulos, A. Symeonidis, “Software reusability dataset based on static analysis metrics and reuse rate information,” Journal of System and Software, vol. 27, 104687, 2019, https://doi.org/10.1016/j.dib.2019.104687.
P. Mangayarkarasi, R. Selvarani, “Dynamic reusability prediction model for SMEs based on realtime constraints,” International Journal of Engineering Trends and Technology – Special Issues, pp. 63-75, 2020.
D. Godara, O. P. Sangwan, “Software reusability estimation using machine learning techniques – A systematic literature review,” Proceedings of the Evolving Technologies for Computing, Communication and Smart World, Lecture Notes in Electrical Engineering, Springer, Singapore, vol. 694, pp. 53-68, 2021. https://doi.org/10.1007/978-981-15-7804-5_5.
J. Sanz-Rodriguez, J. M. Dodero, S. Sanchez-Alonso, “Metrics-based evaluation of learning object reusability,” Software Qual Journal, vol. 19, issue 1, pp. 121-140, 2011. https://doi.org/10.1007/s11219-010-9108-5.
A. K. M. Fazal-e Amin, A. Oxley, “Reusability assessment of open source components for software product lines,” International Journal on New Computer Architectures and Their Applications (IJNCAA), vol. 1, issue 3, pp. 519–533, 2011.
M. Mijač, Z. Stapic, “Reusability metrics of software components: Survey,” Proceedings of the Central European Conference on Information and Intelligent Systems, pp. 221-231, 2015. DOI: 10.13140/RG.2.1.3611.4642.
A. L. Imoize, D. Idowu, T. Bolaji, “A brief overview of software reuse and metrics in software engineering,” World Science News, vol. 122, pp. 56–70, 2019.
T. L. Saaty, “How to make a decision: The analytic hierarchy process,” European Journal of Operational Research, vol. 48, issue 1, pp. 9-26, 1990. https://doi.org/10.1016/0377-2217(90)90057-I.
F. Taibi, “Empirical analysis of the reusability of object-oriented program code in open-source software,” International Journal of Computer, Information, System and Control Engineering, vol. 8, issue 1, pp. 114–120, 2014.
V. Dimaridou, A. C. Kyprianidis, M. Papamichail, T. Diamantopoulos, A. Symeonidis, “Assessing the user-perceived quality of source code components using static analysis metrics,” Communications in Computer and Information Science (CCIS), vol. 868, pp. 3–27, 2018. https://doi.org/10.1007/978-3-319-93641-3_1.
How to Cite
LicenseInternational Journal of Computing is an open access journal. Authors who publish with this journal agree to the following terms:
• Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
• Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
• Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work.