Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по МПО.doc
Скачиваний:
22
Добавлен:
14.08.2019
Размер:
1.02 Mб
Скачать

4.4.5. Текстовые модели надежности по

СОДЕРЖАНИЕ ТЕКСТОВЫХ МОДЕЛЕЙ ПО

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

Рассмотрим По, имеющее суммарную длину N и состоящее из программных модулей длины Ni, так что . Здесь будем рассматривать принципы деления ПО на отдельные модули, отметим лишь случайный характер этого процесса для достаточно больших N. Над созданием такого По работает большая группа программистов, реализующих отдельные модули, которые затем соединяются в общее ПО. Это позволяет высказать простую гипотезу о статистической независимости длин отдельных модулей. Иными словами, появление границ модулей по их длине можно рассматривать как случайный пуассоновский процесс. Известно, что в этом случае интервалы между такими событиями имеют показательное распределение с плотностью

где А=1/Nср – интенсивность появления модулей на единицу длины; Nср - средняя длина модуля.

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

где Bi = 0, 1, 2, …, а так как величина Ni случайная, то все распределение условное.

Параметр с имеет смысл интенсивности проявления ошибок на единицу длины программного модуля, так что величина Bcp=cNcp – среднее число ошибок в одном модуле, и соответственно B=cN – общее число ошибок в ПО.

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

Используя формулу полной вероятности, можно получить безусловное распределение величины ошибок в одном модуле. Полагая число модулей достаточно большим, перейдем от суммы к интегралу

сделав подстановку t = (A+c)N, найдем

Отсюда следует, что для B получена плотность геометрического распределения с параметрами

Можно привести следующую интерпретацию данного результата. Рассмотрим совместную последовательность двух различных событий, каждое из которых проявляется в программе:

  1. окончание модуля программы;

  2. появление ошибки в некотором месте программы.

Если A и с – cсоответственно интенсивности этих событий, то по формуле основной вероятности можно рассчитать параметры p и q (условные вероятности наступления событий 1и 2, при условии, что имело место одно из них). Таким образом, образом, непосредственно длина программы в данной модели не влияет на конечное распределение ошибок по модулям. Значение имеет лишь интенсивность чередования событий, а не точная привязка их к месту программы. При этом отношение интенсивностей указанных событий равно среднему числу ошибок, приходящихся на один модуль: . Это непосредственно следует из того, что и . Отметим, что геометрическое распределение есть дискретный аналог непрерывного пуассоновского процесса.