Похожие презентации:
Lektsia_4_ppsx (1)
1.
Исследованиепрограммного кода
на предмет ошибок
и отклонения от алгоритма
2.
Ревьюирование программныхпродуктов
- проведение сравнительного анализа
программных продуктов и средств
разработки с целью выявления
наилучшего решения согласно критериям,
определенным техническим заданием.
3.
Три ошибки программированияСинтаксические ошибки: ошибки,
возникающие из-за того, что не соблюдается
синтаксис языка.
Семантические ошибки: ошибки,
возникающие из-за неправильного
использования операторов программы.
Логические ошибки: ошибки, возникающие
из-за того, что не соблюдается спецификация.
4.
Ревьюирование и отладка кодаРевьюирование кода это исследование созданного программного
кода с использованием специализированных
программных средств с целью выявления
ошибок и отклонения от алгоритма.
Отладка, или debugging, —
это поиск (локализация), анализ и
устранение ошибок в программном
обеспечении, которые были найдены во время
тестирования.
5.
Отладка кода- процесс исполнения программы с целью
выявления ошибок;
- этап разработки компьютерной программы,
на котором обнаруживают, локализуют и
устраняют ошибки.
Чтобы понять, где возникла ошибка,
необходимо:
•узнавать текущие значения переменных;
•выяснять, по какому пути выполнялась
программа.
6.
Две взаимодополняющиетехнологии отладки
1. Использование отладчиков.
2. Журналирование.
7.
Отладчики— программы, которые включают в
себя пользовательский интерфейс для
пошагового выполнения программы:
оператор за оператором, функция за
функцией, с остановками на некоторых строках
исходного кода или при достижении
определённого условия.
8.
Журналирование-вывод отладочных сведений в файл.
Вывод текущего состояния программы с
помощью расположенных в критических точках
программы операторов вывода —
на экран, принтер, громкоговоритель или
в файл.
9.
Место отладки в циклеразработки программы
Типичный цикл разработки программы:
Программирование — внесение в программу
новой функциональности, исправление
существующих ошибок.
Тестирование (ручное или
автоматизированное) — обнаружение факта
ошибки.
Воспроизведение ошибки — выяснение
условий, при которых ошибка случилась.
Отладка — обнаружение причины ошибки.
10.
Инструменты отладкиОтладка часто требует высокой
квалификации и значительных ресурсов.
Способности программиста к отладке —
важный фактор в обнаружении источника
проблемы, но сложность отладки существенно
зависит от
•используемого языка
программирования и
•инструментов, в частности, отладчиков.
11.
ОтладчикОтладчик — это программный инструмент,
который позволяет программисту
•наблюдать за выполнением исследуемой
программы,
•останавливать и перезапускать её,
•прогонять в замедленном темпе,
•изменять значения в памяти и даже, в
некоторых случаях,
•возвращать назад по времени.
12.
Инструменты отладкиПрофилировщики позволят определить,
сколько времени выполняется тот или иной
участок кода.
Анализ покрытия позволяет выявить
неисполняемые участки кода.
API логгеры позволяют отследить
взаимодействие программы и Windows API.
13.
Инструменты отладкиДизассемблеры позволяют посмотреть
ассемблерный код исполняемого файла.
Снифферы помогут отследить сетевой
трафик, генерируемый программой.
Снифферы аппаратных интерфейсов
позволяют увидеть данные, которыми
обмениваются система и устройство.
Логи системы.
14.
Логи системыЛог (log) — это текстовый файл, куда
автоматически записывается важная
информация о работе системы или программы.
Логи сервера записывает программное
обеспечение, которое управляет внутренней
частью сайта или онлайн-системы.
Лог-файл — своеобразный журнал событий.
15.
ОтладкаИспользование языков программирования
высокого уровня обычно упрощает отладку.
Если такие языки содержат, например,
средства обработки исключений, то это
облегчает поиск источника проблемы.
16.
ОтладкаВ низкоуровневых языках ошибки могут
приводить к незаметным проблемам —
например, повреждениям памяти и утечкам
памяти.
Тогда бывает довольно трудно определить,
что стало первоначальной причиной ошибки.
В этих случаях могут потребоваться сложные
приёмы и средства отладки.
17.
Инструменты, снижающиепотребность в отладке
Контрактное программирование — чтобы
программист подтверждал другим путём, что
ему на выходе нужно именно такое поведение
программы. В языках, в которых контрактного
программирования нет, используется
самопроверка программы в ключевых точках.
Модульное тестирование — проверка
поведения программы по частям.
Статический анализ кода — проверка кода
на стандартные ошибки «по недосмотру».
18.
Инструменты, снижающиепотребность в отладке
Высокая культура программирования, в
частности,
•паттерны проектирования,
•соглашения об именовании и
•прозрачное поведение отдельных блоков
кода
— чтобы объявить себе и другим, каким
образом должна вести себя та или иная
функция.
Широкое использование проверенных
внешних библиотек.
19.
Безопасность программного кодаи отладка
В программном коде может быть так
называемое недокументированное поведение
— серьёзные ошибки, которые не проявляются
при нормальном ходе выполнения программы,
однако весьма опасны для безопасности всей
системы в случае целенаправленной атаки.
Чаще всего это результат ошибок программиста.
20.
Безопасность программного кодаи отладка
Методы:
Статический анализ кода: программа сканер
ищет последовательности в исходном тексте,
соответствующие небезопасным вызовам функций
и т. д.
Фактически идет сканирование исходного текста
программы на основе специальной базы правил,
которая содержит описание небезопасных образцов
кода.
21.
Безопасность программного кодаи отладка
Методы:
Фаззинг - процесс подачи на вход программы
случайных или некорректных данных и анализ
реакции программы.
Обратная инженерия (Reverse engineering):
независимые исследователи ищут уязвимости
и недокументированные возможности программы.
22.
Программные измерительныемониторы
23.
Программные измерительныемониторы
Монито́ р — интерактивная программа в
компьютерах, позволяющая осуществлять
управление компьютером на низком уровне:
•просмотр содержимого оперативной памяти
и регистров процессора,
•выполнение машинного кода,
•дизассемблирование,
•загрузку операционной системы и т. п.
24.
Программные измерительныемониторы
Измерительный прибор представляет собой
средство измерений, предназначенное для
выработки сигнала измерительной информации в
форме, доступной для непосредственного
восприятия наблюдателем.
Результаты измерений приборами выдаются
их отсчетными устройствами.
Последние подразделяют на шкальные,
цифровые и регистрирующие.
25.
Классификация измерительныхмониторов
26.
Программные измерительныемониторы
Измерительные мониторы (ИМ)
Средства, обеспечивающие регистрацию
событий и измерение параметров.
27.
Требования к измерительныммониторам
1. Минимизация искажений, вносимых в
выполнение программы и значения измеренных
параметров
Типы искажений:
- временные,
- пространственные,
- снижение производительности системы.
28.
Требования к измерительныммониторам
2. Обеспечение достаточной точности и
разрешающей способности
Точность
Разрешающая способность
3. Низкая стоимость, простота
установки и использования
29.
Типы измеряемых характеристикпрограммы
1) Полные или обобщенные характеристики
потребления ресурсов программой (время
выполнения, используемая память).
2) Коэффициент загрузки
ресурсов (утилизация) – отношение времени
потребления ресурса к общему времени
выполнения программы. В качестве ресурса
может выступать аппаратный или программный
компонент системы.
30.
Типы измеряемых характеристикпрограммы
3) Профили выполнения программы.
Основное назначение профилей – определение
•критических ресурсов, или
•критичных фрагментов программы по
потреблению ресурсов.
31.
Типы измеряемых характеристикпрограммы
4) Трассировочная запись. Измерение
множества пар
,
r i - значение i-го параметра,
tij - время регистрации.
Содержит хронологию выполнения, поэтому
является наиболее исчерпывающей
характеристикой.
32.
Аппаратные измерительныемониторы (АИМ)
Подключаются к точкам зондирования и
измеряют электрические сигналы,
соответствующие параметрам ресурсов.
Встроенные заводом-изготовителем, выполняют
фиксирование параметров в фиксированном
числе точек для настройки и тестирования
системы. Могут измерять параметры
программного обеспечения, расположенные в
памяти.
Более широко используются аппаратные
мониторы, подключаемые извне системы.
33.
Достоинства АИМ1) малый уровень искажений, вносимый в
работу системы при фиксации параметров;
2) высокая разрешающая способность по
времени и по событиям;
3) регистрация микрособытий;
4) возможность параллельного измерения
нескольких параметров;
5) возможность проведения измерений в
отладочном режиме при некорректно работающей
системе;
6) способность АИМ работать с разными
платформами и системами команд.
34.
Недостатки АИМ1) малая универсальность (гибкость);
2) сложность регистрации событий, связанных
с выполнением программ (макрособытий);
3) высокая стоимость.
35.
Гибридные измерительныемониторы (ГИМ)
Обычно программным способом
выполняется регистрация событий,
связанных с выполнением программ,
а аппаратным – параметры при
наступлении событий.
ГИМ бывают встроенные и автономные.
36.
Гибридные измерительныемониторы (ГИМ)
Встроенные отличаются микрокодом.
Микропрограммы служат для регистрации
событий и параметров. Работают быстрее
программных.
У автономных наличие измерительного
компьютера наряду с измеряемым. Можно
изменять программу измерений и по линиям
связи с измеряемой системы получать доступ к
измерению любых ресурсов.
37.
Программные измерительныемониторы
«Программный монитор» — это инструмент,
который выполняет такие функции, как
•настройка параметров,
•управление моделированием,
•отображение в реальном времени и
•запись данных в компьютерных системах .
38.
Программные измерительныемониторы
Программные измерительные мониторы
(ПИМ) - это совокупность команд или программ,
выполняемых исключительно с целью проведения
измерений параметров ресурсов.
ПИМ – это специальные программные
средства, под управлением которых производится
выполнение программы на том же устройстве, на
котором измеряемая программа и должна
выполняться.
При этом ПИМ собирает данные о ходе
выполнения программ и накапливает их в
памяти.
39.
Программные измерительныемониторы
Встроенные ПИМ включаются в состав ОС на
этапе генерации.
Используются для регистрации фиксированного
набора параметров при фиксированном объеме
событий. Обычно это журналы регистрации
событий. Их задача – определить потребление
ресурсов той или иной программой.
40.
Недостатки ПИМ1)нет программ автоматического анализа их
протоколов;
2) низкая точность сопоставления ресурса и
задания, которое его потребляет;
3) нет в результатах измерений желаемого
уровня детализации (нет структуры потребления
ресурсов).
41.
Автономные ПИМБольшинство современных мониторов
специализированные и являются
профилировщиками (анализатор кода
выполнения программ).
Выполняется
•трассировка путей выполнения программ,
•регистрация времени выполнения
фрагментов,
•определение «узких мест» и
•контроль покрытия маршрутов выполнения
программ.
42.
Общие особенностипрограммных мониторов
1) Механизм активации измерений:
- команды-ловушки (создается прерывание с
помощью которого управление передается
монитору);
- метод трассировки (вызов монитора после
выполнения каждого оператора программы,
большие накладные расходы);
- выборочное семплирование, прерывание по
таймеру.
43.
Общие особенностипрограммных мониторов
2);
2) Буферизация измеряемых данных
- размер буфера;
- количество буферов (минимальное количество
-переполнение буфера.
3) Язык разработки монитора.
4) Приоритет выполнения монитора
(обычно низкий).