Смекни!
smekni.com

Информационная система университета (стр. 13 из 16)

Готовность системы определяется как сумма вероятностей нахождения ее в работоспособном состоянии:

. (46)

Под готовностью системы к моменту времени t понимается вероятность того, что система находится в рабочем состоянии во время t.

Надежность системы после t (времени отладки, за которое уже выявлено К ошибок, т.е. система находится в состоянии n-k (К-я ошибка исправлена, а (К+1)-я еще не обнаружена), может быть определена из состояния:

, (47)

где

— интервал времени, когда может появиться (К+ 1)-я ошибка;

принятая постоянная интенсивность проявления ошибок.

Рассмотрим решение модели для случая, когда интенсив­ность появления ошибок l и интенсивность их исправления m- постоянные величины. Составляется система дифференциаль­ных уравнений:

;

, k=1,2,3,… (48)

, k=0,1,2,3,…

Начальными условиями для решения системы могут яв­ляться:

Pn(0) = 1;

Pn-k(0) = 0; k=1,2,3,… (49)

Pm-k(0) = 0; k=1,2,3,…

При имеющихся начальных условиях система уравнений может быть решена классически или с использованием преобра­зований Лапласа.

В результате решения определяются Pn-k и Pm-k для случая, когда l и m - константы.

Для общего случая отбросим ограничение постоянства интенсивностей появления и исправления ошибок и предположим, что

, k=1,2,3,…, (50)

т.е. являются функциями числа ошибок, найденных к этому времени в ПС. Система дифференциальных уравнений для такого случая имеет вид:

, K=1,2,3, … (51)

, K=1,2,3, …

Начальные условия для решения системы будут:

Pn(0)=1;

Pn-k(0)=0; k=1,2,3,… (52)

Pm-k(0)=0; k=1,2,3,…

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

10.3. Статические модели надежности

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

Модель Миллса. Использование этой модели предполагает необходимость перед началом тестирования искусственно вносить в программу ("засорять") некоторое количество извест­ных ошибок. Ошибки вносятся случайным образом и фикси­руются в протоколе искусственных ошибок. Специалист, прово­дящий тестирование, не знает ни количества, ни характера вне­сенных ошибок до момента оценки показателей надежности по модели Миллса. Предполагается, что все ошибки (как есте­ственные, так и искусственно внесенные) имеют равную вероят­ность быть найденными в процессе тестирования.

Тестируя программу в течение некоторого времени, соби­рается статистика об ошибках. В момент оценки надежности по протоколу искусственных ошибок все ошибки делятся на собственные и искусственные. Соотношение:

, (53)

дает возможность оценить N - первоначальное число ошибок в программе. В данном соотношении, которое называется форму­лой Миллса, S - количество искусственно внесенных ошибок, n - число найденных собственных ошибок, V - число обнару­женных к моменту оценки искусственных ошибок. Например, если в программу внесено 50 ошибок и к некоторому моменту тестирования обнаружено 25 собственных и 5 внесенных оши­бок, то по формуле Миллса делается предположение, что первоначально в программе было 250 ошибок.

Вторая часть модели связана с проверкой гипотезы от N Предположим, что в программе имеется К собственных ошибок| и внесем в нее еще S ошибок. В процессе тестирования были обнаружены все S внесенных ошибок и n собственных ошибок.

Тогда по формуле Миллса мы предполагаем, что первона­чально в программе было N = n ошибок. Вероятность, с которой можно высказать такое предположение, возможно рассчитать по следующему соотношению:

1, если n<K;

С =

; если n£K . (54)

Например, если утверждается, что в программе нет ошибок (К=0), и при внесении в программу 10 ошибок все они в процессе тестирования обнаружены, но при этом не выявлено ни одной собственной, то С=0,9. То есть с вероятностью 0,9 можно утверж­дать, что в программе нет ошибок. Но если в процессе тестиро­вания была обнаружена одна собственная ошибка, то С=1, так как n > К, и наше предположение о том, что в программе нет ошибок, на 100% не подтвердилось.

Таким образом, величина С является мерой доверия к модели и показывает вероятность того, насколько правильно найдено значение N. Эти два связанных между собой по смыслу соотношения образуют полезную модель ошибок: первое пред­сказывает возможное число первоначально имевшихся в про­грамме ошибок, а второе используется для установления доверительного уровня прогноза. Однако формула (54) для расчета С не может быть использована в случае, когда не обнаружены все искусственно рассеянные ошибки. Для этого случая, когда оценка надежности производится до момента обнаружения всех 5 рассеянных ошибок, величина С рассчиты­вается по модифицированной формуле (55):

1, если n>K

C=

, если n£K, (55)

где числитель и знаменатель формулы при n < К являются биноминальными коэффициентами вида:

. (56)

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

Однако она не лишена и ряда недостатков, самые существен­ные из которых - это необходимость внесения искусственных ошибок (этот процесс плохо формализуем) и достаточно вольное допущение величины К, которое основывается исключительно на интуиции и опыте человека, проводящего оценку, т.е. допускает большое влияние субъективного фактора.

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

, (57)

где m количество тестов, используеиых при тестировании;

q — вероятность обнаружения ошибки в каждом из т тестов, рассчитанная по формуле:

, (58)

S - общее количество искусственно внесенных ошибок;

N-количество собственных ошибок, имеющихся в ПС до начала тестирования.

Для использования модели Лилова должны выполняться следующие условия:

N³n³0;

S³V³0; (59)

m³n+V³0.

Оценки максимального правдоподобия (наиболее вероятное значение) для N задаются соотношениями:

при n³1, V³1;

N =

при V = 0; (60)

0 при n = 0.

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

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

Получается, что первая группа обнаружила N1 ошибок, вторая – N2, а N12 - это ошибки, обнаруженные обеими груп­пами.