Разработка программнотАУалгоритмических средств для определения надёжности программного обеспечения на основании моделирования работы системы типа "клиенттАУсервер"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



? равной квадрату вероятности внесения предыдущей ошибки. Вновь внесенные ошибки вносятся в список ошибок. При этом эти новые ошибки не считаются обнаруженными в клиенте или сервере, то есть если обнаруженная ошибка исправляется, то клиент или сервер считается исправленными даже, если при этом были сделаны новые ошибки.

За один временной такт t разыгрывается iенарий обмена данными для всех работающих на этот момент времени клиентов. Для неисправных клиентов или неисправного сервера разыгрывается вероятностный процесс исправления ошибки в них.

В результате разыгрывается M итераций согласно п. 3, и получаем одну реализацию случайных функций , , и (согласно 3а) на временном интервале M*t.

Испытания проводим еще R раз и таким образом получаем R реализаций случайных функций , , и . Для каждого момента времени tj (для j = 1, тАж M) с шагом t находим статистическое среднее для этих функций и получаем средние функции , , и .

Также в процессе розыгрыша производится:

Расчет текущего времени наработки до отказа;

Расчет среднего времени наработки до отказа за все время розыгрыша;

Расчет вероятности отказа ПО в единицу времени как P = (;

Расчет коэффициента готовности: Кг = 1

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

3.3 Практические результаты моделирования

3.3.1 Оценка времени, необходимого для уменьшения количества ошибок до расчетного уровня.

Найдем время необходимое для уменьшения количества ошибок в 2 раза. Пусть (рис.17):

K (кол-во программ-клиентов) = 10;

P (кол-во программистов) = 3;

(ширина запроса клиента) = 0,0001;

N0 (начальное количество ошибок) = 100;

s (сложность сервера) = 2;

t (шаг итерации) = 0,001 (сутки);

обр (интенсивность потока обращений клиента к серверу) = 100/сутки;

испр (интенсивность потока исправления ошибки) = 0,2/сутки;

pвнес (вероятность внесения ошибки при исправлении) = 0,005

M (количество итераций) = 200000;

Общее время розыгрыша: 200 (сутки);

К (число розыгрышей) =5.

По формуле (27) получаем: дня, что является очень оптимистичной оценкой. Для этой модели надежности Джелински, Моранда, Шумана получаем лет, что явно сильно завышено. Программное моделирование дает результат T1/2 = 135 суток (рис.18).

Рисунок 17 Форма для ввода начальных параметров розыгрыша

Рисунок 18 Форма с результатами моделирования

3.3.2 "ияние количества клиентов на надежность ПО

Изучим влияние количества программклиентов на поведение ПО.

Сначала проведем моделирование при следующих условиях:

K (кол-во программ-клиентов) = 10;

P (кол-во программистов) = 3;

(ширина запроса клиента) = 0,00001;

N0 (начальное количество ошибок) = 250;

s (сложность сервера) = 2;

t (шаг итерации) = 0,002 (сутки);

обр (интенсивность потока обращений клиента к серверу) = 500/сутки;

испр (интенсивность потока исправления ошибки) = 1/сутки;

pвнес (вероятность внесения ошибки при исправлении) = 0,1/сутки

M (количество итераций) = 50000;

Общее время розыгрыша: 100 (сутки);

К (число розыгрышей) =50

Получены следующие результаты (рис.19):

Рисунок 19 "ияние количества клиентов на надежность ПО (10 клиентов)

Из рисунка видно, что ПО начнет устойчиво работать (т.е. количество работающих клиентов сравняется с количеством неработающих клиентов) на 15 сутки, что хорошо согласуется с расчетной моделью. Теперь увеличим количество клиентов с 10 до 100:

K (кол-во программ-клиентов) = 100;

P (кол-во программистов) = 3;

(ширина запроса клиента) = 0,00001;

N0 (начальное количество ошибок) = 250;

s (сложность сервера) = 2;

t (шаг итерации) = 0,002 (сутки);

обр (интенсивность потока обращений клиента к серверу) = 500/сутки;

испр (интенсивность потока исправления ошибки) = 1/сутки;

pвнес (вероятность внесения ошибки при исправлении) = 0,1/сутки

M (количество итераций) = 85000;

Общее время розыгрыша: 170 (сутки);

К (число розыгрышей) =50

Видно, что на 170 сутки почти все ошибки исправлены (рис.20). Это происходит изза того, что клиентов больше и их запросы охватывают большую область данных и, следовательно, обнаруживается большее количество ошибок и большее количество ошибок исправляется.

При десяти клиентах (рис.19) в ПО на 170 сутки еще будет оставаться около 50 ошибок.

Рисунок 20 "ияние количества клиентов на надежность ПО (100 клиентов)

3.3.3 "ияние количества программистов на надежность ПО

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

Начальные условия розыгрыша:

K (кол-во программ-клиентов) = 10;

P (кол-во программистов) = 12;

(ширина запроса клиента) = 0,00001;

N0 (начальное количество ошибок) = 250;

s (сложность сервера) = 2;

t (шаг итерации) = 0,002 (сутки);

обр (интенсивность потока обращений клиента к серверу) = 500/сутки;

испр (интенсивность потока исправления ошибки) = 1/сутки;

pвнес (вероятность внесения оши