Details

Title Реализация алгоритма динамического слайсинга методом повторного исполнения по запросу: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_02 «Технологии разработки программного обеспечения»
Creators Мощенских Максим Александрович
Scientific adviser Степанов Даниил Сергеевич
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint Санкт-Петербург, 2023
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects динамический слайсинг ; анализ программ ; инструментация программ ; Java ; dynamic slicing ; program analysis ; program instrumentation
Document type Bachelor graduation qualification work
File type PDF
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.01
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2023/vr/vr23-3427
Rights Доступ по паролю из сети Интернет (чтение, печать, копирование)
Record key ru\spstu\vkr\22810
Record create date 7/21/2023

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Action 'Download' will be available if you login or access site from another network

Group Anonymous
Network Internet

Одним из подходов, облегчающих отладку программ за счёт сокращения количества анализируемого программного кода, является слайсинг. На сегодняшний день существует несколько методов слайсинга. К их недостаткам можно отнести зависимость времени выполнения слайсинга от размера истории исполнения программы. В работе к реализации предлагается алгоритм, не имеющий этой проблемы — метод повторного исполнения по запросу. Разработана программа, реализующая алгоритм для языка программирования Java. Проведено сравнение с другими методами слайсинга. Полученные результаты показывают практическую применимость алгоритма для слайсинга программ.

There are many ways to reduce the amount of code to be analyzed when debugging. One of them is program slicing. Most of the approaches suffer from slicing time dependence on program trace size. In this thesis we implement an algorithm that overcomes the problem — dynamic slicing by on-demand re-execution. Based on this algorithm, we developed a program slicing application for Java programming language, then compared it with other slicing methods. The evaluation results show usefulness and applicability of the approach.

Network User group Action
ILC SPbPU Local Network All
Read Print Download
Internet Authorized users SPbPU
Read Print Download
Internet Anonymous
  • 1. Алгоритмы динамического слайсинга
    • 1.1. Обход графа зависимостей программы по выполненным узлам
    • 1.2. Обход графа зависимостей программы по выполненным зависимостям
    • 1.3. Обход графа динамических зависимостей
    • 1.4. Обход сокращённого графа динамических зависимостей
    • 1.5. Метод повторного исполнения по запросу
    • 1.6. Резюме
  • 2. Постановка задачи
    • 2.1. Основные функции разрабатываемого приложения
    • 2.2. Требования к статическому анализу
    • 2.3. Требования к инструментированию
    • 2.4. Резюме
  • 3. Подход к реализации алгоритма динамического слайсинга методом повторного выполнения по запросу
    • 3.1. Выбор языка программирования, для которого разрабатывается слайсер
      • 3.1.1. Python
      • 3.1.2. C/C++
      • 3.1.3. Java
      • 3.1.4. C#
      • 3.1.5. Резюме
    • 3.2. Выбор языка программирования, на котором разрабатывается слайсер
      • 3.2.1. Java
      • 3.2.2. Groovy
      • 3.2.3. Kotlin
      • 3.2.4. Scala
      • 3.2.5. Резюме
    • 3.3. Выбор инструмента для статического анализа программ
      • 3.3.1. Soot
      • 3.3.2. Spoon
      • 3.3.3. WALA
      • 3.3.4. Резюме
    • 3.4. Выбор подхода для инструментирования программ
      • 3.4.1. Резюме
    • 3.5. Резюме
  • 4. Разработка приложения
    • 4.1. Архитектура приложения
    • 4.2. Программные сущности
    • 4.3. Нахождение зависимостей
    • 4.4. Слайсинг
    • 4.5. Запуск с инструментированием
    • 4.6. Резюме
  • 5. Тестирование
    • 5.1. Выбор инструмента для сравнения
    • 5.2. Тестовые программы
    • 5.3. Задача тестирования
    • 5.4. Ход тестирования
    • 5.5. Анализ результатов
    • 5.6. Резюме
  • 1. Программы, на которых проводилось сравнение с Slicer4J
  • 2. Сравнение временных показателей Slicer4J и ODRES

Access count: 5 
Last 30 days: 0

Detailed usage statistics