Разработка программнотАУалгоритмических средств для определения надёжности программного обеспечения на основании моделирования работы системы типа "клиенттАУсервер"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
у, а также показано равномерное распределение ошибок по ООД. При попадании запроса клиента или ответа сервера в область ООД, содержащую ошибку, считается, что ошибка обнаружена и соответствующий модуль выводится из эксплуатации для ее исправления:
Рисунок 8 Распределение запросов kго клиента на области данных
Входными данными для модели являются:
P количество программистов, обслуживающих систему;
K количество программклиентов;
ширина одного запроса клиента как доля от ООД (от 0 до 1, где 1 это вся ООД);
t шаг итерации (сутки);
s коэффициент сложности сервера по сравнению с программойклиентом;
обр интенсивность потока обращений одного клиента к серверу (1/сутки);
испр интенсивность потока исправления ошибки одним программистом (1/сутки);
внес интенсивность внесения ошибки при исправлении одним программистом (1/сутки) или
pвнес вероятность внести ошибку при исправлении одним программистом;
M количество итераций (количество попыток обращений программклиентов к серверу в одном розыгрыше);
R количество розыгрышей для усреднения;
Er начальное количество ошибок.
Для моделирования потоков запросов в ПО применяется метод МонтеКарло.
Также есть возможность оценить первоначальное количество ошибок по следующему алгоритму: Принимаем ООД за единицу. Каждый клиент в запросе генерирует долю от ООД. За время t клиент обратиться к серверу (t*обр) раз. За время t все клиенты обратятся к серверу (t*обр*K) раз. И объем данных, который будет затронут в ООД при этом равен (t*обр*K*). Так как в нашей модели ошибки распределены равномерно по ООД, то за время t будет обнаружено (t*ош), где ош первоначальная интенсивность ошибок в системе. Если бы за время t клиенты затронули всю ООД, то было бы обнаружены все Er ошибок. Поэтому можно записать следующую пропорцию:
.
Отсюда находим Er:
.
При этом считается, что каждый из K клиентов обратился к серверу с запросом с данными непересекающимися в ООД. Однако в реальности клиенты чаще всего обращаются к серверу с однотипными запросами, поэтому полагаем К=1. Тогда первоначальное количество ошибок можно оценить как:
Поставленная задача позволяет определить такие важные характеристики функционирования программного комплекса, как:
расчет текущего времени наработки до отказа;
расчет среднего времени наработки до отказа за все время моделирования работы системы;
расчет вероятности отказа ПО в единицу
расчёт коэффициента готовности
Таким образом, наша задача может использоваться для предсказания характеристик ПО и оценки времени, необходимого затратить для достижения заданного уровня надежности ПО при имеющихся ресурсах, выработки рекомендаций по повышению надежности ПО.
Данная задача имеет смысл для систем типа "клиент-сервер" iелью определения надёжности системы на этапе тестирования.
2.3 Разработка модели надежности ПО типа клиентсервер
2.3.1 Модель надежности клиентских программ
С помощью метода динамики средних [22] построим марковскую модель поведения программы состоящей из многих (примерно однотипных) модулей или (что сейчас применяется наиболее часто) построим модель программной системы типа "клиентсервер". Характерной особенностью такой системы является запуск сервером параллельных однотипных потоков, каждый из которых обслуживает запросы одной программыклиента или работа сервера со многими однотипными клиентскими программами. В этом случае потоки или программыклиенты полностью идентичны и каждый из них может выходить из строя независимо от остальных. Особенностью этой системы в отличие от систем, рассматриваемых в теории массового обслуживания, (например, обслуживание ремонтной бригадой автомобиля, или однотипных аппаратных комплексов) заключается в том, что при выходе из строя (обнаружении ошибки) в одном модуле (потоке или клиенте) и устранении этой ошибки, эта ошибка автоматически устраняется и во всех других модулях (потоках), так как эти потоки размножаются путем запуска на выполнение одного и того же кода программы. Учтем эту особенность при применении метода динамики средних. При этом временем на замену модуля с ошибкой на исправленный модуль мы пренебрегаем.
Метод динамики средних представляет собой удобный математический аппарат только в том случае, когда число возможных состояний системы S сравнительно велико (от нескольких десятков и более). В этом случае обычный математический аппарат теории непрерывных марковских цепей перестает быть удобным. Метод динамики средних позволяет составить и решить уравнения непосредственно для интересующих нас средних характеристик, минуя использование вероятности состояний.
Итак, пусть имеется сложная (типа клиент сервер) программная система S, состоящая из большого числа однородных модулей (потоков или клиентов) N, каждый из которых может случайным образом переходить из состояния в состояние. Пусть (для простоты) все потоки событий (в случае программы это потоки внешних данных или запросов от клиентских программ к серверу), переводящие систему S и каждый ее модуль из состояния в состояние пуассоновские (может быть даже с интенсивностями, зависящими от времени). Тогда процесс, протекающий в системе, будет марковским.
Допустим, что каждый модуль может быть в любом из n возможных состояний: 1, 2, тАж, n, а состояние системы S в каждый момент времени характер