CN  Vol.8 No.3 , August 2016
Software Reusability Classification and Predication Using Self-Organizing Map (SOM)
Abstract: Due to rapid development in software industry, it was necessary to reduce time and efforts in the software development process. Software Reusability is an important measure that can be applied to improve software development and software quality. Reusability reduces time, effort, errors, and hence the overall cost of the development process. Reusability prediction models are established in the early stage of the system development cycle to support an early reusability assessment. In Object-Oriented systems, Reusability of software components (classes) can be obtained by investigating its metrics values. Analyzing software metric values can help to avoid developing components from scratch. In this paper, we use Chidamber and Kemerer (CK) metrics suite in order to identify the reuse level of object-oriented classes. Self-Organizing Map (SOM) was used to cluster datasets of CK metrics values that were extracted from three different java-based systems. The goal was to find the relationship between CK metrics values and the reusability level of the class. The reusability level of the class was classified into three main categorizes (High Reusable, Medium Reusable and Low Reusable). The clustering was based on metrics threshold values that were used to achieve the experiments. The proposed methodology succeeds in classifying classes to their reusability level (High Reusable, Medium Reusable and Low Reusable). The experiments show how SOM can be applied on software CK metrics with different sizes of SOM grids to provide different levels of metrics details. The results show that Depth of Inheritance Tree (DIT) and Number of Children (NOC) metrics dominated the clustering process, so these two metrics were discarded from the experiments to achieve a successful clustering. The most efficient SOM topology [2 × 2] grid size is used to predict the reusability of classes.
Cite this paper: Hudaib, A. , Huneiti, A. and Othman, I. (2016) Software Reusability Classification and Predication Using Self-Organizing Map (SOM). Communications and Network, 8, 179-192. doi: 10.4236/cn.2016.83018.

[1]   Sommerville, I. (2011) Software Engineering. 9th Edition, Addison-Wesley, New York.

[2]   Goel, B.M. and Bhatia, P.K. (2013) Analysis of Reusability of Object-Oriented Systems Using Object-Oriented Metrics. ACM SIGSOFT Software Engineering Notes, 38, 1-5.

[3]   Maggo, S. and Gupta, C. (2014) A Machine Learning Based Efficient Software Reusability Prediction Model for Java Based Object Oriented Software. International Journal of Information Technology and Computer Science (IJITCS), 6, 1.

[4]   Rotaru, O.P. and Dobre, M. (2005) Reusability Metrics for Software Components. Proceedings of the 3rd ACS/IEEE International Conference on Computer Systems and Applications, Cairo, 2005, 24-29.

[5]   Singh, G. (2013) Metrics for Measuring the Quality of Object-Oriented Software. ACM SIGSOFT Software Engineering Notes, 38, 1-5.

[6]   Chidamber, S.R. and Kemerer, C.F. (1994) A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, 20, 476-493.

[7]   Kumar, V., Kumar, R. and Sharma, A. (2013) Applying Neuro-Fuzzy Approach to Build the Reusability Assessment Framework across Software Component Releases—An Empirical Evaluation. International Journal of Computer Applications, 70, 41-47.

[8]   Caldiera, G. and Basili, V.R. (1991) Identifying and Qualifying Reusable Software Components. IEEE Software, 24, 61-70.

[9]   Sametinger, J. (1997) Software Engineering with Reusable Components. Springer Verlag, New York.

[10]   Weinreich, R. and Sametinger, J. (2001) Component Models and Component Services: Concepts and Principles, Component-Based Software Engineering: Putting Pieces Together. In: Heineman, G.T. and Councill, W.T., Eds., Component-Based Software Engineering: Putting Pieces Together, Addison-Wesley, New York, 33-48.

[11]   He, J., Chen, R. and Gu, W. (2009) A New Method for Component Reuse. The 2nd IEEE International Conference on Computer Science and Information Technology (ICCSIT), Beijing, August 2009, 304-307.

[12]   Smaragdakis, Y. and Batory, D. (1998) Implementing Reusable Object-Oriented Components. Proceedings of the 5th International Conference on Software Reuse, Victoria, 2-5 June 1998, 36-45.

[13]   Rosenberg, L.H. and Hyatt, L.E. (1997) Software Quality Metrics for Object-Oriented Environments. Crosstalk Journal, 10, 1-16.

[14]   Antony, P.J. (2013) Predicting Reliability of Software Using Thresholds of CK Metrics. International Journal of Advanced Networking & Applications, 4, 6.

[15]   Basili, V.R., Briand, L.C. and Melo, W.L. (1996) A Validation of Object-Oriented Design Metrics as Quality Indicators. IEEE Transactions on Software Engineering, 22, 751-761.

[16]   Succi, G., Pedrycz, W., Stefanovic, M. and Miller, J. (2003) Practical Assessment of the Models for Identification of Defect-Prone Classes in Object-Oriented Commercial Systems Using Design Metrics. Journal of Systems and Software, 65, 1-12.

[17]   Hudiab, A., Al-Zaghoul, F., Saadeh, M. and Saadeh, H. (2015) ADTEM—Architecture Design Testability Evaluation Model to Assess Software Architecture Based on Testability Metrics. Journal of Software Engineering and Applications, 8, 201-210.

[18]   Gill, N.S. and Sikka, S. (2011) Inheritance Hierarchy Based Reuse & Reusability Metrics in OOSD. International Journal on Computer Science and Engineering, 3, 2300-2309.

[19]   Shatnawi, R. (2010) A Quantitative Investigation of the Acceptable Risk Levels of Object-Oriented Metrics in Open-Source Systems. IEEE Transactions on Software Engineering, 36, 216-225.

[20]   Shatnawi, R., Li, W., Swain, J. and Newman, T. (2010) Finding Software Metrics Threshold Values Using ROC Curves. Journal of Software Maintenance and Evolution: Research and Practice, 22, 1-16.

[21]   Guo, X.L., Wang, H.Y. and Glass, D.H. (2012) A Growing Bayesian Self-Organizing Map for Data Clustering. Proceedings of the International Conference on Machine Learning and Cybernetics (ICMLC), 2, 708-713.

[22]   Cho, E.S., Kim, M.S. and Kim, S.D. (2001) Component Metrics to Measure Component Quality. Proceedings of the 8th Asia Pacific Software Engineering Conference (APSEC), Macau, 4-7 December 2001, 419-426.

[23]   Washizaki, H., Yamamoto, H. and Fukazawa, Y. (2003) A Metrics Suite for Measuring Reusability of Software Components. Proceedings of 9th International Symposium on Software Metrics, Sydney, 3-5 September 2003, 211-223.

[24]   Sindre, G., Conradi, R. and Karlsson, E.A. (1995) The REBOOT Approach to Software Reuse. Journal of Systems and Software, 30, 201-212.

[25]   Sharma, A., Grover, P.S. and Kumar, R. (2009) Reusability Assessment for Software Components. ACM SIGSOFT Software Engineering Notes, 34, 1-6.

[26]   Gandhi, P. and Bhatia, P.K. (2011) Estimation of Generic Reusability for Object-Oriented Software an Empirical Approach. ACM SIGSOFT Software Engineering Notes, 36, 1-4.

[27]   Kulkarni, U.L., Kalshetty, Y.R. and Arde, V.G. (2010) Validation of Ck Metrics for Object Oriented Design Measurement. Proceedings of the 3rd International Conference on Emerging Trends in Engineering and Technology (ICETET), Goa, 19-21 November 2010, 646-651.

[28]   Tang, M.H., Kao, M.H. and Chen, M.H. (1999) An Empirical Study on Object Oriented Metrics. Proceedings of the 6th International Software Metrics Symposium, Boca Raton, 4-6 November 1999, 242-249.

[29]   Hsu, C.C. (2006) Generalizing Self-Organizing Map for Categorical Data. IEEE Transactions on Neural Networks, 17, 294-304.

[30]   Yin, H. (2008) The Self-Organizing Maps: Background, Theories, Extensions and Applications. In: Fulcher, J. and Jain, L.C., Eds., Computational Intelligence: A Compendium, Springer, Berlin, 715-762.

[31]   Van Hulle, M.M. (2012) Self-Organizing Maps. In: Rozenberg, G., Back, T. and Kok, J.N., Eds., Handbook of Natural Computing, Springer, Berlin, 585-622.

[32]   Kruskal, J.B. and Wish, M. (1978) Multidimensional Scaling. Sage University Paper Series on Quantitative Applications in the Social Sciences, No. 07-011, Sage Publications, Newbury Park.

[33]   Cottrell, M., Fort, J.C. and Pagés, G. (1997) Theoretical Aspects of the SOM Algorithm. Proceedings of the Workshop on Self-Organizing Maps (WSOM 97), Helsinki University of Technology, Neural Networks Research Centre, Espoo, 4-6 June 1997, 246-267.

[34]   Maimon, O. and Rokach, L. (2007) Soft Computing for Knowledge Discovery and Data Mining. Springer Science & Business Media, Berlin

[35]   Haykin, S. and Network, N. (2004) Neural Networks: A Comprehensive Foundation. 2nd Edition, Pearson Education, Indian, Bangladesh.

[36]   Pedrycz, W., Succi, G., Musilek, P. and Bai, X. (2001) Using Self-Organizing Maps to Analyze Object-Oriented Software Measures. Journal of Systems and Software, 59, 65-82.

[37]   Chang, C.H., Xu, P., Xiao, R. and Srikanthan, T. (2005) New Adaptive Color Quantization Method Based on Self-Organizing Maps. IEEE Transactions on Neural Networks, 16, 237-249.

[38]   Dreyfus, G. (2005) Neural Networks: Methodology and Applications. Springer, Berlin.

[39]   Mantysalo, J., Torkkola, K. and Kohonen, T. (1994) Mapping Content Dependent Acoustic Information into Context Independent Form by LVQ. Speech Communication, 14, 119-130.

[40]   Lapidot, I., Guterman, H. and Cohen, A. (2002) Unsupervised Speaker Recognition Based on Competition between Self-Organizing Maps. IEEE Transactions on Neural Networks, 13, 877-887.

[41]   Simula, O. and Kangas, J. (1995) Process Monitoring and Visualization Using Self-Organizing Maps. Integrated Computer-Aided Engineering, 6, 3-14.

[42]   Merkl, D. (1993) Structuring Software for Reuse—The Case of Self-Organizing Maps. Proceedings of the International Joint Conference on Neural Networks (IJCNN), 3, 2468-2471.

[43]   Veras, R.C., Meira, S.R., Oliveira, A.L. and Melo, B.J. (2007) Comparative Study of Clustering Techniques for the Organization of Software Repositories. 19th IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2007), 1, 210-214.

[44]   Lin, Y. and Ye, H. (2009) Input Data Representation for Self-Organizing Map in Software Classification. Proceedings of the 2nd International Symposium on Knowledge Acquisition and Modeling (KAM), 2, 350-353.

[45]   Acharya, S. and Sadananda, R. (1997) Promoting Software Reuse Using Self-Organizing Maps. Neural Processing Letters, 5, 219-226.

[46]   Kohonen, T. (1982) Self-Organized Formation of Topologically Correct Feature Maps. Biological Cybernetics, 43, 59-69.

[47]   Kohonen, T. (2013) Essentials of the Self-Organizing Map. Neural Networks, 37, 52-65.

[48]   Applied Software Engineering Research Group (ASERG) (2013)

[49]   Zhou, Y. and Leung, H. (2006) Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults. IEEE Transactions on Software Engineering, 32, 771-789.

[50]   Tan, P.N., Steinbach, M. and Kumar, V. (2006) Introduction to Data Mining. Pearson: Addison Wesley, Boston.

[51]   El Emam, K., Goel, N. and Rai, S. (2000) Thresholds for Object-Oriented Measures. 11th International Symposium on Software Reliability Engineering (ISSRE 2000), San Jose, 8-11 October 2000, 24-38.

[52]   Singh, S. and Kahlon, K.S. (2014) Object Oriented Software Metrics Threshold Values at Quantitative Acceptable Risk Level. CSI Transactions on ICT, 2, 191-205.

[53]   Herbold, S., Grabowski, J. and Waack, S. (2011) Calculation and Optimization of Thresholds for Sets of Software Metrics. Empirical Software Engineering, 16, 812-841.

[54]   Mirkin, B. (2012) Clustering: A Data Recovery Approach. CRC Press, Boca Raton.

[55]   Jiawei, H. and Kamber, M. (2012) Data Mining: Concepts and Techniques. 3th Edition, Elsevier, San Francisco.