- •Качество и надежность программного обеспечения
- •Лекция 1. Введение. Основные стандарты и термины по качеству программного обеспечения. Метрики и критерии качества программных продуктов. Составляющие качества программных продуктов.
- •Общие термины
- •Лекция 2. Классификация видов сложности программных продуктов. Метрические характеристики программ по м.Холстеду
- •Оценивание качества разработки программ на основе метрик Холстеда. Измеримые свойства алгоритмов
- •Длина программы
- •4. Объем программы
- •Потенциальный объем V*
- •Лекция 3. Уровень программ. Интеллектуальное содержание программы.
- •1. Уровень программы
- •2. Вывод уравнения уровня программы
- •3. Определение интеллектуального содержания программ
- •Лекция 4. Работа в программировании. Уровни языков программирования. Метрика числа ошибок в программе.
- •5 S 20 в сек
- •Значение уровня языка
- •Лекция 5. Метрики структурной сложности программ.
- •Где pi – количество вершин ветвления в I-том маршруте без учета последней вершины
- •M5 1 – 3 – 4 – 6 – 8 – 14 независимые
- •Лекция 6. Методы и средства измерения характеристик программ. Аппаратные измерительные мониторы.
- •Лекция 7. Программные измерительные мониторы.
- •Лекция 8. Понятие корректности программ.
- •II. Эталоны и методы проверки корректности.
- •Лекция 9. Аналитическая проверка корректности программ. Верификация программ.
- •Invk (x1, … , xn),
- •Invt1 (x1, … , xn): p ; invt2 (x1, … , xn): q ; invt3 (x1, … , xn) ; … ,
- •U: invr(x1, … , xn) u0
- •Лекция 10. Тестирование программных продуктов
- •1. Основные понятия процесса тестирования
- •2. Объекты тестирования
- •3. Категории тестов для различных объектов тестирования
- •Лекция 11. Виды, критерии и методы тестирования. Методы структурного тестирования программ
- •1. Тестирование на основе потока управления
- •2. Тестирование на основе потока данных
- •Лекция 12. Методы функционального тестирование программных продуктов
- •1. Метод эквивалентного разбиения
- •1.1. Выделение классов эквивалентности
- •1.2. Построение теста
- •2. Анализ граничных значений
- •3. Метод функциональных диаграмм
- •4. Метод, основанный на предположении об ошибке
- •Лекция 13. Основные показатели надежности программного обеспечения (по). Математические модели оценки надежности по.
- •13.1. Основные показатели надежности программного обеспечения (по).
- •13.2. Математические модели оценки надежности по.
- •Модель Джелинского-Моранды.
- •Модель Шика-Уолвертона.
- •Лекция 14. Модели, основанные на методе "посева" и разметки ошибок, и модели на основе учета структуры входных данных
- •Модель Нельсона. Применение последовательного анализа Вальда для снижения количества прогонов программы.
- •Лекция 15. Методы повышения надежности программ и оценка эффективности их применения.
- •15.1 Влияние избыточности на повышение надежности программ
- •Эффективность применения избыточности для повышения надежности комплексов программ
- •Влияние оперативного контроля и восстановления на производительность эвм.
- •Методы программного восстановления
- •Методы обеспечения надежности комплексов программ при сопровождении
- •Литература
Лекция 15. Методы повышения надежности программ и оценка эффективности их применения.
15.1 Влияние избыточности на повышение надежности программ
Так как в программах нет необходимости “ремонта” компонент с участием человека то можно добиваться высокой автоматизации программного восстановления Главной задачей становится восстановление за время, не превышающее порогового значения между сбоем и отказом Автоматизируя процесс и сокращая время восстановления можно преобразовать отказы в сбои и тем самым улучшить показатели надежности функционирования системы
Комплексы программ в процессе функционирования находятся под воздействием шумов-возмущений различных типов Для снижения их влияния на результаты следует применять фильтры позволяющие обнаруживать искажения устранять или уменьшать их вредные последствия Разнообразие видов искажений приводит к необходимости построения систем фильтров каждый из которых способен селектировать некоторые виды искажений
Для реализации фильтров обеспечивающих повышение надежности функционирования программ и защиту вычислительного процесса и информации программно-алгоритмическими методами используется программная информационная и временная избыточность Основная задача ввода избыточности состоит в исключении возможности аварийных последствий от возмущений соответствующих отказу системы Любые аномалии при исполнении программ необходимо сводить до уровня сбоя путем быстрого восстановления
Временная избыточность состоит в использовании некоторой части производительности ЭВМ для контроля исполнения программ и восстановления вычислительного процесса Величина временной избыточности зависит от требований к надежности функционирования системы и находится в пределах от 5-10% производительности однопроцессорной ЭВМ до трех-четырех кратного дублирования производительности машины Временная избыточность используется на обнаружение искажений их диагностику и на реализацию операций восстановления На это требуется в общем случае небольшой интервал времени который выделяется либо за счет резерва либо за счет сокращения времени решения функциональных задач
Информационная избыточность состоит в дублировании накопленных исходных и промежуточных данных обрабатываемых комплексом программ Избыточность используется для сохранения достоверности данных которые в наибольшей степени влияют на нормальное функционирование программ или требуют значительного времени восстановления Для менее важных данных информационная избыточность используется в виде помехозащитных кодов позволяющих только обнаружить искажение
Программная избыточность используется для контроля и обеспечения достоверности наиболее важных решений по управлению и обработке информации Она заключается в применении нескольких вариантов программ различающихся методами решения задачи или программной реализацией одного и того же метода Программная избыточность необходима также для реализации программ контроля и восстановления данных с использованием информационной избыточности и для функционирования всех средств защит использующих временную избыточность