doi: 10.17586/2226-1494-2021-21-5-738-747


Software restructuring models for object oriented programming languages using the fuzzy based clustering algorithm 

S. Bobde, R. Phalnikar


Read the full article  ';
Article in English

For citation:
Bobde S., Phalnikar R. Software restructuring models for object oriented programming languages using the fuzzy based clustering algorithm. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2021, vol. 21, no. 5, pp. 738–747. doi: 10.17586/2226-1494-2021-21-5-738-747


Abstract
 Advances in the domain of software-based technology pave the way for widespread use of object-oriented programs. There is a need to develop a well-established software system that will reduce maintenance costs and enhance the usability of the component. While designing a software system, its internal structure deteriorates due to prolonged or delayed maintenance activities. In such situations, restructuring of the software is a superior approach to improve the structure without changing external behaviour of the system. One approach to carry out restructuring is to use refactoring on the existing source code for improving the internal structure of the code. Code refactoring is an effective technique for software development that improves the software’s internal structure without changing its external behaviour. The purpose of refactoring is to improve the cohesion of existing code and minimize coupling in the existing module of a software system. Among numerous methods, clustering is one of the effective approaches to increase the cohesion of the system. Hence in this paper, the authors suggest to extract member functions and member variables and propose to find their similarity by Frequent Usage Pattern approach. Next, the proposed fuzzy based clustering algorithm perform effective code refactoring. The proposed method utilizes multiple refactoring methods to increase the cohesion of the component without any change in the meaning of the software system. The proposed system will offer automated support to change low-cohesive to high-cohesive functions. Finally, the proposed model has been experimentally tested with object-oriented programs.

Keywords: refactoring, cohesion, clustering, member function, member variable, Frequent Usage Pattern, fuzzy c-means clustering, k-nearest neighbour

References
1. Keshta I.M. Software refactoring approaches: A survey. International Journal of Advanced Computer Science and Applications, 2017, vol. 8, no. 11, pp. 542–547.
2. Alkhalid A., Alshayeb M., Mahmoud S.A. Software refactoring at the class level using clustering techniques. Journal of Research and Practice in Information Technology, 2011, vol. 43, no. 4, pp. 285–306.
3. Srinivas C., Radhakrishna V., Rao C.V.G. Clustering software components for program restructuring and component reuse using hybrid XNOR similarity function. Procedia Technology, 2014, vol. 12, pp. 246–254. https://doi.org/10.1016/j.protcy.2013.12.482
4. Fokaefs M., Tsantalis N., Chatzigeorgiou A., Sander J. Decomposing object-oriented class modules using an agglomerative clustering technique. Proc. IEEE International Conference on Software Maintenance (ICSM), 2009, pp. 93–101. https://doi.org/10.1109/ICSM.2009.5306332
5. Lung C.H., Xu X., Zaman M., Srinivasan A. Program restructuring using clustering techniques. Journal of Systems and Software, 2006, vol. 79, no. 9, pp. 1261–1279. https://doi.org/10.1016/j.jss.2006.02.037
6. Srinivas C., Rao C.V.G. A feature vector based approach for software component clustering and reuse using k-means. Proc. International Conference on Engineering and MIS (ICEMIS), 2015, pp. 1–5. https://doi.org/10.1145/2832987.2833080
7. Naseem R., Maqbool O., Muhammad S. Improved similarity measures for software clustering. Proc. 15th European Conference on Software Maintenance and Reengineering, 2011, pp. 45–54. https://doi.org/10.1109/CSMR.2011.9
8. Bavota G., Gethers M., Oliveto R., Poshyvanyk D., De Lucia A. Improving software modularization via automated analysis of latent topics and dependencies. ACM Transactions on Software Engineering and Methodology, 2014, vol. 23, no. 1, pp. 2559935. https://doi.org/10.1145/2559935
9. Al Dallal J. Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics. Information and Software Technology, 2012, vol. 54, no. 10, pp. 1125–1141. https://doi.org/10.1016/j.infsof.2012.04.004
10. Singh S., Kaur S. A systematic literature review: Refactoring for disclosing code smells in object oriented software. Ain Shams Engineering Journal, 2018, vol. 9, no. 4, pp. 2129–2151. https://doi.org/10.1016/j.asej.2017.03.002
11. Wang Y., Yu H., Zhu Z., Zhang W., Zhao Y. Automatic software refactoring via weighted clustering in method-level networks. IEEE Transactions on Software Engineering, 2018, vol. 44, no. 3, pp. 202–236. https://doi.org/10.1109/TSE.2017.2679752
12. Hegedűs P., Kádár I., Ferenc R., Gyimóthy T. Empirical evaluation of software maintainability based on a manually validated refactoring dataset. Information and Software Technology, 2018, vol. 95, pp. 313–327. https://doi.org/10.1016/j.infsof.2017.11.012
13. Kebir S., Borne I., Meslati D. A genetic algorithm-based approach for automated refactoring of component-based software. Information and Software Technology, 2017, vol. 88, pp. 17–36. https://doi.org/10.1016/j.infsof.2017.03.009
14. Han A.-R., Bae D.-H., Cha S. An efficient approach to identify multiple and independent Move Method refactoring candidates. Information and Software Technology, 2015, vol. 59, pp. 53–66. https://doi.org/10.1016/j.infsof.2014.10.007
15. Rathee A., Chhabra J.K. Restructuring of object-oriented software through cohesion improvement using frequent usage patterns. ACM SIGSOFT Software Engineering Notes, 2017, vol. 42, no. 3, pp. 1–8. https://doi.org/10.1145/3127360.3127370
16. Alkhalid A., Alshayeb M., Mahmoud S. Software refactoring at the function level using new Adaptive K-Nearest Neighbor algorithm. Advances in Engineering Software, 2010, vol. 41, no. 10–11, pp.  1160–1178. https://doi.org/10.1016/j.advengsoft.2010.08.002
17. Rao A.A., Reddy K.N. Identifying clusters of concepts in a low cohesive class for extract class refactoring using metrics supplemented agglomerative clustering technique. International Journal of Computer Science Issues, 2011, vol. 8, issue 5, no. 2, pp. 185–194.
18. Wang Y., Yu H., Zhu Z., Zhang W., Zhao Y. Automatic software refactoring via weighted clustering in method-level networks. IEEE Transactions on Software Engineering, 2017, vol. 44, no. 3, pp. 202–236. https://doi.org/10.1109/TSE.2017.2679752
19. Rathee A., Chhabra J.K. Clustering for software remodularization by using structural, conceptual and evolutionary features. Journal of Universal Computer Science, 2018, vol. 24, no. 12, pp. 1731–1757.
20. Alizadeh V., Kessentini M. Reducing interactive refactoring effort via clustering-based multi-objective search. ASE 2018 – Proc. of the 33rd ACM/IEEE International Conference on Automated Software Engineering, 2018, pp. 464–474. https://doi.org/10.1145/3238147.3238217
21. Bobde S., Phalnikar R. Restructuring of object-oriented software system using clustering techniques. Proceeding of International Conference on Computational Science and Applications, Springer, 2020, pp. 419–425. https://doi.org/10.1007/978-981-15-0790-8_41
22. Al Dallal J. Predicting move method refactoring opportunities in object-oriented code. Information and Software Technology, 2017, vol. 92, pp. 105–120. https://doi.org/10.1016/j.infsof.2017.07.013
23. Al Dallal J. Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics. Information and Software Technology, 2012, vol. 54, no. 10, pp. 1125–1141. https://doi.org/10.1016/j.infsof.2012.04.004


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Copyright 2001-2024 ©
Scientific and Technical Journal
of Information Technologies, Mechanics and Optics.
All rights reserved.

Яндекс.Метрика