
- •Проблемы надежности по
- •Направления исследований в вопросе надежности по
- •Основные типы комплексов программ
- •Факторы, позволяющие анализировать показатели надежности программ 2-го и 3-го типов
- •Взаимосвязь надежностных характеристик по и аппаратуры
- •Факторы надежности аппаратных средств
- •Проблемы эталонов
- •Основные этапы разработки по
- •Модель перевода входной информации в выходную
- •Количественные характеристики надежности
- •Критерии надежности
- •Характеристики по
- •Испытания
- •Основные параметры персонала
- •Цель анализа программных ошибок при сертификации и оценке надежности по
- •Извещения об ошибке
- •Основные задачи в области надежности по
- •Количественные характеристики надежности по
- •Классификация ошибок по
- •Где произошла ошибка?
- •На что похожа ошибка?
- •Как была сделана ошибка?
- •Когда была сделана ошибка?
- •Почему произошла ошибка?
- •Модели надежности по Классификация моделей надежности по
- •Экспоненциальная модель (модель Шумана)
- •Модель Джелинского-Моранда
- •Статистическая модель Миллса
- •Простейшие интуитивные (эвристические) модели
- •Методы тестирования
- •Восходящее тестирование
- •Нисходящее тестирование (нисходящая разработка)
- •Модифицированный нисходящий метод
- •Метод большого скачка
- •Метод «сэндвича»
- •М одифицированные метод «сэндвича»
Модель Джелинского-Моранда
Модель с дискретным убыванием интенсивности отказов. В этой модели предполагается, что интенсивность ошибок описывается кусочно-постоянной функцией, пропорциональной числу не устраненных ошибок. Т.е. предполагается, что интенсивность отказов постоянна до обнаружения и исправления ошибки, после чего она опять становится постоянной, но с другим, меньшим, значением. При этом предполагается, что между и числом оставшихся в программе ошибок существует прямая зависимость
M – неизвестное первоначальное число ошибок
i – число обнаруженных ошибок, зависящих от времени t
k – константа
Частота
обнаружения i-ой
ошибки
задается соотношением
Значения неизвестных параметров k и M может быть оценено на основе последовательности наблюдений интервалов между моментами обнаружения ошибок по методу максимального правдоподобия.
Статистическая модель Миллса
Эту модель можно использовать для сертификации программных средств.
В модели не используются предположения о поведении функции риска . Эта модель строится на твердом статистическом фундаменте.
Сначала программа «засоряется» некоторым количеством известных ошибок. Эти ошибки вносятся в программу случайным образом, а затем делается предположение, что для ее собственных и внесенных ошибок вероятность обнаружения одинакова и зависит только от их количества. Тестируя программу в течении некоторого времени и отсортировывая собственные и внесенные ошибки можно оценить N – первоначальное число ошибок в программе.
Предположим, что в программу было внесено S ошибок. Пусть при тестировании обнаружено (n+V) ошибок.
n – число собственных ошибок
V – число внесенных ошибок
Тогда оценка для N по методу максимального правдоподобия будет следующей
В действительности N можно оценивать после каждой ошибки. Миллс предлагает во время всего периода тестирования отмечать на графике число найденных ошибок и текущие оценки для N.
Вторая часть модели связана с выдвижением и проверкой гипотез о N.
Примем, что программе имеется не более
k собственных ошибок
и внесем в нее еще S
ошибок. Теперь
программа тестируется, пока не будут
обнаружены все внесенные ошибки. Причем
подсчитывается число обнаруженных
собственных ошибок n.
Уровень значимости С вычисляется
по формуле
С – мера доверия к модели – вероятность того, что модель будет правильно отклонять ложные предположения.
Формулы для N и C образуют полезную модель ошибок.
Минусы модели
С нельзя предсказать до тех пор, пока не будут обнаружены все внесенные ошибки, это может не произойти до самого конца этапа тестирования.
Модификация формулы для С, если не все ошибки обнаружены:
j – найденные внесенные ошибки, j < S
Еще один график, который полезно строить во время тестирования – это текущее значение верхней границы k для некого доверительного уровня.
Модель математически проста и интуитивно привлекательна. Легко представить программу внесения ошибок, которая случайным образом выбирает модуль и вносит логические ошибки, изменяя или убирая операторы. Природа внесения ошибок должна оставаться в тайне, но все их следует регистрировать с целью последующего деления на собственные и несобственные.
Процесс внесения ошибок является самым слабым местом модели, поскольку предполагается, что для собственных и внесенных ошибок вероятность обнаружения одинакова, но неизвестна. Отсюда следует, что внесенные ошибки должны быть типичными, но на сегодня непонятно какими именно они должны быть. Однако по сравнению с проблемами других моделей эта проблема кажется не очень сложной и разрешимой.