Лекции о надёжности (1088462), страница 2
Текст из файла (страница 2)
В динамических моделях надежности программного средства поведение программы (появление отказов) рассматривается во времени. Для использования динамических моделей необходимо иметь данные о появлении отказов во времени.
Рассмотрим некоторые из указанных выше динамических моделей.
Модель Шумана относится к динамическим моделям дискретного времени, данные для которой собираются в процессе тестирования программного обеспечения в течение фиксированных или случайных интервалов времени. Каждый интервал — это стадия, на которой выполняется последовательность тестов и фиксируется некоторое число ошибок.
Целесообразность применения модели Шумана для оценки надежности программного и информационного обеспечения зависит от принятых допущений и условий, наиболее важным из которых является условие существования программы для исследования системы. Остальные допущения и условия не связаны с какими-либо специфическими свойствами программного обеспечения. Они сводятся к следующему.
Предполагается, что в начальный момент компоновки программных средств в системе имеется E1 ошибок. С этого момента начинается отсчет времени отладки t, которое включает затраты времени на выявление ошибок с помощью тестов, на контрольные проверки и т. п. При этом время исправного функционирования системы не учитывается.
Считается, что значение функции частоты отказов m(t) пропорционально числу ошибок, оставшихся в программном обеспечении после использования отведенного на отладку исследуемой программы времени L
Программа тестирования системы должна снабжать испытываемые программные средства входными данными, отражающими реальные условия функционирования. Такие данные называются функциональным разрезом и определяются главным образом через распределение вероятностей значений входных переменных.
Использование модели Шумана предполагает, что тестирование проводится в несколько этапов. Каждый этап представляет собой выполнение программы на полном комплексе разработанных тестовых данных. Выявленные ошибки регистрируются (собирается статистика об ошибках), но не исправляются. По завершении этапа на основе собранных данных о поведении программно-информационной системы на очередном этапе тестирования может быть использована модель Шумана для расчета количественных показателей надежности. После этого исправляются ошибки, обнаруженные на предыдущем этапе. При необходимости корректируются тестовые наборы и проводится новый этап тестирования. При использовании мо-
дели Шумана предполагается, что исходное количество ошибок в программе постоянно и в процессе тестирования может уменьшаться по мере того, как ошибки выявляются и исправляются. Считается, что новые ошибки при корректировке не вносятся. Скорость обнаружения ошибок пропорциональна числу оставшихся ошибок. Общее число программных инструкций в рамках одного этапа тестирования постоянно.
Положим, что до начала тестирования имеется Ei ошибок. В течение времени тестирования τ обнаруживается ξс ошибок в расчете на одну команду программы.
Таким образом, удельное число ошибок на одну команду, оставшихся в системе после τ времени тестирования, равно
где Ii — общее число команд программы, которое предполагается постоянным в рамках одного этапа тестирования.
Будем считать, что значение функции частоты отказов Z(t) пропорционально числу ошибок, оставшихся в программе после использования отведенного для тестирования времени τ:
где С— некоторая постоянная; t—время работы программы без отказов.
Тогда, если время работы программы без отказа готсчитывается от точки t = 0, а τ остается фиксированным, функция надежности, или вероятность безотказной работы в интервале от 0 до t, будет равна
Необходимо найти начальное значение ошибок Ei и коэффициент пропорциональности С. В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т. е. общее время тестирования τ складывается из времени каждого прогона:
где Аi — количество ошибок на i-м прогоне.
Предполагая, что интенсивность появления ошибок постоянна и равна λ, можно вычислить ее как число ошибок в единицу времени:
На основании приведенных выше уравнений получим
Имея данные для двух различных моментов тестирования Ха и хь, которые выбираются произвольно при условии, что ξс(τa) > ξс(τb), можно записать следующие соотношения:
Определив значения E1 и С, можно рассчитать надежность программной или информационной системы.
Модель La Padula. По этой модели выполнение последовательности тестов производится за т этапов. Каждый этап заканчивается внесением изменений (исправлений) в тестируемую программу. Возрастающая функция надежности базируется на числе ошибок, обнаруженных в ходе каждого тестового прогона.
Надежность тестируемой программы в течение i-го этапа определяется соотношением
где А — параметр роста.
Теоретически при бесконечном числе прогонов программы она будет обладать предельной надежностью R(°°):
Модель является прогнозной и на основании данных тестирования позволяет предсказать вероятность безотказной работы программы на последующих этапах ее выполнения.
Модель Джелинского-Моранды относится к динамическим моделям непрерывного времени. Исходные данные для ее использования собираются в процессе тестирования программной системы. При этом фиксируется время до очередного отказа. Особенностью данной модели является то, что значение интервалов времени тестирования между обнаружением двух ошибок имеет экспоненциальное распределение с частотой ошибок (или интенсивностью отказов), пропорциональной числу еще не выявленных ошибок. Каждая обнаруженная ошибка устраняется. При этом число оставшихся ошибок уменьшается на единицу.
Здесь λ. — частота отказов (интенсивность отказов), которая пропорциональна числу еще не выявленных ошибок в программе:
Функция плотности распределения времени обнаружения i-й ошибки, отсчитываемого от момента выявления (ί- 1)-й ошибки, имеет вид
где N- число ошибок, первоначально присутствующих в программе; С— коэффициент пропорциональности.
Рассчитав значение λi можно определить вероятность безотказной работы в различных временных интервалах. На основе полученных расчетных данных строится график зависимости вероятности безотказной работы от времени.
Модель Шика-Волвертона. Модификация модели Джелинского-Моранды для случая возникновения в рассматриваемом интервале более одной ошибки предложена Волвертоном и Шиком. При этом считается, что исправление ошибок производится лишь по истечении интервала времени, в котором они возникли. В основе модели Шика—Волвертона лежит предположение, согласно которому частота ошибок пропорциональна не только количеству ошибок в программах, но и времени тестирования, т. е. вероятность обнаружения ошибок с течением времени возрастает. Частота ошибок (интенсивность обнаружения ошибок) λi предполагается постоянной в течение интервала времени ti и пропорциональна числу ошибок, оставшихся в программе по истечении (i - 1)-го интервала. Но она также пропорциональна и суммарному времени, уже затраченному на тестирование (включая среднее время выполнения программы в текущем интервале):
В данной модели наблюдаемым событием является число ошибок, обнаруживаемых в заданном временном интервале, а не время ожидания каждой ошибки, как это было для модели Джелинского—Mo-ранды. В связи с этим модель относят к группе дискретных динамических моделей.
Модель Муса относят к динамическим моделям непрерывного времени. Это значит, что в процессе тестирования фиксируется время выполнения программы (тестового прогона) до очередного отказа. Но считается, что не всякая ошибка программы может вызвать отказ. Поэтому допускается обнаружение более одной ошибки при выполнении программы до возникновения очередного отказа.
Предполагается, что на протяжении всего жизненного цикла процесса выполнения программы может произойти M0 отказов и при этом будут выявлены все N0 ошибок, которые присутствовали в программе до начала тестирования. Общее число отказов M0 связано с первоначальным числом ошибок N0 соотношением
N0 = BM0,
где В — коэффициент уменьшения числа ошибок.
Положим, что после проведения тестирования, на которое потрачено определенное время ί, зафиксировано т отказов и выявлено η ошибок.
Тогда из соотношения
п=Bτ
можно определить коэффициент уменьшения числа ошибок Bτ как число, характеризующее количество устраненных ошибок, приходящихся на один отказ.
В модели Муса различают два вида времени:
-
суммарное время функционирования х, которое учитывает чистое время тестирования до контрольного момента, когда производится оценка надежности;
-
оперативное время t— время выполнения программы, планируемое от контрольного момента и далее, при условии, что дальнейшего устранения ошибок не будет (время безотказной работы в процессе эксплуатации).
Для суммарного времени функционирования τ предполагается: • интенсивность отказов пропорциональна числу неустраненных ошибок;
• скорость изменения числа устраненных ошибок, измеряемая относительно суммарного времени функционирования, пропорциональна интенсивности отказов.
Один из основных показателей надежности, который рассчитывается по модели Муса, — средняя наработка на отказ. Этот показатель определяется как математическое ожидание временного интервала между последовательными отказами и связан с надежностью следующим уравнением:
где t— время работы до отказа.
Если интенсивность отказов постоянна (т. е. длительность интервалов между последовательными отказами имеет экспоненциальное распределение), то средняя наработка на отказ обратно пропорциональна интенсивности отказов. По модели Муса средняя наработка на отказ зависит от суммарного времени функционирования τ:
где T0 — средняя наработка на отказ в начале испытаний (тестирования); С— коэффициент сжатия тестов, который вводится для устранения избыточности при тестировании. Например, если 1 ч тестирования соответствует 12 ч работы в реальных условиях, то коэффициент сжатия тестов равен 12.
Параметр T (средняя наработка на отказ до начала тестирования) можно рассчитать с помощью соотношения
где f— средняя скорость исполнения программы, отнесенная к числу операторов; К— коэффициент проявления ошибок, связывающий частоту возникновения ошибок со «скоростью ошибок» (скорость, с которой бы встречались ошибки программы, если бы программа выполнялась линейно-последовательно по командам), значение /Сопределя-ют эмпирическим путем по однотипным программам, оно лежит в пределах от 1,54 10-7 до 3,99 · 10-7; N0- начальное число ошибок, которое можно рассчитать с помощью другой модели, позволяющей определить эту величину на основе статистических данных, полученных при