ФЭА / АИТ / Оценка надежности программ по аналогии с невосстанавливаемыми техническими объектами
(автор - 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) может рассматриваться как функция интенсивности отказов. Оценка надежности программ на ранних стадиях проектирования Описанные выше модели надежности программ требу В этой модели предполагается, что: а) исходные данные выбираются случайно в соответствии с имеющимся распределением их вероятностей; б) ошибки в элементах программы независимы; в) программа образована из элементов немногих 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 превышает ε , вторая по маловероятным путям, вероятность выбора которых меньше ε. Оценка |
|