Preview

Научно-технический вестник информационных технологий, механики и оптики

Расширенный поиск

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

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

Аннотация

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

Об авторах

Ж. Асаад
Университет ИТМО
Россия

Асаад Жамилех — аспирант

Санкт-Петербург, 197101

sc 58744629900



Е. Ю. Авксентьева
Университет ИТМО
Россия

Авксентьева Елена Юрьевна — кандидат педагогических наук, доцент, доцент

Санкт-Петербург, 197101

sc 57190830859



Список литературы

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, pp. 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, pp. 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, vol. 14, no. 7, pp. 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, pp. 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, pp. 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, vol. 219, pp. 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, vol. 37, no. 3, pp. 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, vol. 30, no. 3, pp. 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, pp. 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, vol. 13, no. 18, pp. 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, vol. 57, no. 8, pp. 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, vol. 14, no. 5, pp. 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, pp. 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, vol. 103, pp. 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, vol. 3, no. POPL, pp. 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, vol. 51, no. 4, pp. 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, vol. 185, pp. 111179. https://doi.org/10.1016/j.jss.2021.111179


Рецензия

Для цитирования:


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

For citation:


Asaad J., Аvksentieva E.Yu. Automatic detection of software design patterns using a language model on transformer architecture. Scientific and Technical Journal of Information Technologies, Mechanics and Optics. 2026;26(2):324-330. https://doi.org/10.17586/2226-1494-2026-26-2-324-330

Просмотров: 218

JATS XML


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2226-1494 (Print)
ISSN 2500-0373 (Online)