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

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

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

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

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

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

Аннотация

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

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

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

Оглавление

  • ВВЕДЕНИЕ
  • 1. Описание методов локализации ошибок
    • 1.1. Дельта-дебаггинг
      • 1.1.1. Дельта-дебаггинг с использованием topformflat
      • 1.1.2. Иерархический дельта-дебаггинг
    • 1.2. Программные срезы
    • 1.3. Существующие средства программной редукции
    • 1.4. Резюме
  • 2. Постановка задачи
    • 2.1. Выбор целевого языка программирования
    • 2.2. Постановка задачи разработки технологии редукции программ
    • 2.3. Постановка задачи разработки прототипа, реализующего технологию редукции программ
    • 2.4. Резюме
  • 3. Разработка метода программной редукции
    • 3.1. Проверка воспроизведения ошибки
    • 3.2. Предварительное упрощение проектов
    • 3.3. Программный срез
      • 3.3.1. Слайсинг на уровне классов и функций
      • 3.3.2. Внутрипроцедурный слайсинг
    • 3.4. Трансформации над текстовым представлением программы
    • 3.5. Трансформации над синтаксическим деревом
    • 3.6. Иерархический дельта-дебаггинг
    • 3.7. Резюме
  • 4. Разработка прототипа
    • 4.1. Архитектура прототипа
    • 4.2. Реализация инструмента для построения синтаксического дерева
    • 4.3. Реализация редуцирующих трансформаций
      • 4.3.1. Пакет com.stepanov.reduktor.passes.slicer
    • 4.4. Реализация менеджера проходов
    • 4.5. Реализация вспомогательных компонентов
      • 4.5.1. Компоненты CompilerCrashTestChecker и TestChecker
      • 4.5.2. Компонент ParallelFileProcessingUtil
      • 4.5.3. Компонент RemoveSourcesFromJar
    • 4.6. Резюме
  • 5. Тестирование системы
    • 5.1. Описание тестовых проектов
    • 5.2. Оценка целесообразности
    • 5.3. Результаты тестирования
    • 5.4. Анализ результатов
    • 5.5. Резюме
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ 1. ПРИМЕР ПРИМЕНЕНИЯ РАЗРАБОТАННОЙ ТЕХНОЛОГИИ К КОМПИЛЯТОРНЫМ ТЕСТАМ
  • ПРИЛОЖЕНИЕ 2. ЛИСТИНГИ

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

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