Details

Title: Применение искусственных нейронных сетей для поиска клонов в исходном коде программ: выпускная квалификационная работа магистра: 09.04.01 - Информатика и вычислительная техника ; 09.04.01_15 - Технологии проектирования системного и прикладного программного обеспечения
Creators: Зорин Арсений Геннадьевич
Scientific adviser: Ицыксон Владимир Михайлович
Other creators: Новопашенный Андрей Гелиевич
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint: Санкт-Петербург, 2018
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: Нейронные сети; Искусственный интеллект; Информационно-поисковые системы; машинное обучение
UDC: 004.85.032.26
Document type: Master graduation qualification work
File type: PDF
Language: Russian
Speciality code (FGOS): 09.04.01
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
Links: http://doi.org/10.18720/SPBPU/2/v18-4630; http://elib.spbstu.ru/dl/2/rev/v18-4630-o.pdf; http://elib.spbstu.ru/dl/2/rev/v18-4630-r.pdf
Rights: Свободный доступ из сети Интернет (чтение, печать, копирование)

Allowed Actions: Read Download (0.9 Mb) You need Flash Player to read document

Group: Anonymous

Network: Internet

Annotation

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

Document access rights

Network User group Action
FL SPbPU Local Network All Read Print Download
-> Internet All Read Print Download

Table of Contents

  • ВВЕДЕНИЕ
  • 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. Итоги раздела
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ. ЛИСТИНГИ

Document usage statistics

stat Document access count: 90
Last 30 days: 1
Detailed usage statistics