47638 (572050)

Файл №572050 47638 (Моделирование надежности программного обеспечения)47638 (572050)2016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Моделирование надежности программного обеспечения

Автор:

Ханджян А.О.

  1. Постановка задачи

Имеется программный комплекс (ПК) типа клиент-сервер. Сервер обслуживает запросы от N клиентов. В ПК равномерно по области определения входных данных (ООД) (A, B) расположены Er ошибок. Сервер сложнее клиентов с точки зрения разработки ПК в S раз. S – коэффициент сложности сервера по отношению к клиентам. Каждый k-ый (k = 1, 2, …, N) клиент порождает пуассоновский поток данных к серверу интенсивностью обр. Данные от клиента распределены по области определения данных (ООД) по нормальному закону с характеристиками mk и k, где mk распределено между клиентами равномерно по всей области входных данных, 3k – распределено равномерно на меньшем из участков отсекаемых mk на оси области данных (это нужно для имитации неравномерности использования ООД при малом количестве клиентов).

На запрос клиента сервер отвечает данными, которые распределены равномерно по всей области определения данных (A, B).

На рисунке (см. Рисунок 1 – «Распределение запросов k-го клиента на области данных») изображено распределение запросов одного клиента по области всех возможных запросов к серверу, а также показано равномерное распределение ошибок по ООД. При попадании запроса клиента или ответа сервера в область ООД, содержащую ошибку, считается, что ошибка обнаружена и соответствующий модуль выводится из эксплуатации для ее исправления:

Рисунок 1 – «Распределение запросов k-го клиента на области данных»

Входными данными для розыгрыша являются:

P – количество программистов, обслуживающих систему;

K - количество программ-клиентов (далее просто клиенты);

- ширина одного запроса клиента как доля от ООД (от 0 до 1, где 1 – это вся ООД);

t - шаг итерации (сутки);

s - коэффициент сложности сервера по сравнению с программой-клиентом;

обр - интенсивность потока обращений одного клиента к серверу (1/сутки);

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

внес - интенсивность внесения ошибки при исправлении одним программистом (1/сутки) или

pвнес – вероятность внести ошибку при исправлении одним программистом;

M - количество итераций;

К – количество розыгрышей для усреднения;

Er - начальное количество ошибок.

В программе также есть возможность оценить первоначальное количество ошибок по следующему алгоритму: Принимаем ООД за единицу. Каждый клиент в запросе генерирует долю от ООД. За время t клиент обратиться к серверу (t * обр) раз. За время t все клиенты обратятся к серверу (t * обр * K) раз. И объем данных, который будет затронут в ООД при этом равен (t * обр * K * ). Так как в нашей модели ошибки распределены равномерно по ООД, то за время t будет обнаружено (t * ош), где ош – первоначальная интенсивность ошибок в системе. Если бы за время t клиенты затронули всю ООД, то было бы обнаружены все Er ошибок. Поэтому можно записать следующую пропорцию: . Отсюда находим Er: . При этом считаем, что каждый из K клиентов обратился к серверу с запросом с данными непересекающимися в ООД. Но на самом деле это не так, т.к. чаще сего клиенты обращаются к серверу с однотипными запросами, поэтому полагаем K = 1. И тогда окончательная формула для оценки первоначального количества ошибок будет: ;

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

  1. Алгоритм одного розыгрыша

При одном розыгрыше выполняются следующие шаги:

  1. Разыгрывается размещение Er ошибок в клиентах на ООД, распределенных на ней равномерно;

  2. Разыгрывается размещение (s*Erк)/10 ошибок в сервере на ООД, распределенных на ней равномерно;

  3. Для каждого из K клиентов разыгрывается в начале и только один раз mki и ki.

  4. Далее итеративно с шагом t для каждого клиента:

    1. Если клиент исправен, то он может обращается с запросами к серверу с интенсивностью обр. Вероятность обращения клиента к серверу равна . В случае обращения клиента к серверу разыгрывается случайная величина xi, распределенное по нормальному закону с параметрами mki и ki – входное данное для запроса к серверу. Область, занимаемая входными данными запроса от одного клиента к серверу на ООД, есть случайная величина, распределенная равномерно на отрезке от 0 до /2 (обозначим ее как Rand(/2))

    2. Если в интервал (xi Rand(/2)) попадает хотя бы одна ошибка на ООД, то считается, что в клиенте обнаружена ошибка, и он выводится из эксплуатации для ее исправления одним из свободных программистов. Если свободных программистов нет, то неисправный клиент становится в очередь и ожидает, когда один из программистов освободится.

    3. Если в запросе клиента к серверу ошибки нет, то этот запрос направляется серверу на обработку и ответа. При этом разыгрывается ответ от сервера клиенту аналогично a), только объем данных есть случайная величина, распределенная равномерно на отрезке от 0 до *10/2 (обозначим ее как Rand(*10/2)). Если в область (xi Rand(*10/2)) попадает хотя бы одна ошибка из списка ошибок сервера, то считается, что в сервере произошла ошибка. В этом случае работа системы останавливается и все программисты пытаются исправить эту ошибку в сервере со скоростью испр каждый. Вероятность исправления ошибки одним программистом равна .

    4. Если в клиенте есть ошибка и есть свободный программист, то свободный программист пытается исправить ошибку в клиенте с вероятностью .

    5. Если ошибка исправляется, то она удаляется из списка ошибок клиента или сервера соответственно. Таким образом, эта ошибка уже не может возникнуть в других клиентах. При этом если есть клиенты, в которых была обнаружена такая же ошибка, то эти клиенты считаются тоже исправленными. При исправлении ошибки каждый программист может внести новую ошибку с вероятностью или pвнес. Причем, если программист внес ошибку в программу, то он может внести туда еще одну ошибку с вероятностью равной квадрату вероятности внесения предыдущей ошибки. Вновь внесенные ошибки вносятся в список ошибок клиентов или сервера соответственно. При этом эти новые ошибки не считаются обнаруженными в клиенте или сервере, то есть если обнаруженная ошибка исправляется, то клиент или сервер считается исправленными даже, если при этом были сделаны новые ошибки.

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

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

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

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

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

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

  • расчет вероятности отказа ПО в единицу времени как P = ( * * ( + 1) * * ;

  • расчет коэффициента готовности: Кг = 1 - /

Количество ошибок в сервер рано количеству ошибок в клиентах * коэффициент сложность /10.

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

Изучим влияние количества программ-клиентов на поведение программной системы клиент-сервер (далее ПС или ПК).

Розыгрыш проводился при следующих начальных условиях (10 клиентов):

Кол-во программ-клиентов: 10, Кол-во программистов: 3, Доля от общей области данных (ООД) в одном запросе клиента: 1E-5, Начальное кол-во ошибок: 250, Коэффициент сложности сервера: 2, Интенсивность потока обращений клиента к серверу: 500 (1/сутки), Интенсивность потока исправления ошибки: 1 (1/сутки), Интенсивность внесения ошибки при исправлении: 0,1 (1/сутки), Шаг итерации: 0,002, Кол-во итераций: 50000, Общее время розыгрыша: 100 (сутки); Число розыгрышей:40

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

Средние значения за все 40 розыгрышей:

Рис.2 – Значения за все 40 розыгрышей

Из рисунка видно, что ПК начнет устойчиво работать (т.е. количество работающих клиентов сравняется с количеством неработающих клиентов на 15 сутки).

Теперь увеличим количество клиентов с 10 до 100:

Кол-во программ-клиентов: 100, Кол-во программистов: 3, Доля от общей области данных (ООД) в одном запросе клиента: 0,00001, Начальное кол-во ошибок: 250, Коэффициент сложности сервера: 2, Интенсивность потока обращений клиента к серверу: 500 (1/сутки), Интенсивность потока исправления ошибки: 1 (1/сутки), Интенсивность внесения ошибки при исправлении: 0,1 (1/сутки), Шаг итерации: 0,002, Кол-во итераций: 75000, Общее время розыгрыша: 150 (сутки); Число розыгрышей:50

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

Средние значения за все 50 розыгрышей:

Рис.3 – Значения за все 50 розыгрышей

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

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

Например, если увеличить количество программистов с 3 до 12, то получим:

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

Кол-во программ-клиентов: 10, Кол-во программистов: 12, Доля от общей области данных (ООД) в одном запросе клиента: 1E-5, Начальное кол-во ошибок: 250, Коэффициент сложности сервера: 2, Интенсивность потока обращений клиента к серверу: 500 (1/сутки), Интенсивность потока исправления ошибки: 1 (1/сутки), Интенсивность внесения ошибки при исправлении: 0,1 (1/сутки), Шаг итерации: 0,002, Кол-во итераций: 50000, Общее время розыгрыша: 100 (сутки); Число розыгрышей:50

Рис.5 – Значения за 50 розыгрышей

Видно, что программа начнет устойчиво работать как и раньше только на 15 сутки, то есть увеличение количества программистов дает не большой эффект и скорее всего, часть программистов будет простаивать.

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

Увеличивая интенсивность обращения каждого клиента к серверу не дает такого эффекта, т.к. каждый клиент обычно работает в своей узкой части ОД и выбивает ошибки из этой части и остается значительная ОД не проверенная, а значит с ошибками. Вот пример розыгрыша при увеличения интенсивности обращений на порядок с 500 до 2500 в сутки.

Пример:

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

Характеристики

Тип файла
Документ
Размер
4,58 Mb
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

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

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее