Table | Card | RUSMARC | |
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 |
Annotation
Одним из подходов, облегчающих отладку программ за счёт сокращения количества анализируемого программного кода, является слайсинг. На сегодняшний день существует несколько методов слайсинга. К их недостаткам можно отнести зависимость времени выполнения слайсинга от размера истории исполнения программы. В работе к реализации предлагается алгоритм, не имеющий этой проблемы — метод повторного исполнения по запросу. Разработана программа, реализующая алгоритм для языка программирования 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.
Document access rights
Network | User group | Action | ||||
---|---|---|---|---|---|---|
ILC SPbPU Local Network | All | |||||
Internet | Authorized users SPbPU | |||||
Internet | Anonymous |
Table of Contents
- 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. Резюме
- 3.1. Выбор языка программирования, для которого разрабатывается слайсер
- 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
Usage statistics
Access count: 4
Last 30 days: 0 Detailed usage statistics |