Надежность ПО (программного обеспечения)
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

- м.б. определена как свойство программы, которое выражается в выполнении заданных функций в заданных условиях и на заданной вычислительной машине. Отказ ПО обусловлен несоответствием ПО поставленным задачам. Несоответствие может возникнуть по 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) состояний. Состояние называется исправным, если после начала компоновки и тестирования программы, ошибка еще не появилась или уже исправлена, а следовательно ошибка еще не появилась.

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

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

nk(t) = –lkPnk(t) + mk–1Nmk+1(t)                                                            (10)

mk(t) = –mkPmk(t) + lkPnk(t)                                                              (11)

Pmk(0) = 0     k = 1, 2…                                                                         (12)

Pn(0) = 1                                                                                                       (13)

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

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

U(t) = Pmk(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, просмотров: 268.