Основные определения теории надежности

Автор работы: Пользователь скрыл имя, 03 Февраля 2011 в 17:52, лекция

Описание работы

Для количественных оценок надежности используют различные характеристики и параметры, относящиеся к событиям как появление отказа или случайной ошибки функционирования, что позволяет предупредить или устранить их.

Файлы: 1 файл

лекции_надежность.docx

— 347.64 Кб (Скачать файл)

    Диаграмма состояний:

    Запишем д.у. состояния для этой системы:

n–k(t) =lkPn–k(t) + mk–1Nm–k+1(t)        (10)

m–k(t) =mkPm–k(t) + lkPn–k(t)        (11)

Pm–k(0) = 0  k = 1, 2…         (12)

Pn(0) = 1            (13)

    Решение уравнений (10) и (11) можно получить используя  любой из методов численного интегрирования.

    После того как будут получены вероятности  всех состояний, неготовность системы  определится с помощью формулы:

U(t) = Pm–k(t)           (14)

    Т.к. вероятности зависят от kMAX, то при больших значениях kMAX можно получить величину U(t) близкую к истинной.

Модель  Елинского-Моранды.

    данная  модуль как и Шумана основана на допущении об экспоненциальном распределении  времени безотказной работы ПО. Предполагается, что частота появления ошибок ~ числу остаточных ошибок:

lУМ(xi) = KУМ[E0 – (i – 1)]         (15)

KУМ – коэффициент пропорциональности

xi – интервал времени м/ i и u(i-1) ошибкой

    С помощью (15) можно найти вероятность  безотказной работы:

P(ti) = exp[–KУМ(E0 – i + 1)ti]         (16)

    Среднее время безотказной работы:

Т0 = P(ti)dti =  (17)

Модель  Шика-Волвертона.

    Основа  модели – положение о том, что  интенсивность появления ошибок ~ не только количеству оставшихся в программе ошибок, но и времени, потраченному на отладку. 

    "–" рассмотренных моделей:

- при  неточном определении первоначального  числа ошибок в программе, интенсивность  отказов делается отрицательной;

- здесь  предполагается, что после обнаружения  ошибка ликвидируется и не  вносятся новые ошибки.

    В целях преодоления "–" была предложена модель, основанная на допущениях о том, что поток возникновения ситуаций, в которых возможен отказ, является Пуассоновским с параметром l. Однако, по мере обнаружения и исправления ошибок, отказы в этих ситуациях возникают с вероятностью <1. Другими словами, этот поток отказов представляется в виде разреженного потока, с переменным коэффициентом разряжения pi, i – номер отказа.

    В простейшем случае:

pi = 1 – (1 – pН)qi–1          (18)

где 0<q<1

pН = p1 – начальный коэффициент разряжения потока.

    Данная  модель подходит не только для прогнозирования  интенсивности следующего отказа, но и для прогнозирования параметра  потока отказов.

    Из (18) , что изображение параметра потока по Лапласу:

w*(S) =         (19)

    Приближенное  значение оригинала:

w(t) = (1–p1)l – ((1–p1)l)2(1–q)t + ((1–p1)l)3(1–q)(1–q2)t2/2!–...–(–1)n.((1–p1)l)n+1(1–q) ––…(1–qn)tn/n!

    с погрешностью не более:

Dw(t) = (–1)n+1((1–p)l)n+2(1–q)…(1–qn+1En+1)/(n+1)!     (20)

    Приведенные модели представляют интерес прежде всего для прогнозирования отказов  в процессе эксплуатации и отладки. Здесь значение параметров определяется в рабочем режиме.

Метод введения структурной избыточности в программе

    Т.к. надежность программ, которая м.б. достигнута технологическими методами, ограничена, вызвана необходимость  надежности программ за счет времени резервирования.

    Для этого готовятся 2 или несколько  версий программ для решения одной  задачи. Желательно, чтобы версии имели  существенные различия, т.е. основываться на различных алгоритмах или хотя бы д.б. выполнены различными программами.

      ошибки м.б. обнаружены  по расхождению результатов, которые  получены при одних и тах  же исходных данных по различным  версиям программ. Эти ошибки  м.б. обнаружены в ходе отладки  версий или при сравнении результатов.

    Существует  идея //-го (одновременного) или последовательного  во времени выполнения различных  версий программ непосредственно в  процессе эксплуатации. Если таких  версий 2, то принято говорить о  дуальном программировании.

    Если  обнаружено расхождение в результатах, необходимо определить по к-л дополнительным критериям, какой из результатов  правильный.

      при n-версионном программировании подготавливается n версий программ, и правильный результат определяется по мажоритарному признаку при помощи подходящих аппаратных или программных средств.

    Дуальное  и n-версионное программирование целесообразно использовать в том случае, если имеет место нагруженное резервирование вычислительной аппаратуры.

    Модифиционное дуальное программирование на ряду с  достаточно точной, но сложной основной программой, использует менее точную, но простую резервную программу. Если при одинаковых исходных данных результаты отличаются на величину > допустимой, делается предположение о том, что отказала основная программа. В качестве правильного результата принимается результат, полученный при помощи резервной программы.

      средняя погрешность работы 2-ух программ несколько  , но зато вероятность отказа .

    Обозначим погрешность I программы d1, а II – d2. Пусть вероятность отказа I программы – q1, II – q2. При независимости этих программ возможны следующие несовместные события:

  1. обе программы работают безотказно

p = 1 – q1 – q2 +q1q2

  1. откажет основная программа, тогда:

q01 = q1(1 – q2) = q1 – q1q2

  1. отказ резервной программы

q10 = q2(1 – q1) = q2 – q1q2

  1. откажут основная и резервная программы

q11 = q22  (погрешность d3)

    Следовательно, средняя погрешность не отказавшей системы из 2-х программ:

    В случае, когда имеется только основная программа: погрешность d1

                                                                вероятность отказа q1

Метод контрольных функций

    Наряду  с вычислительной функцией по иной программе определяется некоторая  функция, которая находится с основной, в некоторых соотношениях, которые называются контрольными соотношениями.

    Простейшим  примером применения контрольных соотношений  является вычисление функций sinx и cosx по отдельным соотношениям. 

Структурные методы тестирования программ

    Тестирование – проверка работы программы по результатам ее выполнения на специально подобранных наборах исходных данных или тестах.

    Существуют  следующие методы тестирования:

      1. полное
      2. выборочное
      3. структурное выборочное

    (3) основывается на разделении пространства  исходных данных на классы. Каждый  класс позволяет подтвердить  определенный свойства или работоспособность  отдельных элементов структуры  программы.

    Здесь основная задача: построение генератора тестовых наборов.

    Исходя  из тестируемой программы Т выбирается набор путей П в структуре  программы, который удовлетворяет  критериям К (критерий тестирования). Наиболее часто К основываются на структуре программы.

    Достаточно  простое требование может заключаться  в том, что выбранные пути должны перекрывать (задействовать) все операторы  или команды программы. Затем  генерируются ограничения О, которые  позволяют реализовать тот или  иной путь на графе программы.

    О преобразуются модулем ПВ в ограничения  к исходным данным. Тогда с помощью  алгоритма А генерируются тестовые наборы числовых значений исходных данных ТН, которые удовлетворяют отдельным ограничениям.

    Структура генератора тестов:

    

    Критерии  выбора путей на структуре программы  состоит в том, что все операторы  должны перекрываться хотя бы один раз.

    Здесь, тестирующиеся команды расположены  по порядку их следования в программе. Такое тестирование называется статическим. При этом тестируются не все возможные пути на графе программы и ошибки управления программой могут оставаться необнаруженными.

    ТЕСТИРОВАНИЕ  ВЕТВЕЙ.

    Заключается в том, что выбранные пути должны перекрывать все ветви структуры  программы и все разветвления (динамическое тестирование).

    Данный  подход гарантирует однократное  тестирование всех ветвей. Значит число ошибок возникает из-за неточностей при формулировке условий выхода из циклов предполагается вводить дополнительное требование, чтобы каждый цикл испытывался двумя тестами:

  1. привел бы к исполнению цикла с возвратом
  2. проходил бы цикл без возврата.

    ВЕРТИФИКАЦИЯ  ПРОГРАММ:

    - это доказательство их правильности  при помощи математических методов  доказательства теорем. Для этого  программа представляется в виде  последовательности ряда более  или менее простых утверждений,  доказательство которых не представляет  труда.

    СИМВОЛИЧЕСКОЕ ТЕСТИРОВАНИЕ

      В отличие от верификации, тестирование  заключается в проверке правильности  числовых результатов работы. Программы  при специально подобранных значениях  входных переменных (тестовых наборов).

    В некоторых случаях тестирование может производится символически: выполнение процедур, которые основаны на символических  входах (обозначение входных переменных, позволяющих выразить выходы программы  также в символическом виде).

Информация о работе Основные определения теории надежности