Меню
Публикации
2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001
Главный редактор
НИКИФОРОВ
Владимир Олегович
д.т.н., профессор
Партнеры
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

