Многоуровневый статический анализ исходного кода для обеспечения качества программ

Белеванцев Андрей Андреевич. Многоуровневый статический анализ исходного кода для обеспечения качества программ: диссертация ... доктора Физико-математических наук: 05.13.11 / Белеванцев Андрей Андреевич;[Место защиты: ФГБУН Институт системного программирования им. В.П. Иванникова Российской академии наук], 2018
Автор
Белеванцев Андрей Андреевич
Год
2018
  • 99 000 UZS

Оглавление диссертации
Введение
1. Современные методы статического анализа программ 12
1.1. Подходы к анализу уровня абстрактного синтаксического дерева 15
1.2. Подходы к межпроцедурному анализу 20
1.3. Чувствительность к путям и SMT-решатели 23
1.4. Классификация ошибок и формализации понятия ошибки в программе 30
1.5. Ранжирование выданных предупреждений и автоматическое исправление кода 35
1.6. Опыт применения промышленных статических анализаторов 39
1.7. Современные подходы вне классической парадигмы 42
2. Многоуровневый статический анализ исходного кода программ для поиска дефектов 45
2.1. Статический анализ уровня абстрактного синтаксического дерева 48
2.1.1. Организация обходов АСД 49
2.1.2. Модель памяти программы и внутрипроцедурный анализ уровня АСД 54
2.2. Межпроцедурный контекстно-чувствительный анализ 67
2.2.1. Построение графа вызовов программы 68
2.2.2. Внутрипроцедурный анализ 72
2.2.3. Вычисление и использование аннотаций функции 77
2.3. Межпроцедурный анализ с чувствительностью к путям 81
2.3.1. Чувствительный к путям анализ с классами значений 82
2.3.2. Чувствительность к путям на основе символьных выражений 86
2.4. Детекторы в межпроцедурном анализе 90
2.4.1. Детекторы в анализе с классами значений 90
2.4.2. Чувствительные к путям детекторы 93
3. Программное средство многоуровневого статического анализа Svace 96
3.1. Контролируемая сборка программы 99
3.1.1. Обнаружение событий сборки 101
3.1.2. Определение реакции на события 106
3.1.3. Реализация контролируемой сборки в анализаторе Svace 108
3.2. Компиляторы для создания внутреннего представления для анализа 110
3.2.1. Поддержка Си/Си++ 112
3.2.2. Поддержка Java 115
3.2.3. Поддержка C# 118
3.3. Основная фаза анализа 118
3.3.1. Построение графа вызовов программы 122
3.3.2. Организация параллельного детерминированного межпроцедурного анализа 124
3.3.3. Спецификации внешних функций 127
3.3.4. Особенности анализа программ на Си++ 133
3.3.5. Особенности анализа программ на Java 134
3.3.6. Особенности анализа программ на C# 137
3.3.7. Удаленный и инкрементальный анализ 143
3.4. Хранение и просмотр результатов анализа 149
4. Детекторы ошибок всех уровней анализа в программной системе Svace 154
4.1 Детекторы ошибок уровня АСД и внутрипроцедурного потока данных 155
4.1.1. Детекторы Си/Си++ 156
4.1.2. Детекторы Java 167
4.1.3. Детекторы C# 168
4.2 Межпроцедурные детекторы ошибок 169
4.2.1. Разыменование нулевого указателя 175
4.2.2. Использование памяти после освобождения 180
4.2.3. Утечки памяти и ресурсов 182
4.2.4. Отслеживание помеченных данных 185
4.2.5. Другие детекторы для Си, Си++ и Java 187
4.2.6. Детекторы C# 190
4.3 Детекторы, различающие пути выполнения 191
4.3.1. Переполнение буфера 191
4.3.2. Разыменование нулевого указателя 195
4.3.3. Другие детекторы Си/Си++ и Java 196
4.3.4. Детекторы C# 197
5. Результаты применения коллекции анализаторов Svace к промышленному исходному коду 199
5.1 Подсистема контролируемой сборки 199
5.2 Время сборки/анализа проекта и объем потребляемой памяти 200
5.3 Качество анализа 206
Заключение 211
Благодарности 213
Литература 214
Статьи автора в журналах, рекомендованных ВАК РФ 214
Другие публикации автора по теме диссертации (статьи, материалы конференций), свидетельства о регистрации программ 215
Цитируемая литература 216

Рекомендуем вам товары

99 000 UZS
Автор
Аничкин Антон Сергеевич
Количество страниц
Год
2018
99 000 UZS
Автор
Абрамский Михаил Михайлович
Количество страниц
Год
2019
99 000 UZS
Автор
Афанасьева Ирина Викторовна
Количество страниц
Год
2018
99 000 UZS
Автор
Мирошников Артём Игоревич
Количество страниц
Год
2019
Модули для Opencart 2, Опенкарт 3