О САЙТЕ
Добро пожаловать!

Теперь вы можете поделиться своей работой!

Просто нажмите на значок
O2 Design Template

ФЭА / АИТ / Оценка надежности программ по аналогии с невосстанавливаемыми техническими объектами

(автор - student, добавлено - 26-05-2014, 20:30)

Оценка надежности программ по аналогии

с невосстанавливаемыми техническими объектами

Оценка надежности   программ по   наработке   (модель Шумана).

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

Предполагается, что при последовательных    прогонах программы наборы входных данных являются случайными и    выбираются в соответствии с законом    распределения, соответствующим реальным условиям  функционирования. Модель основана на следующих допущениях: в начальный момент компоновки программ в систему программного обеспечения в них имеется Е0 ошибок; в хо­де корректировок новые ошибки не вносятся;

общее число I машинных команд в программах, посто­янно;

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

λ=Cε(τ)=[E0/I-εc(τ)]C,

где εс(τ) —отношение числа ошибок, устраненных в тече­ние времени отладки τ, к общему числу команд на машин­ном языке.

Таким образом, в модели различаются два значения времени: время отладки τ (обычно измеряется месяцами) и время работы программы t — суммарная наработка программы (часы и доли часа). Время отладки включает затраты времени на выявление ошибок с помощью тестов, контрольные проверки и т. п. Время исправного функцио­нирования при этом не учитывается.

Таким образом, значение интенсивности отказов λ счи­тается постоянным в течение всего времени функциониро­вания (0, t). Значение λ  изменяется лишь при обнаруже­нии и исправлении ошибок (при этом время  t  вновь отсчитывается от нуля).

В силу принятых допущений для фиксированного τ ве­роятность  отсутствия  ошибок программ  в течение  наработки(времени) (0, t)

p(t,τ )=exp{-C[E0/I-εc(τ)]t}

Средняя наработка программы до отказа

mt=1/λ=1/{[E0/I-εc(τ)]C}

Для практического использования формулы (9.16) не­обходимо оценить С и Ео по экспериментальным данным. Для этого можно использовать метод моментов [21] или метод максимального правдоподобия [59].

Применяя метод моментов и рассматривая два перио­да отладки программ τ1 и τ2 при τ1 < τ2, получаем

F0*=  ,   γ=T1n2(T2n1);

C*=   ,

 

 

где Т1, Т2— продолжительности работы системы, соответ­ствующие τ1 и τ2; n1, n2 - число ошибок в программном обеспечении,  обнаруженных соответственно    в    периодах τ1 и τ2.

 Оценка надежности программ по числу прогонов (мо­дель Нельсона). В такой модели за показатель надежно­сти программы принимается вероятность R(n) безотказно­го выполнения п прогонов программы.

Вероятность того, что j-й прогон закончится отказом,

Qj=,

где pji — вероятность выбора i-го набора входных данных при j-м -прогоне из некоторой последовательности прого­нов; yi — «динамическая переменная», принимающая зна­чение 0, если прогон программы при i-м наборе входимых данных оказывается успешным, и значение 1, еcли этот прогон заканчивается отказом; N — число возможных на­боров входных данных.

Для  п   прогонов  R(n)=.

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

R*=1-ne/n,

где пe — число наборов входных данных, при< которых про­изошли отказы.

Для получения R* вначале находят «функциональный разрез» программы, т. е. множество вероятностей рi того, что будет сделан выбор i-гo варианта входных данных. Для этого разбивают все пространство входных перемен­ных на подпространства и находят вероятности того, что выбранный набор входных данных будет принадлежать конкретному подпространству. Это можно сделать, оцени­вая вероятности появления: различных входов в реальных условиях функционирования, для которых оценивается надежность программы.

Далее формируют случайную выборку из п наборов входных данных, распределенных в соответствии с pi (на­пример, с помощью датчика случайных чисел), и проводят n прогонов программы, находят пе и вычисляют R*.

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

ln R(n)=

или

R(n)= exp[].

Обозначим Δtj время выполнения j-го прогона программы

tj=  ,

- суммарное время выполнения первых j прогонов программы прием, что

λ(tj)=-ln(1-Qj)/Δtj,

при этом

R(n)=exp[-].

При Qj1 функция λ(tj) может рассматриваться как функция интенсивности отказов.

Оценка надежности программ на ранних стадиях проектирования 

Описанные выше модели надежности программ требу­
ют оценки ряда параметров по статистическим данным, по­лучаемым при тестировании, отладке программ или на этапе передачи программ в эксплуатацию. На ранних эта­пах проектирования программ отсутствует возможность проведения экспериментов, могут быть использованы лишь статистические данные об отказах аналогичных программ, созданных ранее той же группой программистов. Рядом исследователей выявлена стабильность относительной ча­стоты ошибок в различных типовых конструкциях алгорит­мических языков высокого уровня. Ниже описана модель надежности программы, основанная на этом явлении [34] и учитывающая структуру программы и распределение ис­ходных данных.

В этой модели предполагается, что: а) исходные дан­ные выбираются случайно в соответствии с имеющимся распределением их вероятностей; б) ошибки в элементах программы независимы; в) программа образована из эле­ментов немногих s классов с одинаковыми вероятностями pi правильного однократного исполнения элементов клас­са l. При этих допущениях условная вероятность рi пра­вильного однократного исполнения программы при усло­вии исполнения пути i

pi= ,

 

где тli — количество элементов l -го класса    в    i-м    пути.

(Путь — последовательность элементов программы, не со­держащая ответвлений и используемая при выполнении программы с определенными .исходными данными.)

Вероятность    правильного    однократного    исполнения всей программы

pc=,

где βi—вероятность выбора i-го пути  (зависит от сочета­ния значений исходных данных).

Если программа в процессе эксплуатации не корректи­руется, т. е. проявившиеся ошибки не устраняются, веро­ятности pi неизменны. При корректировании программ вероятность правильного однократного исполнения эле­мента l-го класса в период между (j-1)-й и j-й ошибками

pli=1-(1-pl0)qlj-1      

где pli — вероятность правильного однократного исполне­ния элемента l-го класса до начала эксплуатации или отладки программы; ql- параметры эффективности корректировки (показывает, во сколько раз изменяется вероятность проявления ошибки в элементе l-го класса после ее устранения).

При одинаковых qi=q вероятность правильного однократного исполнения всей программы между (j-1)-м и j-м отказами

Pcj=1 – (1-pc0)qj-1,

где  pc0- вероятность правильного однократного исполнения программы до начале ее эксплуатации или отладки.

Если программы не корректируется после обнаружения в ней ошибок, q=1. Если корректировки неудачны, например из-за плохого знания программы, q>1. При 0<q<1 корректировки повышают надежность программы.

Если элементами программы являются операторы алгоритмического языка высокого уровня, целесообразно объединить операторы в следующие группы:

1)    Элементы ввод-вывод (включая операторы формата);

2)    Элементы цикла: операторы цикла, в том числе и операторы условного перехода, с помощью которого организуется цикл;

3)    Логические элементы: операторы условного и безусловного переходов;   

 

4)        исполняемые элементы: вычислительные операторы, операторы присваивания, вызова подпрограмм;

5)        неисполняемые элементы: операторы задания режи­мов, распределения памяти, закрепления устройств и т. д.

Для приближенной оценки выделяется всего два клас­са, в один из которых входят элементы групп 2 и 3, в дру­гой— групп 1, 4, 5.

На практике наиболее часто используемые пути про­граммы отлаживаются очень тщательно, вплоть до полного, исключения возможных ошибок (полной отлаженности пути). Эту особенность можно учесть, предположив, то программа передается в эксплуатацию после полной от­лаженности всех путей, вероятность выбора которых пре­вышает ε. Учтя зависимость проявления отказа в элемен­те программы от исходных данных, имеем

pc0= ,

где первая сумма находится по всем путям с номерами i, для которых вероятность выбора βi  превышает ε , вторая по маловероятным путям, вероятность выбора которых меньше ε.

Оценка 


Ключевые слова -


ФНГ ФИМ ФЭА ФЭУ Яндекс.Метрика
Copyright 2021. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!