Магистерская диссертация на тему "ТЮМГУ | Исследование и программная реализация метода определения паттернов проектирования для исходного кода на языке объектно-ориентированного"

Работа на тему: Исследование и программная реализация метода определения паттернов проектирования для исходного кода на языке объектно-ориентированного
Оценка: отлично.
Оригинальность работы на момент публикации 50+% на антиплагиат.ру.
Ниже прилагаю все данные для покупки.
https://studentu24.ru/list/suppliers/Anastasiya1---1326

Описание работы

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК
Кафедра программного обеспечения
РЕКОМЕНДОВАНО К ЗАЩИТЕ В ГЭК

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
Исследование и программная реализация метода определения паттернов проектирования для исходного кода на языке объектно-ориентированного

02.04.03 Математическое обеспечение и администрирование информационных систем
Магистерская программа «Разработка технологий Интернета вещей и больших данных»

Тюмень 2023

СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
ГЛАВА 1. ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ 5
1.1 ОПРЕДЕЛЕНИЕ ПАТТЕРНА ПРОЕКТИРОВАНИЯ 5
1.2. МЕТОДЫ ПОИСКА ПАТТЕРНОВ ПРОЕКТИРОВАНИЯ 9
ГЛАВА 2. ЗАДАЧА ПОИСКА ПАТТЕРНОВ ПРОЕКТИРОВАНИЯ 18
2.1. ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ 18
2.2. МЕТОДЫ И АЛГОРИТМЫ РЕШЕНИЯ 19
ГЛАВА 3. ПРОЕКТИРОВАНИЕ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ 28
3.1. АРХИТЕКТУРА ПРИЛОЖЕНИЯ 28
3.2. ФОРМИРОВАНИЕ НАБОРА ПРОЕКТОВ 30
3.3. ПРОЕКТИРОВАНИЕ ПАРСЕРА 32
3.4. МОДЕЛЬ ДАННЫХ 36
3.5 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ 37
ЗАКЛЮЧЕНИЕ 39
СПИСОК ЛИТЕРАТУРЫ 40
ПРИЛОЖЕНИЕ. КОНСТРУИРОВАНИЕ ДЕРЕВА ВО ВНЕШНЕМ ПАРСЕРЕ 42

ВВЕДЕНИЕ
В настоящее время число IT специалистов постоянно возрастает по причине их востребованности. При этом их подготовка отличается из-за наличия значительного количества материалов и курсов для их обучения. Каждый программист пишет свой код по-своему, используя свои подходы, идеи и умения или, наоборот, отражая в коде недостаток квалификации.
Однако, несмотря на все разнообразие программ, сложились часто используемые конструкции кода, шаблоны, идиомы и принципы разработки. Они помогают ускорить командную разработку программного обеспечения (ПО), быстро решать часто возникающие задачи проектирования ПО, возникающие в процессе разработки, а также делать код более читаемым и расширяемым. Кроме «полезных» конструкций также существуют и другие шаблоны, отрицательно влияющие на разработку.
Все подобные конструкции называют паттернами проектирования [1]. Зачастую знание определенных паттернов проектирования считается обязательным для квалифицированного разработчика, ведь их знание и правильное использование позволяет достичь более качественного кода.
Среди паттернов есть те, которые хорошо описаны, как, например, паттерны проектирования по GoF'у [1], а есть те, которые наоборот не имеют конкретного описания, однако используются тоже часто.
Идея данной работы состоит в том, чтобы на основе анализа исходных кодов набора проектов находить часто используемые конструкции кода, которые являются известными или, наоборот, неизвестными паттернами.
Цель работы – разработать программный продукт для выявления паттернов проектирования на основе исходного кода одного или нескольких проектов, написанных на объектно-ориентированных языках программирования.
Для достижения данной цели были поставлены следующие задачи:
• Изучить существующие методы и подходы для анализа кода на наличие паттернов проектирования.
• Реализовать парсер для извлечения признаков, описывающих паттерны, и для создания структуры данных для их хранения.
• Разработать и реализовать алгоритмы для анализа паттернов.
• Разработать и протестировать программный продукт для анализа кода на паттерны проектирования.

СПИСОК ЛИТЕРАТУРЫ
1. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. П75 Приемы объектно-ориентированного проектирования. Паттерны проектирования. — СПб: Питер, 2001. — 368 с.: ил. (Серия
«Библиотека программиста»)
2. Степанчук И. А., Логинов Н. И. ПАТТЕРНЫ ПРОГРАММИРОВАНИЯ: ИСТОРИЯ ПОЯВЛЕНИЯ, ОСНОВНАЯ ИДЕЯ, КЛАССИФИКАЦИЯ //INTERNATIONAL INNOVATION RESEARCH: Сборник статей XII Международной научно-практической конференции в 3 частях. Том Часть 1. – 2018.
– С. 138-144
3. Алаа Ш. Методика подготовки и распознавания паттернов программного обеспечения с использованием моделей машинного обучения // Политехнический молодежный журнал / МГТУ им. Н. Э. Баумана, Москва, 2019.
4. Heuzeroth D. [et al.] Automatic design pattern detection // 11th IEEE International Workshop on Program Comprehension, 2003. C. 94-103.
5. Uchiyama S. [et al.] Detecting design patterns in object-oriented program source code by using metrics and machine learning // Journal of Software Engineering and Applications, 2014. C. 983.
6. Oberhauser R. A machine learning approach towards automatic software design pattern recognition across multiple programming languages // ICSEA 2020. C. 37.
7. srcML markup documentation.
8. Mhawish M. Y., Gupta M. Software metrics and tree-based machine learning algorithms for distinguishing and detecting similar structure design patterns // SN Applied Sciences, 2020. C. 1-10.
9. Nazar N., Aleti A. Feature-based software design pattern detection // arXiv:2012.01708, 2020.
10. Al-Obeidallah M. G., Petridis M., Kapetanakis S. A Structural Rule- Based Approach fpr Design Patterns Recovery // International Conference on Software Engineering Research, Management and Applications. Springer, Cham, 2017. C. 107-124.
11. CLIPS: A Tool for Building Expert Systems, 2016. U
12. Javaparser: Java 1-15 parser and Abstract Syntax Tree for Java.
13. Ахо, Альфред В., Лам, Моника С., Сети, Рави, Ульман, Джеффри Д. Компиляторы: принципы, технологии и инструментарий, 2-е изд. : пер. с англ -СПб. :Диалектика, 2020 – 1184 с.
14. Макконел С. Совершенный код. Мастер-класс. Пер с англ. – СПб.: БХВ 2022 – 896 с.
15. Фримен Э. [и др.] Паттерны проектирования. СПб.: Питер, 2011. 656 с.
16. Heuzeroth D. [et al.] Automatic design pattern detection // 11th IEEE International Workshop on Program Comprehension, 2003. C. 94-103. 17.Home Octokit.net Documentation.
18.Tree-sitter | Introduction

НЕ НАШЛИ, ЧТО ИСКАЛИ? МОЖЕМ ПОМОЧЬ.

СТАТЬ ЗАКАЗЧИКОМ