- •Основные понятия мпо.
- •Основные цели:
- •Виды метрик и шкал, используемых при оценке:
- •Критерии оценки качества программ
- •Способ формирования зависит от этапа:
- •Классификация видов сложности пп
- •Метрики Холстеда.
- •Основные измеряемые параметры:
- •Дополнительные параметры:
- •6 Марта 2007 года
- •Методы и средства измерения характеристик программ
- •Необходимые условия применения измерительных методов:
- •Общая схема проведения измерений.
- •2 Основных способа регистрации параметров программы:
- •Измерительные мониторы (им)
- •Требования к им:
- •Классификации им.
- •Типы измеряемых характеристик программы.
- •Аппаратные измерительные мониторы (аим)
- •Достоинства аим:
- •Недостатки аим:
- •Гибридные измерительные мониторы (гим)
- •Программные измерительные мониторы (пим)
- •Автономные пим
- •Общие особенности программных мониторов.
- •Проблемы, возникающие при построении мониторов
- •Общая схема использования пим
- •Способы расстановки контрольных точек.
- •Основные способы мониторинга
- •Сопоставление возможностей аим и пим.
- •Структурный анализ качества программных продуктов
- •Маршруты делятся на:
- •Анализ сложности программных средств с модульной организацией
- •Свойства модульной организации
- •Понятие корректности программ
- •2 Метода проверки корректности:
- •Критерии корректности:
- •Корректность программ:
- •Эталоны и методы проверки корректности
- •Способы формирования эталонных тестов
- •Понятие верификации программы
- •Основные задачи анализа корректности при верификации
- •Тестирование программ
- •Особенности
- •Основные принципы тестирования
Анализ сложности программных средств с модульной организацией
Модульность – свойство программной системы, обусловленное ее декомпозиций на ряд внутренне связанных и слабо зависящих друг от друга компонент, называемых модулями. Свойство, позволяющее реализовать сколь угодно сложные системы.
Сложность программы
Время разработки
В этом соотношении не учитывается интерфейс между модулями.
Модульная организация должна удовлетворять принципу информационной закрытости – все модули независимы, обмен осуществляется только той информацией, которая необходима для их работы; доступ к внутренним данным модуля запрещен или ограничен.
Свойства модульной организации
1) Связность модуля – мера зависимости внутренних частей модуля друг от друга. Чем выше связность, тем более модуль независим и лучше спроектирован. Связность элементов модуля делится на несколько уровней, характеризуемых силой связности (СС):
1) СС=0. Связность по совпадению – в модуле отсутствуют какие-либо связи и его элементы объединены случайно
2) СС=1. Логическая связность – модуль составлен из функционально подобных элементов, выполнение которых никак не упорядочено
3) СС=3. Временная связность – в состав модуля включены элементы, которые одновременно должны использоваться в некоторый отрезок времени выполнения программы. Недостаток: такие модули сильно чувствительны к внесению изменений и достаточно сложна их связь с другими модулями
4) СС=5. Процедурная связность – элементы модуля независимы по данным, но зависимы по порядку выполнения
5) СС=7. Коммутативная связность – части модуля работают с одной структурой данных, но обращаются к ней в произвольном порядке
6) СС=9. Информационная связность – выходные данные одной части модуля являются входными данными другой части, выполняемой следующей по порядку
7) СС=10. Функциональная связность – все элементы модуля используются для реализации одной функции
Модули, спроектированные по 5-7 – «черные ящики», по 1-4 – «белые ящики», 4 – граница.
2) Сцепление модулей друг с другом – мера взаимозависимости модулей по данным или управлению. Внешняя характеристика. В хорошо спроектированной программе сцепление должно быть как можно меньше.
1) СЦ=1. По данным – модули обмениваются скалярными параметрами
2) СЦ=3. По образцу – параметрами, которыми обмениваются модули являются структурами данных
3) СЦ=4. По управлению – один модуль управляет работой другого модуля с помощью специальных данных: флагов и переключателей
4) СЦ=5. По внешним ссылкам – модули ссылаются на некоторые глобальные скалярные элементы данных
5) СЦ=7. По общей области – модули ссылаются на глобальную структуру данных
6) СЦ=9. По содержанию – в одном модуле имеется ссылка на код другого модуля не через точку входа
Оценка сложности
- составляющая размерной сложности модуля
1 – число входов модуля
2 – число структур данных, которое использует модуль
3 – количество вызовов других модулей из данного
4 – количество структур данных, обновляемых данным модулем
Понятие корректности программ
Под корректностью обычно понимается:
1) соответствие программы некоторому эталону или совокупности эталонных правил. Достаточно полным эталоном считается программная спецификация
2) отсутствие ошибок в программе по отношению к цели ее разработки
Корректность должна обеспечиваться на допустимых наборах данных.
Надежность характеризуется устойчивостью к недопустимым наборам данных.
Корректность – статическое свойство, проверка на корректность может не требовать ее выполнения