- •Основные понятия мпо.
- •Основные цели:
- •Виды метрик и шкал, используемых при оценке:
- •Критерии оценки качества программ
- •Способ формирования зависит от этапа:
- •Классификация видов сложности пп
- •Метрики Холстеда.
- •Основные измеряемые параметры:
- •Дополнительные параметры:
- •6 Марта 2007 года
- •Методы и средства измерения характеристик программ
- •Необходимые условия применения измерительных методов:
- •Общая схема проведения измерений.
- •2 Основных способа регистрации параметров программы:
- •Измерительные мониторы (им)
- •Требования к им:
- •Классификации им.
- •Типы измеряемых характеристик программы.
- •Аппаратные измерительные мониторы (аим)
- •Достоинства аим:
- •Недостатки аим:
- •Гибридные измерительные мониторы (гим)
- •Программные измерительные мониторы (пим)
- •Автономные пим
- •Общие особенности программных мониторов.
- •Проблемы, возникающие при построении мониторов
- •Общая схема использования пим
- •Способы расстановки контрольных точек.
- •Основные способы мониторинга
- •Сопоставление возможностей аим и пим.
- •Структурный анализ качества программных продуктов
- •Маршруты делятся на:
- •Анализ сложности программных средств с модульной организацией
- •Свойства модульной организации
- •Понятие корректности программ
- •2 Метода проверки корректности:
- •Критерии корректности:
- •Корректность программ:
- •Эталоны и методы проверки корректности
- •Способы формирования эталонных тестов
- •Понятие верификации программы
- •Основные задачи анализа корректности при верификации
- •Тестирование программ
- •Особенности
- •Основные принципы тестирования
Автономные пим
Универсальные: GTF OS-360, УСТ (универсальное средство трассировки) ОС ЕС – это монитор для настройки ОС по внутренним событиям системы. Может настраиваться на любое событие.
Большинство современных мониторов специализированные и являются профилировщиками (анализатор кода выполнения программ). Выполняется трассировка путей выполнения программ, регистрация времени выполнения фрагментов, определение «узких мест» и контроль покрытия маршрутов выполнения программ.
Известные: MSDOS – Turbo Profiler, Windows – Intel VTune, AMD Code Analyst, VC++ profiler, Jprofiler – специализированные и серийные.
Уникальные профилировщики (для ограниченного числа заданных событий): Sampler
Общие особенности программных мониторов.
1) Механизм активации измерений:
- команды-ловушки (создается прерывание с помощью которого управление передается монитору)
- метод трассировки (вызов монитора после выполнения каждого оператора программы, большие накладные расходы)
- выборочное сэмплирование, прерывание по таймеру
2) Буферизация измеряемых данных
- размер буфера
- количество буферов (минимальное количество 2)
- переполнение буфера
3) Язык разработки монитора
4) Приоритет выполнения монитора (обычно низкий)
Проблемы, возникающие при построении мониторов
Проблемы «в малом» - связанные с профилированием небольших фрагментов программ
1) наличие конвейеризации
2) точность измерений
- системный таймер
- TSC (Time Stamp Counter)
Используя команду RDTSC можно прочитать значение (количество тактов процессора, прошедших с момента включения)
Но RDTSC – неупорядоченная команда, т.е. неизвестно, когда она будет выполнена
Обычно используют:
xor eax, eax
cpupid ;упорядоченная команда
rdtsc
mov clock, eax
... ;измеряемый фрагмент
xor eax, eax
cpupid
rdtsc
sub eax, clock
Проблемы «в большом»
1) Непостоянство времени выполнения при различных прогонах (из-за многозадачности ОС)
Путь решения – выполнять множество прогонов (10-15)
- выбрать минимальное время
- прогоны делятся на 3 группы. Отбрасывается 1/3 минимальных времен, 1/3 максимальных времен, оставшаяся 1/3 усредняется
2) Проблемы второго прогона (много необходимой информации для выполнения программы же подготовлено)
- если функция выполняется многократно, то последующие прогоны считаются более реальными
- если функция выполняется однократно, то используется только первый прогон
Общая схема использования пим
КТ – контрольная точка
ПП - подпрограмма
Блок подготовки – создание структур данных для размещения результатов измерений, расстановка контрольных точек (программных зондов)
Измерительный блок – совокупность измерительных подпрограмм, которые выполняют измерение набора параметров.
Способы расстановки контрольных точек.
По месту установки:
1) в исходном коде
2) в объектном модуле
3) в загрузочном модуле
4) в среде ОС
По способу установки:
1) вручную
2) автоматически
При расстановке вручную недостаток: зависимость от языка программирования
Расстановка для загрузочного модуля (не зависит от зыка программирования):
1) сбор измерения по прерываниям от таймера
2) полная интерпретация (ретрансляция) модуля с выполнением измерений при выполнении каждой команды или оператора
3) размещение контрольных точек в помеченных функциональных участках программы путем изъятия и сохранения фрагмента программы в стеке, размещением программы обработки контрольной точки, и последующего восстановления фрагмента программы