- м.б. определена как свойство программы, которое выражается в выполнении заданных функций в заданных условиях и на заданной вычислительной машине. Отказ ПО обусловлен несоответствием ПО поставленным задачам. Несоответствие может возникнуть по 2 причинам:
1. разработчиком нарушена спецификация
2. спецификация является неточной
Т.к. не всегда возможно составить точную спецификацию, предполагается классифицировать программы по степени точности:
1) программы, функции которых полностью определяются спецификацией
2) программы, функции которых характеризуются сопоставлением вычислительных и измеренных результатов: моделирующие программы (реализуют математическую модель физического объекта)
3) программы, действующие в постоянно изменяющейся среде (ОС-ы)
Теория надежности аппаратуры частично применима к проблеме надежности ПО. Учитывая следующие различия м/ надежностью аппаратуры и ПО:
– элементы ПО не стареют из-за износа или усталости
– для контроля ПО имеется намного больше способов, чем для аппаратуры
– в ПО имеется на много больше объектов для контроля
– в аппаратуре исполнение стандартных элементов распространено намного шире, чем в системе ПО
– количество документации на ПО >> количества документации на аппаратуру.
Классификация ошибок программирования
Ошибки программ м.б. разделены на ошибки, обусловленные ограниченными возможностями программы и на логические ошибки. Наиболее часто встречающиеся делятся на:
1) ошибки в числовых значениях
2) недостаточные требования к точности
3) ошибочные символы (знаки)
4) ошибки оформления
5) основы разработки программ неполные или неточные
6) двусмысленность требования
Способы обеспечения и надежности программ
1. усовершенствование технологии программирования
2. выбор алгоритмов, нечувствительных к различного рода нарушениям вычислительного процесса
3. резервирование программ:
- инверсионное программирование
- дуальное программирование
и другие методы введения структурной избыточности
4. контроль и тестирование программ с последующей коррекцией
Выбор алгоритмов, нечувствительных к нарушениям вычислительного процесса, основан на исследовании их чувствительности. Мерой чувствительности являются погрешности, вызванные вышеназванными нарушениями.
Результаты вычислений могут искажаться погрешностями:
- исходных данных
- округлением
- методическими программами
- обусловленными отказами, сбоями и ошибками в программе
Модели надежности ПО
Модель Шумана.
Основана на следующих допущениях:
· общее число команд в программе на машинном языке постоянно
· в начале компоновочных испытаний число ошибок = некоторой постоянной величине и по мере не исправления ошибок их становится меньше
· в ходе испытания программы новые ошибки не вносятся
· ошибки изначально различимы. По суммарному числу исправленных ошибок можно судить об оставшихся
· интенсивность отказов программы числу оставшихся ошибок
На основе данных допущений получим:
er(x) = e(0) – ec(x) (1)
x – продолжительность отладки программы
e(0) – отношение числа ошибок Е0, имеющихся в программе в момент времени x = 0 к общему числу команд на машинном языке I.
e(0) = Е0/I
ec(x) – число остаточных ошибок в момент времени x, отнесенное к общему числу команд I.
lS(t) = kS.er(x) (2)
t – время работы системы
kS – коэффициент пропорциональности
lS(t) – интенсивность отказов в течении интервала времени t
Определив l программы (частоту появления ошибок) найдем выражение для вероятности безотказной работы
P(t) = exp[– lS(t)dx] = exp[– kS.er(x)dx] (3)
Т.к. в данной модели частота появления ошибок считается независимой от t, она принимается постоянной, среднее время безотказной работы программы =:
Т0 = 1/lS(t) = 1/(kS.er(x)) (4)
Оценивание параметров модели:
Подставляя (1) в (4) получим следующее выражение для среднего времени безотказной работы:
Т0 = (5)
(5) содержит 2 неизвестных параметра: kS - коэффициент пропорциональности и Е0, которые можно оценить, используя метод согласования моментов.
Если рассматривать 2 периода отладки программы x1 и x2 такие, что x1 < x2, получаем:
(6)
(7)
Т1, Т2 – продолжительности работы системы, которые соответствуют x1 и x2
n1 и n2 – число ошибок в ПО, обнаруженных в период времени x1 x2
Из (6) и (7)
Е0 = (8)
где
Т0i – среднее время безотказной работы, соответствующее периоду отладки xi
Т0i = Тi/ni
Подставляя (8) в (6), имеем:
КS = (9)
Марковская модель.
Основана на допущении: система проходит через последовательность «исправных» (Up) и неисправных (down) состояний. Состояние называется исправным, если после начала компоновки и тестирования программы, ошибка еще не появилась или уже исправлена, а следовательно ошибка еще не появилась.
Диаграмма состояний:
Запишем д.у. состояния для этой системы:
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)
Приведенные модели представляют интерес прежде всего для прогнозирования отказов в процессе эксплуатации и отладки. Здесь значение параметров определяется в рабочем режиме.
Дата: 2019-12-10, просмотров: 303.