doi: 10.17586/2226-1494-2026-26-2-324-330


УДК 004.852

Автоматическое обнаружение паттернов проектирования программного обеспечения с использованием языковой модели, основанной на архитектуре трансформера (на англ.яз.)

Асаад Ж., Авксентьева Е.Ю.


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

Ссылка для цитирования:
Асаад Ж., Авксентьева Е.Ю. Автоматическое обнаружение паттернов проектирования программного обеспечения с использованием языковой модели, основанной на архитектуре трансформера // Научно-технический вестник информационных технологий, механики и оптики. 2026. Т. 26, № 2. С. 324–330 (на англ. яз.). doi: 10.17586/2226-1494-2026-26-2-324-330


Аннотация
Введение. Определена значимость паттернов проектирования Gang of Four (GoF), являющихся формализованными архитектурными решениями в объектно-ориентированном программировании. Обоснована актуальность автоматизированного обнаружения данных паттернов в исходном коде современных программных продуктов. Рассмотрены проблемы выявления архитектурных шаблонов в программном обеспечении и ограничения традиционных аналитических подходов. Научная новизна предлагаемого метода заключается в использовании современных языковых моделей на основе трансформеров, обученных на исходном программном коде в сочетании с традиционными методами машинного обучения для выявления структурных паттернов. Метод. Предложено использовать фреймворк DeepSeek-Coder-V2 для генерации многомерных векторных представлений (эмбеддингов) сегментов кода, и для уменьшения их размерности применить анализ главных компонент. Полученные векторные представления используются в качестве признаков для обучения и тестирования классификаторов, включающих линейные и нелинейные модели с целью автоматического распознавания паттернов проектирования. Основные результаты. Создан и размечен набор данных, включающий 23 шаблона GoF и несколько дополнительных архитектурных шаблонов, собранный из реальных проектов с открытым исходным кодом. Эксперименты показали, что трансформерные представления кода значительно превосходят альтернативные методы извлечения признаков, достигая макро-усредненного значения F1-меры 0,82. Проведенная оценка подтверждает, что эмбеддинги успешно отражают синтаксические и семантические особенности кода. Обсуждение. В отличие от используемых аналитических и эвристических методов, предложенный метод более масштабируем и адаптируем к различным контекстам. Эксперименты продемонстрировали его высокую эффективность на задаче распознавания шаблонов и применимость для анализа больших кодовых баз с целью рефакторинга и сопровождения программного обеспечения.

Ключевые слова: векторные представления кода, DeepSeek, обнаружение шаблонов проектирования, банда четырех, машинное обучение, Java, извлечение признаков, программная инженерия

Список литературы
1. Albin-Amiot H., Guéhéneuc Y.-G. Meta-modeling design patterns: application to pattern detection and code synthesis // Proc. of the 1st ECOOP Workshop on Automating Object-Oriented Software Development Methods. 2001. P. 1–8.
2. Albin-Amiot H., Cointe P., Gueheneuc Y.-G., Jussien N. Instantiating and detecting design patterns: Putting bits and pieces together // Proc. of the 16th Annual International Conference on Automated Software Engineering (ASE 2001). 2001. P. 166–173. https://doi.org/10.1109/ase.2001.989802
3. Kouli M., Rasoolzadegan A. A feature-based method for detecting design patterns in source code // Symmetry. 2022. V. 14. N 7. P. 1491. https://doi.org/10.3390/sym14071491
4. Asaad J., Avksentieva E. A review of approaches to detecting software design patterns // Proc. of the 35th Conference of Open Innovations Association (FRUCT). 2024. P. 142–148. https://doi.org/10.23919/fruct61870.2024.10516345
5. Markson R., Samson M., Owen A. Automated code review: leveraging generative AI for vulnerability detection in software development // Author content. 2023. P. 1–34.
6. Mostafa S., Cynthia S.T., Roy B., Mondal D. Feature transformation for improved software bug detection and commit classification // Journal of Systems and Software. 2025. V. 219. P. 112205. https://doi.org/10.1016/j.jss.2024.112205
7. Ding S., Zhu H., Jia W., Su C. A survey on feature extraction for pattern recognition // Artificial Intelligence Review. 2012.V. 37. N 3. P. 169–180. https://doi.org/10.1007/s10462-011-9225-y
8. Pandey S.K., Chand S., Horkoff J., Staron M., Ochodek M., Durisic D.Design pattern recognition: a study of large language models // Empirical Software Engineering. 2025. V. 30. N 3. P. 69. https://doi.org/10.1007/s10664-025-10625-1
9. Thaller H., Linsbauer L., Egyed A. Feature maps: a comprehensible software representation for design pattern detection // Proc. of the IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). 2019. P. 207–217. https://doi.org/10.1109/saner.2019.8667978
10. Almadi S.H.S., Hooshyar D., Ahmad R.B. Bad smells of gang of four design patterns: a decade systematic literature review // Sustainability. 2021. V. 13. N 18. P. 10256. https://doi.org/10.3390/su131810256
11. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1994. 416 p.
12. Casey B., Santos J.C.S., Perry G. A survey of source code representations for machine learning-based cybersecurity tasks // ACM Computing Surveys. 2025. V. 57. N 8. P. 1–41. https://doi.org/10.1145/3721977
13. Jin D., He C., Zou Q., Qin Y., Wang B. Source code vulnerability detection based on joint graph and multimodal feature fusion // Electronics. 2025. V. 14. N 5. P. 975. https://doi.org/10.3390/electronics14050975
14. He K., Zhang X., Ren S., Sun J. Deep residual learning for image recognition // Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2016. P. 770–778. https://doi.org/10.1109/cvpr.2016.90
15. Zanoni M., Fontana F.A., Stella F. On applying machine learning techniques for design pattern detection // Journal of Systems and Software. 2015. V. 103. P. 102–117. https://doi.org/10.1016/j.jss.2015.01.037
16. Alon U., Zilberstein M., Levy O., Yahav E. Code2vec: Learning distributed representations of code // Proc. of the ACM on Programming Languages. 2019. V. 3. N POPL. P. 1–29, https://doi.org/10.1145/3290353
17. Allamanis M., Barr E.T., Devanbu P., Sutton C. A survey of machine learning for big code and naturalness // ACM Computing Surveys. 2019. V. 51. N 4. P. 1–37. https://doi.org/10.1145/3212695
18. Nazar N., Aleti A., Zheng Y. Feature-based software design pattern detection // Journal of Systems and Software. 2022. V. 185. P. 111179. https://doi.org/10.1016/j.jss.2021.111179


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Информация 2001-2026 ©
Научно-технический вестник информационных технологий, механики и оптики.

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