
- •1.Программное обеспечение
- •Виды программ
- •2.Стадии жизненного цикла программного обеспечения
- •2.1.Основные процессы жизненного цикла программного обеспечения
- •2.2.Вспомогательные процессы жизненного цикла программного обеспечения
- •2.3.Организационные процессы жизненного цикла программного обеспечения
- •3.Основные понятия и показатели надежности программных средств
- •3.1.Показатели качества и надежности программного обеспечения
- •3.2.Дестабилизирующие факторы и методы обеспечения надежности функционирования программных средств
- •3.2.1.Модель факторов, определяющих надежность программных средств
- •3.2.2.Методы обеспечения надежности программных средств
- •Предупреждение ошибок
- •Обнаружение ошибок
- •Исправление ошибок
- •Устойчивость к ошибкам
- •Обработка сбоев аппаратуры
- •3.3.Модели надежности программного обеспечения
- •3.3.1.Аналитические модели надежности
- •Динамические модели надежности Модель Шумана
- •Модель La Padula
- •Модель Джелинского – Моранды
- •Модель Шика – Волвертона
- •Модель Мусса
- •Модель переходных вероятностей
- •Статические модели надежности
- •Модель Миллса
- •Модель Липова
- •Простая интуитивная модель
- •Модель Коркорэна
- •Модель Нельсона
- •3.3.2.Эмпирические модели надежности
- •Модель сложности
- •Модель, определяющая время доводки программ
- •3.3.3.Особенности обеспечения надежности функционирования импортных программных средств
- •4.Оценка надежности комплексов аппаратно-программных средств с учетом характеристик программного и информационного обеспечения
- •4.1.Постановка задачи
- •4.2.Общая схема проектной оценки надежности программного комплекса
- •4.2.1.Расчет исходного числа дефектов
- •4.2.2.Расчет остаточного числа дефектов после автономной отладки
- •4.2.3.Расчет остаточного числа дефектов после комплексной отладки
- •4.2.4.Оценка вероятности проявления дефекта при однократном выполнении фсо
- •4.2.5.Оценка вероятности проявления дефектов при многократном выполнении фсо
- •4.2.6.Оценка характеристик потоков инициирующих событий
- •4.2.7.Оценка показателей надежности системы с учетом случайного потока инициирующих событий
- •4.3.Факторные модели
- •4.3.1.Модели распределения числа дефектов в алгоритмах и базах данных
- •4.3.2.Модели распределения дефектов в базах данных
- •4.3.3.Модели эффективности отладки
- •Условная вероятность обнаружения дефекта в км r-го ранга
- •Безусловная вероятность обнаружения дефекта
- •Среднее остаточное число дефектов
- •4.3.4.Модели потоков инициирующих событий
- •4.4.Проектная оценка надежности программного комплекса при выполнении фсо
- •4.4.1.Вероятность проявления дефекта при однократном выполнении фсо
- •4.4.2.Вероятность проявления дефекта при многократном выполнении фсо
- •4.4.3.Вероятность безотказной работы пк в режиме мкцп при случайном потоке инициирующих событий
- •4.4.4.Учет процедур парирования ошибок
- •4.5.Пример проектной оценки надежности программного комплекса
- •4.5.1.Краткое описание аппаратно-программного комплекса
- •4.5.2.Оценка исходного числа дефектов
- •Исходное число дефектов по секциям и алгоритмам
- •Исходное число дефектов в секциях ввода и вывода
- •4.5.3.Оценка числа дефектов фпо по подсистемам до автономной отладки
- •Состав подсистем фпо
- •Исходное число дефектов в подсистемах до автономной отладки
- •4.5.4.Оценка остаточного числа дефектов после автономной отладки
- •Среднее остаточное число дефектов в секциях после ао
- •Результаты автономной отладки (вариант 1)
- •Длина тестовой последовательности после m-й серии
- •Зависимость эффективности ао от трудоемкости
- •4.5.5.Оценка остаточного числа дефектов после комплексной отладки
- •Результаты комплексной отладки
- •Коэффициент полноты отладки км различных рангов
- •4.5.6.Оценка вероятности проявления дефекта при однократном и многократном выполнении фсо после ко
- •Распределение вероятностей проявления дефекта по км
- •Вероятность проявления дефекта при однократном выполнении фсо
- •Вероятность проявления дефектов при многократном выполнении фсо
- •Вероятность проявления дефектов бд до отладки
- •Условная вероятность проявления дефектов бд после автономной отладки
- •Безусловная вероятность проявления дефектов бд после автономной отладки
- •Условная вероятность проявления дефектов бд после комплексной отладки
- •Безусловная вероятность проявления дефектов бд после комплексной отладки
- •Вероятность отказа фпо и ио при однократном выполнении фсо
- •4.5.7.Поток инициирующих событий
- •4.5.8.Вероятность безотказной работы пк
- •Интенсивность отказов подсистем
- •Показатели надежности подсистем
- •Показатели надежности подсистем с учетом парирования ошибок в ио
- •4.6.Оценка надежности программного комплекса по результатам отладки и нормальной эксплуатации
- •Экспоненциальная модель Шумана
- •Экспоненциальная модель Джелинского−Моранды
- •Геометрическая модель Моранды
- •Модель Шика−Волвертона
- •Модель Липова
- •Модель Мусы−Гамильтона
- •Вейбулловская модель (модель Сукерта)
- •Модель Уолла−Фергюссоиа (степенная модель)
- •Структурная модель Нельсона
- •Структурная модель роста надежности
- •Гиперболическая модель роста надежности
- •5.Литература
Простая интуитивная модель
Использование этой модели предполагает проведение тестирования двумя группами программистов (или двумя программистами в зависимости от величины программы) независимо друг от друга, использующими независимые тестовые наборы. В процессе тестирования каждая из групп фиксирует все найденные ею ошибки. При оценке числа оставшихся в программе ошибок результаты тестирования обеих групп собираются и сравниваются.
Получается, что первая
группа обнаружила
ошибок,
вторая −
,
а
−
это ошибки, обнаруженные обеими группами.
Если обозначить через N неизвестное количество ошибок, присутствовавших в программе до начала тестирования, то можно эффективность тестирования каждой из групп определить как
Предполагая, что возможность обнаружения всех ошибок одинакова для обеих групп, можно допустить, что если первая группа обнаружила определенное количество всех ошибок, она могла бы определить то же количество любого случайным образом выбранного подмножества. В частности, можно допустить:
Из формулы (18)
подставив
в (19), получим:
Модель Коркорэна
Модель Коркорэна относится
к статическим моделям надежности ПО,
так как в ней не используются параметры
времени тестирования и учитывается
только результат N
испытаний, в которых
выявлено
ошибок
-го
типа. Модель использует изменяющиеся
вероятности отказов для различных типов
ошибок.
В отличие от двух рассмотренных выше статических моделей, по модели Коркорэна оценивается вероятность безотказного выполнения программы на момент оценки:
где
− число безотказных выполнений программы;
− общее число прогонов;
К − априори известное число типов.
− вероятность выявления при тестировании
ошибки
-го
типа.
В этой модели вероятность
должна
оцениваться на основе априорной
информации или данных предшествующего
периода функционирования однотипных
программных средств.
Модель Нельсона
Данная модель при расчете надежности ПО учитывает вероятность выбора определенного тестового набора для очередного выполнения программы.
Предполагается, что область
данных, необходимых для выполнения
тестирования программного обеспечения,
разделяется на К
взаимоисключающих
подобластей
.
Пусть
− вероятность того, что набор данных
будет выбран для
очередного выполнения программы.
Предполагая, что к моменту оценки
надежности было выполнено
прогонов
программы на
наборе данных и из них
количество
прогонов закончилось отказом, надежность
ПО в этом случае равна:
На практике вероятность
выбора очередного набора данных для
прогона
определяется
путем разбиения всего множества значений
входных данных на подмножества и
нахождения вероятностей того, что
выбранный для очередного прогона набор
данных будет принадлежать конкретному
подмножеству. Определение этих
вероятностей основано на эмпирической
оценке вероятности появления тех или
иных входов в реальных условиях
функционирования.
3.3.2.Эмпирические модели надежности
Эмпирические модели в основном базируются на анализе структурных особенностей программного обеспечения (или программы). Как указывалось ранее, эмпирические модели часто не дают конечных результатов показателей надежности, однако их использование на этапе проектирования ПО полезно для прогнозирования требующихся ресурсов тестирования, уточнения плановых сроков завершения проекта и т.д.