Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемВладлена Откупщикова
1 Семантический поиск в программном коде Научный руководитель к.ф.-м.н. Д.В.Барашев Рецензент А.А.Бреслав Студент 545 группы Всеволод Иванов Дипломная работа
2 Актуальность задачи поиска Разные уровни абстракции поисковых запросов и результатов Большие проекты Много компонентов Много связей между ними, в т.ч. неявных Много авторов Большая продолжительность Развитая инфраструктура
3 Виды поиска Полнотекстовый С регулярными выражениями Семантический Только по исходному коду Используя метаданные
4 Обзор Инструменты для просмотра кода (IDE, online) Синтаксический поиск, поиск по истории JRipples Поиск через зависимости Статья "An Information Retrieval Approach to Concept Location in Source Code» Семантический поиск с помощью LSA только по исходному коду
5 Постановка задачи Разработать систему, которая в проекте, имеющем: Систему контроля версий Баг-трекер Провязку VCS и баг-трекера по данному поисковому запросу находит: Список файлов, связанных с этим запросом Список разработчиков, внесших наибольший вклад в данную функциональность, отсортированные по релевантности
6 Индексирование Анализируемый язык – Java Особенности парсинга: Только нужные файлы Stop words: English Java Разбиение идентификаторов на слова: Регистр Подчеркивания и точки
7 Поиск 1. Базовые результаты – SemanticVectors 2. Изменение на основе метаданных (git, баг-трекер): Blame найденных файлов Объединение коммитов, относящихся к одной задаче Подсчет частоты встречаемости в коммитах Математическая модель 3. Поиск авторов
8 Математическая модель targetRank = sourceRank + commitCount * coefficient targetRank – итоговый рейтинг документа sourceRank – рейтинг документа из SemanticVectors commitCount – количество связанных коммитов, содержащих документ coefficient – константа, зависящая от размера проекта
9 Class Diagram
10 Апробация Проводилась на open-source проектах компании JetBrains: Kotlin и MPS Сравнение с Lucene, SemanticVectors и дальнейшая оценка результатов экспертом Выводы: Использование метаданных улучшает результаты Неточность рейтингов Возможно, модели словесных пространств не подходят для программного кода Размытый критерий релевантности
11 Результаты Разработана система, которая в проекте, имеющем: Систему контроля версий Баг-трекер Провязку VCS и баг-трекера по данному поисковому запросу находит: Список файлов, связанных с этим запросом Список разработчиков, внесших наибольший вклад в данную функциональность, отсортированные по релевантности
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.