Детальная информация

Название: Применение искусственных нейронных сетей для поиска клонов в исходном коде программ: выпускная квалификационная работа магистра: 09.04.01 - Информатика и вычислительная техника ; 09.04.01_15 - Технологии проектирования системного и прикладного программного обеспечения
Авторы: Зорин Арсений Геннадьевич
Научный руководитель: Ицыксон Владимир Михайлович
Другие авторы: Новопашенный Андрей Гелиевич
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2018
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: Нейронные сети; Искусственный интеллект; Информационно-поисковые системы; машинное обучение
УДК: 004.85.032.26
Тип документа: Выпускная квалификационная работа магистра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Магистратура
Код специальности ФГОС: 09.04.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
Ссылки: Отзыв руководителя; Рецензия
DOI: 10.18720/SPBPU/2/v18-4630
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: RU\SPSTU\edoc\56703

Разрешенные действия:

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

Магистерская работа посвящена исследованию возможности применения искусственных нейронных сетей в задаче поиска клонов в исходном коде программ. Исследование было проведено на основе проектов с открытым исходным кодом, которые написаны на языке программирования Java. В ходе проведения данного исследования был разработан прототип инструмента для поиска дубликатов в исходном коде программы. Разработанный прототип был протестирован на специальной выборке - BigCloneBench. Тестирование показало целесообразность использования метода интеллектуального поиска клонов.

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ Прочитать Печать Загрузить
-> Интернет Анонимные пользователи

Оглавление

  • ВВЕДЕНИЕ
  • 1. Обзор и сравнительный анализ существующих подходов
    • 1.1. Основные определения и классификация
    • 1.2. Причины возникновения
      • 1.2.1. Повторное использование
      • 1.2.2. Подход к программированию
      • 1.2.3. Преимущества поддержки ПО
      • 1.2.4. Преодоление ограничений
      • 1.2.5. Случайное клонирование
    • 1.3. Преимущества обнаружения клонов и их дальнейшего рефакторинга
    • 1.4. Критерии сравнения
    • 1.5. Способы обнаружения клонов
      • 1.5.1. Метод на основе анализа текста
      • 1.5.2. Метод на основе анализа токенов
      • 1.5.3. Метод на основе анализа синтаксических деревьев
      • 1.5.4. Метод на основе анализа графов
      • 1.5.5. Метод на основе программных метрик
      • 1.5.6. Смешанные методы
      • 1.5.7. Сравнение методов поиска клонов
    • 1.6. Итоги раздела
  • 2. Постановка задачи разработки интеллектуального метода обнаружения клонов и выбор пути решения
    • 2.1. Задача разработки интеллектуального метода обнаружения клонов
    • 2.2. Искусственные нейронные сети
      • 2.2.1. Сеть прямого распространения
      • 2.2.2. Нейронная сеть Хопфилда
      • 2.2.3. Сверточная нейронная сеть
      • 2.2.4. Рекуррентная нейронная сеть
      • 2.2.5. Сравнительный анализ
    • 2.3. Задача разработки прототипа инструмента
    • 2.4. Итоги раздела
  • 3. Разработка метода интеллектуального обнаружения клонов
    • 3.1. Общая схема алгоритма
    • 3.2. Предобработка
    • 3.3. Преобразование
    • 3.4. Обучение и использование нейронной сети
      • 3.4.1. Выборка данных
      • 3.4.2. Сиамская нейронная сеть
      • 3.4.3. Sequence-to-Sequence
    • 3.5. Постобработка
    • 3.6. Итоги раздела
  • 4. Разработка прототипа инструмента обнаружения клонов
    • 4.1. Общая структура прототипа
    • 4.2. Реализация модуля построения AST
      • 4.2.1. Состав пакета trees
      • 4.2.2. Состав пакета preproc
    • 4.3. Реализация модуля обнаружения программных клонов
      • 4.3.1. Состав файла model
      • 4.3.2. Состав файла helpers
      • 4.3.3. Состав файла clonesRecognition
    • 4.4. Итоги раздела
  • 5. Тестирование и анализ результатов
    • 5.1. Описание тестовых данных
    • 5.2. Описание тестовой платформы и конфигурации прототипа
    • 5.3. Схема работы прототипа
    • 5.4. Исследование показателей прототипа
    • 5.5. Результаты тестирования
    • 5.6. Итоги раздела
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ. ЛИСТИНГИ

Статистика использования

stat Количество обращений: 120
За последние 30 дней: 1
Подробная статистика