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


УДК 004.438

Модели реструктуризации программного обеспечения для языка объектно-ориентированного программирования с использованием алгоритма нечеткой кластеризации 

Бобде С., Пхальникар Р.


Читать статью полностью 
Язык статьи - английский

Ссылка для цитирования:

 Бобде С., Пхальникар Р. Модели реструктуризации программного обеспечения для языка объектно-ориентированного программирования с использованием алгоритма нечеткой кластеризации // Научно-технический вестник информационных технологий, механики и оптики. 2021. Т. 21, № 5. С. 738–747 (на англ. яз.). doi: 10.17586/2226-1494-2021-21-5-738-747



Аннотация
Достижения в области программных технологий открывают путь для широкого использования объектно-ориентированных программ. Существует необходимость в разработке зарекомендовавшей себя системы программного обеспечения, которая снизит затраты на обслуживание и повысит удобство использования компонента. При проектировании программной системы ее внутренняя структура ухудшается из-за продолжительных или отложенных работ по техническому обслуживанию. В таких ситуациях реструктуризация программного обеспечения — лучший подход для улучшения структуры без изменения внешнего поведения системы. Один из подходов к реструктуризации — использование рефакторинга применяемого исходного кода для улучшения внутренней структуры кода. Рефакторинг кода — эффективный метод разработки программного обеспечения, который улучшает внутреннюю структуру программного обеспечения без изменения его внешнего поведения. Цель рефакторинга — улучшение связности используемого кода и минимизация связи в модуле программной системы. Кластеризация — один из эффективных подходов к увеличению сплоченности системы. В работе предложено извлечение функций-членов и переменных-членов и выполнение поиска их сходства с помощью подхода «Шаблон частого использования». Алгоритм нечеткой кластеризации дает эффективный рефакторинг кода. Предлагаемый метод использует несколько методов рефакторинга для повышения связности компонента без какого-либо изменения смысла программной системы. Представленная система рекомендует автоматическую поддержку для изменения функций с низким уровнем сцепления на функции с высоким уровнем сцепления. Предложенная модель экспериментально протестирована с объектно-ориентированными программами.

Ключевые слова: рефакторинг, связность, кластеризация, функция членства, переменная, часто используемый паттерн, нечеткая кластеризация методом с-средних, k-ближайший сосед

Список литературы
1. Keshta I.M. Software refactoring approaches: A survey // International Journal of Advanced Computer Science and Applications. 2017. V. 8. N 11. P. 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. V. 43. N 4. P. 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. V. 12. P. 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. P. 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. V. 79. N 9. P. 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. P. 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. P. 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. V. 23. N 1. P. 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. V. 54. N 10. P. 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. V. 9. N 4. P. 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. V. 44. N 3. P. 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. V. 95. P. 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. V. 88. P. 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. V. 59. P. 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. V. 42. N 3. P. 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. V. 41. N 10–11. P.  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. V. 8. Issue 5. N 2. P. 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. V. 44. N 3. P. 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. V. 24. N 12. P. 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. P. 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. P. 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. V. 92. P. 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. V. 54. N 10. P. 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
Информация 2001-2021 ©
Научно-технический вестник информационных технологий, механики и оптики.
Все права защищены.

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