Для студентов НИУ ВШЭ по предмету ДругиеИнструмент для поиска шаблонов изменений в коде на языке PythonИнструмент для поиска шаблонов изменений в коде на языке Python
2024-06-292024-06-29СтудИзба
Курсовая работа: Инструмент для поиска шаблонов изменений в коде на языке Python
Описание
коде на языке Python
Оглавление
3
Введение
На сегодняшний день существует множество компаний, разрабаты-вающих программное обеспечение. Программисты, которые там работа-ют, производят колоссальные объемы кода. Программное обеспечение постоянно меняется, поскольку изменяется его окружение и требования
коммитов2. Код и его изменения являются источником данных для раз-личных исследований, связанных, в том числе, с анализом эволюции программного обеспечения [23, 21].
Недавние исследования показывают, что изменения в коде перио-дически повторяются [21, 7, 17]. Это наблюдение является отправной точкой для данной работы. Из него мы можем сделать вывод: разра-ботчики не только испытывают одинаковые проблемы, но и решают их похожими способами. Повторяющиеся изменения кода образуют шаб-лоны изменений, анализ которых поможет улучшить средства автодо-полнения и проверки программного кода в IDE (Integrated development environment, интегрированная среда разработки) и, возможно, другие инструменты, используемые программистами [11, 3]. Кроме того
Оглавление
Введение | 4 | |||
1. | Обзор предметной области | 7 | ||
1.1. | Анализизмененийвкоде................... | 7 | ||
1.1.1. | CHANGEDISTILLER................... | 7 | ||
1.1.2. | PYCT.......................... | 8 | ||
1.1.3. LASE........................... | 8 | |||
1.1.4. | GUMTREE........................ | 9 | ||
1.1.5. | CPATMINER ...................... | 9 | ||
1.2. | Архитектура проекта CPATMINER . . . . . . . . . . . . . | 13 | ||
1.3. | Инструменты для построения графов . . . . . . . . . . . | 14 | ||
1.4. | Сборизмененийвкоде.................... | 15 | ||
1.4.1. Источники изменений . . . . . . . . . . . . . . . . . | 15 | |||
1.4.2. | Методы сбора изменений с GITHUB . . . . . . . . . | 16 | ||
2. | Архитектура решения и его реализация | 18 | ||
2.1. | Архитектурарешения..................... | 18 | ||
2.2. | Сборизменений ........................ | 19 | ||
2.3. | Построение графов из исходного кода . . . . . . . . . . . | 21 | ||
2.3.1. | Граф потока управления и потока данных . . . . | 22 | ||
2.3.2. Транзитивное замыкание . . . . . . . . . . . . . . . | 23 | |||
2.4. | Графизменений........................ | 26 | ||
2.5. | Поискшаблонов........................ | 28 | ||
2.6. | Выводрезультатов ...................... | 30 | ||
3. | Апробация | 34 | ||
3.1. | Инструменты и данные для проведения опроса . . . . . . | 34 | ||
3.2. | Опросиегорезультаты.................... | 34 | ||
Заключение | 36 | |||
Список литературы | 37 |
3
Введение
На сегодняшний день существует множество компаний, разрабаты-вающих программное обеспечение. Программисты, которые там работа-ют, производят колоссальные объемы кода. Программное обеспечение постоянно меняется, поскольку изменяется его окружение и требования
- нему, а люди придумывают новые способы использования программ-ных продуктов. Например, проект VISUAL STUDIO CODE уже содержит более 65 000 коммитов1, а INTELLIJ IDEA COMMUNITY — более 280 000
коммитов2. Код и его изменения являются источником данных для раз-личных исследований, связанных, в том числе, с анализом эволюции программного обеспечения [23, 21].
Недавние исследования показывают, что изменения в коде перио-дически повторяются [21, 7, 17]. Это наблюдение является отправной точкой для данной работы. Из него мы можем сделать вывод: разра-ботчики не только испытывают одинаковые проблемы, но и решают их похожими способами. Повторяющиеся изменения кода образуют шаб-лоны изменений, анализ которых поможет улучшить средства автодо-полнения и проверки программного кода в IDE (Integrated development environment, интегрированная среда разработки) и, возможно, другие инструменты, используемые программистами [11, 3]. Кроме того
Характеристики курсовой работы
Предмет
Учебное заведение
Семестр
Просмотров
1
Размер
892,5 Kb
Список файлов
Инструмент для поиска шаблонов изменений в коде на языке Python.doc