- •Основные понятия мпо.
- •Основные цели:
- •Виды метрик и шкал, используемых при оценке:
- •Критерии оценки качества программ
- •Способ формирования зависит от этапа:
- •Классификация видов сложности пп
- •Метрики Холстеда.
- •Основные измеряемые параметры:
- •Дополнительные параметры:
- •6 Марта 2007 года
- •Методы и средства измерения характеристик программ
- •Необходимые условия применения измерительных методов:
- •Общая схема проведения измерений.
- •2 Основных способа регистрации параметров программы:
- •Измерительные мониторы (им)
- •Требования к им:
- •Классификации им.
- •Типы измеряемых характеристик программы.
- •Аппаратные измерительные мониторы (аим)
- •Достоинства аим:
- •Недостатки аим:
- •Гибридные измерительные мониторы (гим)
- •Программные измерительные мониторы (пим)
- •Автономные пим
- •Общие особенности программных мониторов.
- •Проблемы, возникающие при построении мониторов
- •Общая схема использования пим
- •Способы расстановки контрольных точек.
- •Основные способы мониторинга
- •Сопоставление возможностей аим и пим.
- •Структурный анализ качества программных продуктов
- •Маршруты делятся на:
- •Анализ сложности программных средств с модульной организацией
- •Свойства модульной организации
- •Понятие корректности программ
- •2 Метода проверки корректности:
- •Критерии корректности:
- •Корректность программ:
- •Эталоны и методы проверки корректности
- •Способы формирования эталонных тестов
- •Понятие верификации программы
- •Основные задачи анализа корректности при верификации
- •Тестирование программ
- •Особенности
- •Основные принципы тестирования
2 Метода проверки корректности:
1) Верификация – установление соответствия между программой и ее спецификацией. Верификация проверяет, что программа разработана правильно
2) Валидация – установление соответствия между функциями программы и ее целевым назначением. Валидация проверяет, что разработана правильная программа.
Критерии корректности:
1) Функциональная оценка – определяется предметной областью
2) Конструктивная оценка – определяется общими свойствами программы.
Корректность программ:
- корректность текстов
- корректность модулей
- корректность данных
- корректность комплексов программ
Корректность текстов учитывает только структурную проверку корректности
Корректность модулей учитывает обе:
1) Структурная – правильность организации модуля с точки зрения технологий, применяемых в организации или языке
2) Функциональная – может проверяться тремя способами:
- детерминированная проверка – фиксированный набор данных, фиксированный набор результатов
- стохастическая – входные данные заданы случайными величинами с заданными законами распределения, проверяется соответствие результатов с требованиями (математическое ожидание, дисперсия) и корреляция между результатами
- динамическая – для заданного порядка входных данных проверяется заданный порядок формирования выходных данных
Корректность данных
1) Структурная – правильность организации структур данных в программе
2) Функциональная – проверяет диапазоны изменения значений данных, соответствие полей структур данных типам задаваемых значений
Корректность комплексов программ
1) Конструктивная – корректность взаимоотношения компонент комплекса
2) Функциональная – соответствие функций комплекса функциям спецификации.
Эталоны и методы проверки корректности
Средства проверки корректности | ||
Эталоны |
|
Методы проверки |
1) Формализованные правила: - описания алгоритмов - описания данных - описания модулей - описания комплексов |
|
1) - синтаксический контроль - семантический контроль - структурный контроль |
2) Программные спецификации - модулей - данных - взаимодействия модулей |
|
2) - контроль полноты спецификации (валидация) - верификация |
3) Тесты - статические - динамические |
|
3) - просмотр / инспекция кода - структурный и функциональный контроль |
Способы формирования эталонных тестов
1) Применение аналитических выражений
2) Использование моделирования
3) Использование прежних вариантов тестирования подобных программ
Понятие верификации программы
Верификация – аналитическое исследование корректности программы по ее тексту на основе формально-логической системы установления соответствия между программой и ее спецификацией с помощью аппарата исчисления предикатов первого порядка. В конечном счете это вычисление истинности предиката от двух аргументов: программы и ее спецификации.
Для упрощения верификации разделяют две составляющих выполнения программы:
1) частичную корректность – удовлетворение входной и выходной спецификациям программы при условии ее успешно завершения
2) проверка завершенности программы – достижение выхода при заданных спецификацией входных данных
Основные задачи анализа корректности при верификации
1) частичная корректность при условии завершенности
2) частичная некорректность при условии завершенности
3) завершенность
4) незавершенность
5) тотальная корректность – частичная корректность и завершенность
6) некорректность – частичная некорректность или незавершенность
START P(x) |
Выходу оператора приписывают предусловие P(x), это допустимое множество значений входных данных |
STOP Q(x, f(x)) |
Оператор, обеспечивающий завершение, входу которого приписывается выходной предикат, или постусловие, где f(x) – целевая функция выполнения программы (которая устанавливает связь между входными и выходными данными) |
Pgrm |
Спецификация, которая задает набор индуктивных объявлений для каждой точки графа разреза управления |
1) Свойство частичной корректности
- предикат завершенности программы
2) Свойство завершенности
3) Тотальная корректность
Есть ограничения на форму представления программ и операторов, для которых вычисляются предикаты.
Проверка 6 свойств корректности программ с определенными ограничениями осуществляется методом индуктивных утверждений, предложенных Флойдом.