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

Название: Реализация алгоритма динамического слайсинга методом повторного исполнения по запросу: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_02 «Технологии разработки программного обеспечения»
Авторы: Мощенских Максим Александрович
Научный руководитель: Степанов Даниил Сергеевич
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Выходные сведения: Санкт-Петербург, 2023
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: динамический слайсинг; анализ программ; инструментация программ; Java; dynamic slicing; program analysis; program instrumentation
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Бакалавриат
Код специальности ФГОС: 09.03.01
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2023/vr/vr23-3427
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: ru\spstu\vkr\22810

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

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

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

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

Аннотация

Одним из подходов, облегчающих отладку программ за счёт сокращения количества анализируемого программного кода, является слайсинг. На сегодняшний день существует несколько методов слайсинга. К их недостаткам можно отнести зависимость времени выполнения слайсинга от размера истории исполнения программы. В работе к реализации предлагается алгоритм, не имеющий этой проблемы — метод повторного исполнения по запросу. Разработана программа, реализующая алгоритм для языка программирования 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.

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

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

Оглавление

  • 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

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

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