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

Разрабатываемая система в конечном варианте будет представлять собой Web - приложение. Таким образом, для обеспечения надежной работы системы необходимо обеспечить надежную работу программной части. При этом надежность системы будет рассчитываться по формуле (1):

Р сист = Р апп.ч Р прог.ч , (1)

где Р сист - надежность всей системы;

Р апп.ч - надежность аппаратной части;

Р прог.ч - надежность программной части.

Расчет надежности программной части

Надежность программной части будет рассчитываться по формуле (2):

Р прог.ч = Р сервер Р клиент P ПО , (2)

где Р сервер - надежность программного обеспечения сервера;

Р клиент - надежность программного обеспечения клиента;

Р ПО - надежность разработанного программного обеспечения.

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

Надежность программного обеспечения сервера рассчитывается по формуле(3):

Р сервер = Р СУБД Р ОС , (3)

где РСУБД - надежность системы управления базой данных;

Р ОС - надежность операционной системы, установленной на сервере.

В качестве операционной системы, установленной на сервере, используется Red Hat Enterprise Linux 5, компания производитель установила вероятность безотказной работы равной:

Р ОС = 0,99.

В качестве сервера базы данных используется СУБД Cache, компания производитель Intersystems установила вероятность безотказной работы равной:

Р СУБД = 0,98.

Таким образом, вероятность безотказной работы ПО сервера составляет:

Р сервер =0,99 0,98= 0,98

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

Надежность программного обеспечения клиента рассчитывается по формуле (4):

Р клиент = Р ОС Р ВБ , (4)

где Р ОС - надежность операционной системы, установленной на клиенте;

Р ВБ - надежность веб-браузера, используемого клиентом.

В качестве операционной системы, установленной на клиенте, используется Windows 7 Home Premium, компания производитель Microsoft Corporation установила вероятность безотказной работы равной:

Р ОС = 0,98.

Для пакета Internet Explorer 10, компания производитель установила вероятность безотказной работы равной:

Р ВБ = 0,9.

Вероятность безотказной работы программного обеспечения клиента составляет:

Р клиент = 0,98 0,9 = 0,88

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

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

Используя модель Миллса, рассчитаем надежность программного обеспечения разработанной системы. В программу было искусственно занесено S = 25 ошибок и при Т = 100 запусков обнаружено V = 24 искусственных и n = 4 собственных ошибок. Предполагается, что все ошибки, как искусственные, так и собственные, имеют равную вероятность быть обнаруженными. Тогда первоначальное количество ошибок можно определить из соотношения (5):

Вероятность, с которой можно высказать такое предположение в случае, когда не обнаружены все искусственно рассеянные ошибки, рассчитывается по формуле (6):

где К? n - число собственных ошибок; числитель и знаменатель формулы являются биноминальными коэффициентами вида (7):

Получаем вероятность того, что в системе было 5 собственных ошибок С = 0,75.

Вероятность неверного исхода определяется по формуле 8.

Вероятность безотказной работы (ВБР) определяется формулой (9):

График зависимости безотказной работы программного обеспечения системы от времени (в часах) представлен на рисунке 23.

Рисунок 23 - Зависимость вероятности безотказной работы программного обеспечения от времени (в часах)

Надежность программной части. По формуле (5.2) определим вероятность безотказной работы всей программной части системы и построим график зависимости. График зависимости вероятности безотказной работы программной части системы от времени (в часах) представлен на рисунке 24.


Рисунок 24 - Зависимость вероятности безотказной работы программной части системы от времени (в часах)

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

Одной из важнейших характеристик качества программного средства является надежность.

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

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

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

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

К основным количественным показателям надежности программного средства относятся:

Вероятность безотказной работы P(t3) - это вероятность того, что в пределах заданной наработки отказ системы не возникает. Наработка - продолжительность или объем работ:

P(t3) = P(t≥t3),

где t - случайное время работы ПС до отказа, t3 - заданная наработка.

Вероятность отказа - вероятность того, что в пределах заданной наработки отказ системы возникает. Этот показатель, обратный предыдущему:

Q(t3) = 1 - P(t3).

Интенсивность отказов системы λ(t) - это условная плотность вероятности возникновения отказа программного средства в определенный момент времени при условии, что до этого времени отказ не возник:

λ(t) = f (t) / P(t),

где f(t) - плотность вероятности отказа в момент времени t:

Существует следующая связь между λ(t) и P(t):

В частном случае λ = const.

Р(t) = exp(- λ(t)d t.).

Р(t) = exp(-λ(t)).

Если в процессе тестирования фиксируется число отказов за определенный интервал времени, то λ(t) - число отказов в единицу времени.

Средняя наработка до отказа Тi - математическое ожидание времени работы программного средства до очередного отказа

где t - время работы программного средства от (К-1) до К отказа.

Ti = (t1+t2+...+tn)/n,

где ti - время работы программного средства между отказами, n - количество отказов.

Среднее время восстановления Тв - математическое ожидание времени восстановления tвi - времени, затраченного на восстановление и локализацию отказа - tо.л.i, времени устранения отказа - tу.о.i, времени пропускной проверки работоспособности - tп.п.i:

tвi = tо.л.i + tу.о.i + tп.п.i.

Для этого показателя термин «время» означает время, затраченное программистом на перечисленные виды работ.

Коэффициент готовности К2 - вероятность того, что программное средство ожидается в работоспособном состоянии в произвольный момент времени его использования по назначению:

К2 = Ti / (Ti +Tв).

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

Основным средством определения количественных показателей надежности являются модели надежности , под которыми понимают математическую модель, построенную для оценки зависимости надежности от заранее известных или оцененных в ходе создания программного средства параметров. В связи с этим определение надежности показателей принято рассматривать в единстве трех процессов - предсказание, измерение, оценивание.

Предсказание - это определение количественных показателей надежности исходя из характеристик будущего программного средства.

Измерение - это определение количественных показателей надежности, основанное на анализе данных об интервалах между отказами, полученных при выполнении программ в условиях тестовых испытаний.

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

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

Рассмотрим аналитические и эмпирические модели надежности.

Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных о поведении программы в процессе тестирования (измеряющие и оценивающие модели).

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

Аналитическое моделирование надежности программного средства включает четыре шага:

Определение предложений, связанных с процедурой тестирования программного средства;

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

Выбор параметров моделей с использование полученных данных;

Применение модели - расчет количественных показателей надежности по модели.

Аналитические модели представлены двумя группами : динамические и статические модели. В динамических моделях надежности программного средства поведение программы (появление отказов) рассматривается во времени. В статических моделях появление отказов не связывают со временем, а учитывают только зависимость количества ошибок от числа тестовых прогонов (по области ошибок) или зависимость количества ошибок от характеристики входных данных (по области данных). Для использования динамических моделей необходимо иметь данные о появлении отказов во времени. Статические модели принципиально отличаются от динамических тем, что в них не учитывается время появления ошибок в процессе тестирования и не используется никаких предположений о поведении функции риска λ(t). Эти модели строятся на твердом статистическом фундаменте.

Модель Коркорэна

Применение модели предполагает знание следующих ее показателей:

Модель содержит изменяющуюся вероятность отказов для различных источников ошибок и соответственно разную вероятность их исправления;

В модели используются такие параметры, как результат только N испытаний, в которых наблюдается Ni ошибок i-го типа;

Выявление в ходе N испытаний ошибки i-го типа появляется с вероятностью аi.

Показатель уровня надежности R вычисляют по следующей формуле:

где N0 - число безотказных (или безуспешных) испытаний, выполненных в серии из N испытаний,

k - известное число типов ошибок,

Yi - вероятность появления ошибок,

при Ni > 0, Yi = ai,

при Ni = 0, Yi = 0.

Модель Шумана

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

Предполагается, что до начала тестирования имеется Et ошибок. В течение времени тестирования τ обнаруживается εc ошибок в расчете на одну команду в машинном языке.

Таким образом, удельное число ошибок на одну машинную команду, оставшихся в системе после τ времени тестирования, равно:

εr (τ) = Et / It * εc (τ),

где It - общее число машинных команд, которое предполагается постоянным в рамках этапа тестирования.

Предполагается, что значение функции частоты отказов Z(t) пропорционально числу ошибок, оставшихся в программе после израсходованного на тестирование времени τ:

Z (t) = C * εr (τ) ,

где С - некоторая постоянная

t - время работы программы без отказов.

Тогда, если время работы программы без отказа t отсчитывается от точки t = 0, а τ остается фиксированным, функция надежности, или вероятность безотказной работы на интервале от 0 до t, равна:

R (t, τ) = exp {-C * * t} (1.9)

tср = 1 / {C * }.

Нам необходимо найти начальное значение ошибок Et и коэффициент пропорциональности - С. В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона

τ = τ1 + τ2 + τ3 + … + τn.

Предполагая, что интенсивность появления ошибок постоянна и равна λ, можно вычислить ее как число ошибок в единицу времени, где Ai - количество ошибок на i - ом прогоне:

Имея данные для двух различных моментов тестирования τa и τb, которые выбираются произвольно с учетом требования, чтобы εc(τb) > εc(τa), можно сопоставить уравнения, приведенные выше при τa и τb:

Неизвестный параметр С получается путем подстановки Et в выражение (1.13).Вычисляя соотношения (1.13). Вычисляя соотношения (1.13) и (1.14) получим:

программы по формуле (1.9).

Проведем расчеты применительно к учебной программе.

Например, в программе имеется It = 4381 оператор.

В процессе последовательных тестовых прогонов были получены следующие данные:

Выберем две точки, исходя из требования, чтобы число ошибок, найденных на интервале А - В, и было больше, чем на интервале 0 - А. За точку А возьмем 2 прогон, а за точку В – 8 прогон. Тогда ошибки, найденные на этапах тестирования на интервалах 0 -А и А - В, будут равны соответственно:

εс(τА) = 3 ⁄ 4381= 0.0007

εс(τВ) = 7 ⁄ 4381= 0.0015.

Время тестирования на интервалах равно:

Рассчитаем интенсивности появления ошибок на двух интервалах:

λА = 3 ⁄ 13 = 0.23

λВ = 7 ⁄ 12 = 0.58.

Тогда число имеющихся до начала тестирования ошибок равно:

Рассчитаем вероятность безотказной работы в течение времени t при τ =

Возьмем t=60 мин.

Таким образом, надежность безотказной работы достаточно велика и вероятность сбоев и возникновения ошибок небольшая.

Модель La Padula

Смотри методическое руководство по дипломному проектированию (Л.Е. Куницына), страницы 27-29.

Введение

Описание предметной области

1 Модель Шумана

2 Модель Миллса

3 Модель Джелинского-Моранды

4 Модель Липова

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

Технология разработки приложения

1 Алгоритм решения

2. Макет приложения

2.1 Макет приложения. Модель Шумана (tabPage1)

2.2 Макет приложения. Модель Джелинского-Моранды(tabPage3)

2.3 Макет приложения. Модель Миллса(tabPage5)

2.4 Макет приложения. Модель Липова(tabPage4)

3 Описание программы

3.5 Сохранение результатов

Руководство пользователя

Заключение

Реферат

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

Ключевые слова: надежность, модели, эффективность, программное обеспечение, шуман, миллс, моранда, липов.

Цель работы: Проектирование и разработка программы для определения надежности тестируемого ПО различными моделями с использование языка C# и VisualStudio 2013.

Объект исследования: модели надежности программного обеспечения

Предмет исследования: Программа на языке C#

Введение

Такой фактор как "надежность программного обеспечения" всегда играл, играет и будет играть ключевую роль в разработке любого программного продукта.

Что же такое "надежность ПО?" Ответ очень прост - это свойство системы выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующих заданным режимам и условиям исполнения.

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

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

В соответствии с поставленной целью были сформулированы следующие задачи:

) Провести предметный анализ в области

) Разработать необходимую программу

) Выполнить программную реализацию

) Провести тестирование приложения

) Определить эффективность разработанной программы

) Записать и проанализировать результаты

Объектом исследования является метод расчета стоимости разработки ПО.

Предметом исследования является программа на платформе VisualStudio на языке C#.

В международном стандарте ISO 9126:1991 надежность выделена как одна из основных характеристик качества программного обеспечения ПО. Стандартный словарь терминов программного обеспечения как способность системы или компонента выполнять требуемые функции в заданных условиях на протяжении указанного периода времени.

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

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

Аналитические модели представлены двумя группами: динамические и статические. В динамических моделях поведение ПО (появление отказов) рассматривается во времени. Если фиксируются интервалы каждого отказа, то получается непрерывная картина появления отказов во времени. Может фиксироваться только число отказов за произвольный интервал времени. В этом случае поведение ПО может быть представлено только в дискретных точках.

1. Описание предметной области

.1 Модель Шумана

Модель Шумана строится на основе нескольких критериев:

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

¾в начале компоновочных испытаний число ошибок равно некоторой постоянной величине, и по мере исправления ошибок их становится меньше. В ходе испытаний программы новые ошибки не вносятся;

¾ошибки изначально различимы, по суммарному числу исправленных ошибок можно судить об оставшихся;

¾интенсивность отказов программы пропорциональна числу остаточных ошибок.

Предполагается, что до начала тестирования (т.е. в момент t=0) имеется M ошибок. В течение времени тестирования τ обнаруживается ε1(t) ошибок в расчете на одну команду в машинном языке.

Тогда удельное число ошибок на одну машинную команду, оставшихся в системе после времени тестирования τ, равно:

где I - общее число машинных команд, которое предполагается постоянным в рамках этапа тестирования.

Предполагается, что значение функции количества ошибок Z(t) пропорционально числу ошибок, оставшихся в программе после израсходованного на тестирование времени τ.

Z (t) = C * ε2 (τ),

где С - некоторая постоянная, t - время работы программы без отказов.

Тогда, если время работы программы без отказа t отсчитывается от точки t = 0, а τ остается фиксированным, функция надежности, или вероятность безотказной работы на интервале от 0 до t, равна

Нам необходимо найти начальное значение ошибок M и коэффициент пропорциональности С. Эти неизвестные оцениваются путем пропуска функционального теста в двух точках переменной оси отладки ta и tв, выбранных так, что ε1(ta)<ε1(td).

В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона:

τ = τ1 + τ2 + τ3 + … + τn.

Предполагая, что интенсивность появления ошибок постоянна и равна λ, можно вычислить ее как число ошибок в единицу времени,

Тогда

Имея данные для двух различных моментов тестирования ta и tв, можно сопоставить уравнения (3) при τa и τb:

Из соотношений (6) и (7) найдем неизвестный параметр С и М:

Пример 1 .

Программа содержит 2 000 командных строк, из них, до начала эксплуатации (после периода отладки), 15 командных строк содержат ошибки. После 20 дней работы обнаружена 1 ошибка. Найти среднее время безошибочной работы программы и интенсивность отказов программы при коэффициенте пропорциональности, равном 0,7.

I=2000=15=20=1=0,7

E1(t)=0,00052(t)=0,007(t)=0,906649ср=204,0816

λ=0,0049 - интенсивность отказов

Пример 2.

На условиях примера 1 определить вероятность безошибочной работы программы в течение 90 суток.

I= 2000= 15= 90= 1= 0,7(t)= 0,643393

Пример 3 .

Определить первоначальное количество возможных ошибок в программе, содержащей 2 000 командных строк, если в течение первых 60 суток эксплуатации было обнаружено 2 ошибки, а за последующие 40 суток была обнаружена одна ошибка. Определить T0 - среднее время безошибочной работы, соответствующее первому и второму периоду эксплуатации программы и коэффициент пропорциональности.

I= 20001= 60 суток2= 100 суток1= 2 ошибок2= 3 ошибок0= 30,333333

λ1= 0,033333

λ2= 0,03= 6,6666671(t1)= 0,0012(t2)= 0,0015= 12

Л21= 0,9

1.2 Модель Миллса

алгоритм тестирование шуман миллс

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

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

Дает возможность оценить первоначальное число ошибок в программе N. Здесь S - количество искусственно внесенных ошибок; n - число найденных собственных ошибок; V - число обнаруженных к моменту оценки искусственных ошибок.

1.3 Модель Джелинского-Моранды

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

Функция плотности распределения времени обнаружения i-й ошибки, отсчитываемого от момента выявления (i - 1)-й ошибки, имеет вид

Где - интенсивность отказов, которая пропорциональна числу еще не выявленных ошибок в программе:

Где N - число ошибок, первоначально присутствующих в программе; С - коэффициент пропорциональности.

Наиболее вероятные значения величин N и С определяются на основе данных, полученных при тестировании. Для этого фиксируют время выполнения программы до очередного отказа t1,t2,t3,…,tk. Значения N и С можно получить, решив систему уравнений

Чтобы получить числовые значения λ, нужно подставить вместо N и С их возможные значения N и C . Рассчитав К значений по формуле (5) и подставив их в выражение (4), можно определить вероятность безотказной работы на различных временных интервалах.

1.4 Модель Липова

Липов модифицировал модель Миллса, рассмотрев вероятность обнаружения ошибки при использовании различного числа тестов. Если сделать то же предположение, что и в модели Миллса, т.е что собственные и искусственные ошибки имеют равную вероятность быть найденными, то вероятность обнаружения n собственных и V внесенных ошибок

Где m - количество используемых тестов, q - вероятность обнаружения ошибки в каждом из m тестов, рассчитанная по формуле

S - общее количество искусственно внесенных ошибок; N - количество собственных ошибок, имеющихся в ПО до начала тестирования.

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

Название приложения: Программа расчета надежности программного обеспечения.

Назначение разработки: Исходя из введенных пользователем данных, рассчитать основные показатели надежности программного продукта.

Входные данные вводятся в специальные поля. После обработки данных, программа выводить результаты в соответствующих полях вывода.

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

Для реализации данной программы мы используем язык программирования C#, на платформе Visual Studio.

Системные требования к ПК:

) Операционная система Windows 7 или выше.

) Свободное место на жестком диске: 5МБ и более.

) Наличие Net Framework 4.0 или выше.

) Оперативная память: 128МБ и выше.

) Клавиатура и мышь.

2. Технология разработки приложения

.1 Алгоритм решения

В самом начале выполнения программы появляется форма, где пользователю предлагается заполнить соответствующие поля необходимыми для расчета данными.

В начале выполнения программы производится проверка полноты и корректности введенных данных. Если пользовательские данные не прошли проверку - выводится соответствующее уведомление.

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

После этого результаты выводятся в специально отведенные окна, а выполнение программы прекращается.


.2.1 Макет приложения. Модель Шумана (tabPage1)

menuStrip1 - выводит список меню содержащий пункты "Сохранить результаты" и "Выход"

tabPage1 - вкладка элемента tabControl1, содержащая в себе элементы: label49 - 54, label63 - 67, label 61, label59, label48, label62, label58, textBox14 - 19, groupBox4

label52 - принимает текстовое значение "Командных строк в программе"

label51 - принимает текстовое значение "Строк содержащих ошибку"

label50 - принимает текстовое значение "Дней работы"

label49 - принимает текстовое значение "Ошибок за время работы"

label58 - принимает текстовое значение "Исходные данные"

label54 - принимает текстовое значение "Конечный результат"

label61 - принимает сокращенное значение "КСП"

label60 - принимает сокращенное значение "ССО"

label59 - принимает сокращенное значение "ДР"

label48 - принимает сокращенное значение "ОВР"

label62 - принимает сокращенное значение "КП"

textBox17 - получает значение введенных пользовательских данных в графу "Командных строк в программе"

textBox15 - получает значение введенных пользовательских данных в графу "Строк содержащих ошибок"

textBox16 - получает значение введенных пользовательских данных в графу "Дней работы"

textBox14 - получает значение введенных пользовательских данных в графу "Ошибок за время работы"

textBox18 - получает значение введенных пользовательских данных в графу "Коэффициент пропорциональности", по умолчанию установлено значение "1".

textBox19 - служит для вывода результатов вычислений, произведенных по формуле Шумана.

button5 - принимает текстовое значение "Очистить", а также отчищает все поля в данном блоке

2.2.2 Макет приложения. Модель Джелинского-Моранды(tabPage3)

tabPage3 - содержит все группы объектов, таких как label41-42, label45-46, label73-69, label19-14, textBox4, button3, textBox13-10, groupBox3.

label41 - принимает текстовое значение "Число ошибок, первоначально находящихся в программе.

label42 - принимает текстовое значение "Коэффициент пропорциональности"

label45 - принимает текстовое значение "Количество ошибок спустя время"

label46 - принимает текстовое значение "время обнаружения i ошибки"

label73 - принимает текстовое значение "Результат"

label69 - принимает текстовое значение "Исходные данные"

label72 - принимает сокращенное значение "ЧОПНВП"

label71 - принимает сокращенное значение "КП"

label70 - принимает сокращенное значение "КОСВ"

label15 - принимает сокращенное значение "ВОО"

label14 - принимает текстовое значение "Конечный результат"

Элементы label19 - label16 принимают одинаковые начальные текстовые значения "null"

textBox10 - получает значение введенных пользовательских данных в графу "Число ошибок, первоначально находящихся в программе"

textBox12 - получает значение введенных пользовательских данных в графу "Коэффициент пропорциональности"

textBox11 - получает значение введенных пользовательских данных в графу "Количество ошибок спустя время"

textBox13 - получает значение введенных пользовательских данных в графу "Время обнаружения ошибки"

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

button3 - принимает текстовое значение "Очистить", а также отчищает все поля в данном блоке

2.2.3 Макет приложения. Модель Миллса(tabPage5)

tabPage5 - содержит группы объектов, label9-1, textBox3-1, groupBox1, button1, label13, label44.

label2 - принимает текстовое значение "Количество искусственно внесенных ошибок"

label3 - принимает текстовое значение "Число собственных найденных ошибок"

label4 - принимает текстовое значение "Число обнаруженных к моменту оценки искусственных ошибок"

label5 - принимает текстовое значение "Результат"

label9 - принимает текстовое значение "Исходные данные"

label13 - принимает текстовое значение "Конечный результат"

label6 - принимает сокращенное значение "КИВО"

label7 - принимает сокращенное значение "ЧОНО"

label8 - принимает сокращенное значение "ЧОКМОИО"

label10 - первоначально получает пустое значение, а после получает значения графы "Количество искусственно внесенных ошибок"

label11 - первоначально получает пустое значение, а после получает значения графы "Число собственных найденных ошибок"

label12 - первоначально получает пустое значение, а после получает значения графы "Число обнаруженных к моменту оценки искусственных ошибок"

label44 - получает и выводит результат вычислений по формуле Миллса

button1 - принимает текстовое значение "Очистить", а также отчищает все поля в данном блоке.

textBox1 - -получает значение введенных пользовательских данных в графу "Количество искусственно внесенных ошибок"

textBox2 - получает значение введенных пользовательских данных в графу "Число собственных найденных ошибок"

textBox3 - получает значение введенных пользовательских данных в графу "Число обнаруженных к моменту оценки искусственных ошибок"

2.2.4 Макет приложения. Модель Липова(tabPage4)

tabPage4 - содержит группы объектов, label78-74, label84-97, label82, groupBox5, button4.

label74 - принимает текстовое значение "Количество используемых тестов"

label76 - принимает текстовое значение "Общее количество искусственно внесенных ошибок

label77 - принимает текстовое значение "Количество собственных ошибок, до начала тестирования

label78 - принимает текстовое значение "Количество внесенных ошибок к концу тестирования

label86 - принимает текстовое значение "Результат"

label82 - принимает текстовое значение "Исходные данные"

label90 - принимает текстовое значение "Конечный результат"

label91 - принимает текстовое значение "Вероятность обнаружения ошибки при использовании различного числа m тестов"

label92 - получает и выводит результат вычислений по формуле Липова, начальное значение "null"

label85 - принимает сокращенное значение "КИТ"

label84 - принимает сокращенное значение "ОКИВО"

label87 - принимает сокращенное значение "КСОДНТ"

label88 - принимает сокращенное значение "КВОКТ"

label89 - принимает сокращенное значение "КСОКТ"

textBox20 - получает значение введенных пользовательских данных в графу "Количество используемых тестов"

textBox22 - получает значение введенных пользовательских данных в графу "Общее количество искусственных внесенных ошибок"

textBox23 - получает значение введенных пользовательских данных в графу "Количество собственных ошибок до начала тестирования"

textBox24 - получает значение введенных пользовательских данных в графу "Количество внесенных ошибок к концу тестирования"

textBox21 - получает значение введенных пользовательских данных в графу "Количество собственных ошибок к концу тестирования"

button4 - принимает текстовое значение "Очистить", а также отчищает все поля в данном блоке.

2.3 Описание программы

.3.1 tabPage1

Иерархия классов

using System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;

Используемые элементы:;;;;;;

Обработчики событийvoid button5_Click(object sender, EventArgs e)

В данной вкладке одна функция

Функция Suman производит расчет по формуле Шумана и передает результат в соответствующий объект вывода, как изображено на рисунке 1.1

{(textBox20.Text == "")

}(textBox22.Text == "")

}(textBox23.Text == "")

}(textBox21.Text == "")

}(textBox24.Text == "")

MessageBox.Show("Введите числовое значение!");

MessageBox.Show("Введите числовое значение!");

MessageBox.Show("Введите числовое значение!");

MessageBox.Show("Введите числовое значение!");

Результат работы вы можете видеть на рисунке 1.2

Рисунок 1.2 Расчет по модели Шумана

2.3.2 tabPage3

Иерархия классовSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;

using System.IO;

Используемые элементы:

Обработчики событийvoid button3_Click(object sender, EventArgs e)

В данной вкладке тоже одна функция

Функция Moranda производит расчет по формуле Джелинского-Моранды и выводит результат

public void Moranda(EventArgs e_Moranda)

{(textBox11.Text == "")

{.Show("Введите количество ошибок спустя время!", "Модель Джелинского-Моранды");

}(textBox13.Text == "")

{.Show("Введите время обнаружения i-ошибки!", "Модель Джелинского-Моранды");

}(textBox12.Text == "")

{.Show("Введите коэффициент пропорциональности!", "Модель Джелинского-Моранды");

}(textBox10.Text == "")

{.Show("Введите число ошибок первоначально находящихся в программе!", "Модель Джелинского-Моранды");

}t10;(!int.TryParse(textBox10.Text, out t10))

MessageBox.Show("Введите числовое значение!");

int t12;(!int.TryParse(textBox12.Text, out t12))

MessageBox.Show("Введите числовое значение!");

int t13;(!int.TryParse(textBox13.Text, out t13))

MessageBox.Show("Введите числовое значение!");

int t11;(!int.TryParse(textBox11.Text, out t11))

MessageBox.Show("Введите числовое значение!");

{.Show("Ошибка:" + ex.Message);

}lambda, C, N, i, P,t;= Double.Parse(textBox10.Text);= Double.Parse(textBox12.Text);= Double.Parse(textBox11.Text);= Double.Parse(textBox13.Text);= C * (N - i + 1);= lambda * Math.Exp(lambda * (-1) * t);

textBox4.Text = " Функция плотности распределения времени обнаружения i-й ошибки, отсчитываемого от момента выявления:" + P. ToString();

label16.Text = N. ToString();.Text = C. ToString();.Text = i.ToString();.Text = t.ToString();

Результат работы виден на рисунке 1.3

Рисунок 1.3 Результат выполнения расчетов по модели Джелинского-Моранды

2.3.3 tabPage5

Используемые элементы:;;;;;;

Обработчики событийvoid button1_Click(object sender, EventArgs e)

В данной вкладке одна функция

Функция Mills производит расчет по формуле Миллса и выводит результат

public void Mills(EventArgs e_Mills)

{(textBox1.Text == "")

{.Show("Введите количество искусственно внесенных ошибок!", "Модель Миллса");

}(textBox2.Text == "")

{.Show("Введите число собственных найденных ошибок!", "Модель Миллса");

}(textBox13.Text == "")

{.Show("Введите число обнаруженных к моменту оценки искусственных ошибок!", "Модель Миллса");

}t1;(!int.TryParse(textBox1.Text, out t1))

MessageBox.Show("Введите числовое значение!");

int t2;(!int.TryParse(textBox2.Text, out t2))

MessageBox.Show("Введите числовое значение!");

int t3;(!int.TryParse(textBox3.Text, out t3))

MessageBox.Show("Введите числовое значение!");

{.Show("Ошибка:" + ex.Message);

}S, n, V, N;= Double.Parse(textBox1.Text);= Double.Parse(textBox2.Text);= Double.Parse(textBox3.Text);

N = (S * n) / V;.Text = "Первоначальное число ошибок в программе равно:" + N. ToString();

label10.Text = S. ToString();.Text = n.ToString();

label12.Text = V. ToString();

Результат выполнения вычислений по формуле Миллса хорошо видны на рисунке 1.4

2.3.4 tabPage4

Иерархия классовSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;

Используемые элементы:;;;;;;

Обработчики событийvoid button4_Click(object sender, EventArgs e)

В данной вкладке одна функция

Функция Lipov производит вычисления по формуле Липова и выводит результат

public void Lipov(EventArgs e_Lipov)

{(textBox20.Text == "")

{.Show("Введите количество используемых тестов!", "Модель Липова");

}(textBox22.Text == "")

{.Show("Введите общее количество искусственно внесенных ошибок!", "Модель Липова");

}(textBox23.Text == "")

{.Show("Введите количество собственных ошибок до начала тестирования!", "Модель Липова");

{.Show("Введите количество собственных ошибок к концу тестирования!", "Модель Липова");

}(textBox24.Text == "")

{.Show("Введите количество внесенных ошибок к концу тестирования!", "Модель Липова");

// Проверка на введенные значенияt20;

if (!int.TryParse(textBox20.Text, out t20))

MessageBox.Show("Введите числовое значение!");

int t21;(!int.TryParse(textBox21.Text, out t21))

MessageBox.Show("Введите числовое значение!");

int t22;(!int.TryParse(textBox22.Text, out t22))

MessageBox.Show("Введите числовое значение!");

int t24;(!int.TryParse(textBox24.Text, out t24))

MessageBox.Show("Введите числовое значение!");

int t23;(!int.TryParse(textBox23.Text, out t23))

MessageBox.Show("Введите числовое значение!");

{.Show("Ошибка:" + ex.Message);

}m, q, S, N, n, V;= Double.Parse(textBox20.Text);= Double.Parse(textBox22.Text);= Double.Parse(textBox23.Text);= Double.Parse(textBox21.Text);= Double.Parse(textBox24.Text);= (n + V) / n;Q = (m / (n + V)) * Math.Pow(n + V, q) * Math.Pow(m - n - V, 1 - q) * ((N / n) * (S / V) / ((N + S) / (n + V)));.Text = Q. ToString();.Text = m.ToString();.Text = S. ToString();.Text = N. ToString();.Text = V. ToString();.Text = n.ToString();

{.Show("Введены значения, при которых результат отрицателен!", "Модель Липова");

2.3.5 Сохранение результатов

Для сохранения результатов изпользуется обработчик событий ToolStripMenu.

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

Рисунок 1.6 Выбор пути для сохранения

А после подтверждения сохранения, уведомление об успешной операции:

Рисунок 1.7. Уведомление об успешном сохранении.

3. Руководство пользователя

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

Некоторые из параметров статичны и их изменение может привести к некорректной работе программы.

При сохранении программа автоматически присваивает имя файлу в формате "Результаты №" + рандомное число от 0 до 9999. Вы также можете задать свое имя сохранения.

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

Для расчета и получения результатов нажмите кнопку "Рассчитать".

Заключение

Язык программирования C# на основе Visual Studio способен реализовать все необходимые средства для расчета надежности программ.

Во время выполнения поставленной задачи были улучшены навыки программирования, работы с математическими формулами. Разработанная программа наглядно демонстрирует реализацию 4 моделей для определения надежности программного обеспечения. Основное преимущество программа - производство вычислений по 4 моделям одновременно.


Отчет по лабораторной работе на тему:

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

1 . Модель Шумана основана на следующих допущениях:

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

    в начале компоновочных испытаний число ошибок равно некоторой постоянной величине, и по мере исправления ошибок их становится меньше. В ходе испытаний программы новые ошибки не вносятся;

    ошибки изначально различимы, по суммарному числу исправленных ошибок можно судить об оставшихся;

    интенсивность отказов программы пропорциональна числу остаточных ошибок.

Предполагается, что до начала тестирования (т.е. в момент =0) имеется M ошибок. В течение времени тестирования τ обнаруживается ε 1 () ошибок в расчете на одну команду в машинном языке.

Тогда удельное число ошибок на одну машинную команду, оставшихся в системе после времени тестирования τ, равно:

где I - общее число машинных команд, которое предполагается постоянным в рамках этапа тестирования.

Предполагается, что значение функции количества ошибок Z(t) пропорционально числу ошибок, оставшихся в программе после израсходованного на тестирование времени τ.

Z (t) = C * ε 2 (τ),

где С - некоторая постоянная, t - время работы программы без отказов.

Тогда, если время работы программы без отказа t отсчитывается от точки t = 0, а τ остается фиксированным, функция надежности, или вероятность безотказной работы на интервале от 0 до t, равна

Нам необходимо найти начальное значение ошибок M и коэффициент пропорциональности С. Эти неизвестные оцениваются путем пропуска функционального теста в двух точках переменной оси отладки  a и  в, выбранных так, что ε 1 ( a)

В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона:

τ = τ 1 + τ 2 + τ 3 + … + τ n .

Предполагая, что интенсивность появления ошибок постоянна и равна λ, можно вычислить ее как число ошибок в единицу времени,

где A i - количество ошибок на i - ом прогоне.

Тогда
. (5)

Имея данные для двух различных моментов тестирования  a и  в, можно сопоставить уравнения (3) при τ a и τ b:

(6)

(7)

Из соотношений (6) и (7) найдем неизвестный параметр С и М:

(8)

(9)

Получив неизвестные M * и C * , можно рассчитать надежность программы по формуле (2).

Пример 1 .

Программа содержит 2 000 командных строк, из них, до начала эксплуатации (после периода отладки), 15 командных строк содержат ошибки. После
20 дней работы обнаружена 1 ошибка. Найти среднее время безошибочной работы программы и интенсивность отказов программы при коэффициенте пропорциональности, равном 0,7.


Интенсивность отказов

Пример 2.

На условиях примера 1 определить вероятность безошибочной работы программы в течение 90 суток.

Пример 3 .

Определить первоначальное количество возможных ошибок в программе, содержащей 2 000 командных строк, если в течение первых 60 суток эксплуатации было обнаружено 2 ошибки, а за последующие 40 суток была обнаружена одна ошибка. Определить T 0 – среднее время безошибочной работы, соответствующее первому и второму периоду эксплуатации программы и коэффициент пропорциональности.

Интенсивности отказов:

2. Модель Миллса. Пусть в процессе тестирования обнаружено n исходных ошибок и v из S рассеянных ошибок. Тогда оценка N - первоначальное число ошибок в программе - составит

.

Вторая часть модели связана с проверкой гипотезы выражения и тестирования N.

Рассмотрим случай, когда программа содержит К собственных ошибок и S рассеянных ошибок. Будем тестировать программу до тех пор, пока не обнаружим все рассеянные ошибки. В то же время количество обнаруженных исходных ошибок накапливается и запоминается. Далее вычисляется оценка надежности модели:

(11)

как вероятность того, что в программе содержится K ошибок.

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

Формула для расчета С в случае, когда обнаружены не все искусственно рассеянные ошибки, модифицирована таким образом, что оценка может быть выполнена после обнаружения v (vS) рассеянных ошибок:

1
(12)

где числитель и знаменатель формулы при n  К являются биноминальными коэффициентами.

Пример 4 .

Предположим, что в программе имеется 3 собственных ошибки. Внесём ещё 6 ошибок случайным образом.

В процессе тестирования было найдено:

1) 6 ошибок из рассеянных и 2 собственных;

2) 5 ошибок из рассеянных и 2 собственных;

3) 5 ошибок из рассеянных и 4 собственных.

Найти надёжность по модели Миллса - С.

ош - собственные

ош - случайные

по формуле (12)

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

Пусть первая группа обнаружила n 1 ошибок, вторая n 2 , n 12 - это число ошибок, обнаруженных как первой, так и второй группой.

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

.

Эффективность тестирования можно интерпретировать как вероятность того, что ошибка будет обнаружена. Таким образом, можно считать, что первая группа обнаруживает ошибку в программе с вероятностью , вторая - с вероятностью . Тогда вероятность p 12 того, что ошибка будет обнаружена обеими группами, можно принять равной . С другой стороны, так как группы действуют независимо друг от друга, то р 12 = р 1 р 2 . Получаем:

Отсюда получаем оценку первоначального числа ошибок программы:

Пример 5 .

В процессе тестирования программы 1-я группа нашла 15 ошибок, 2-я группа нашла 25 ошибок, общих ошибок было 5. Определить надёжность по простой интуитивной модели.

4. Модель Коркорэна

Применение модели предполагает знание следующих ее показателей:

    модель содержит изменяющуюся вероятность отказов для различных источников ошибок и соответственно разную вероятность их исправления;

    в модели используются такие параметры, как результат только N испытаний, в которых наблюдается N i ошибок i-го типа;

    выявление в ходе N испытаний ошибки i-го типа появляется с вероятностью а i .

Показатель уровня надежности R вычисляют по следующей формуле:

где N 0 - число безотказных (или безуспешных) испытаний, выполненных в серии из N испытаний, k - известное число типов ошибок, a i - вероятность выявления при тестировании ошибки i-го типа,

Y i - вероятность появления ошибок, при N i > 0, Y i = a i , при N i = 0, Y i = 0.

Пример 6 .

Было проведено 100 испытаний программы. 20 из 100 испытаний прошли безуспешно, а в остальных случаях получились следующие данные:

Тип ошибки

Вероятность появления ошибки a i

1. Ошибки вычисления

2. Логические ошибки

3. Ошибки ввода/вывода

4. Ошибки манипулирования данными

5. Ошибки сопряжения

6. Ошибки определения данных

7. Ошибки в БД

Оценить надёжность по модели Коркорэна.

Исходные данные:


Пример 7. Было проведено 100 испытаний программы. 20 из 100 испытаний прошли безуспешно, а в остальных случаях получились следующие данные:

Тип ошибки, i

Вероятность появления ошибки. a i

Число появления ошибок N i при испытании

обеспечения . Кулаков. Управление качеством программного обеспечения . Для подготовки...
  • Создание автоматизированной системы для оптимизации процесса создания надежного программного обеспечения на языке JAVA

    Контрольная работа >>

    Проблема надежности программного обеспечения имеет два аспекта: обеспечение и оценка надежности . Для обеспечения надежности программ предложено... И ИПОЛЬЗУЕМЫЕ СТРУКТУРЫ. Внутреннее состояние модели разрабатываемой системы описывается информацией о...

  • Надежное программное средство как продукт технологии программирования. Исторический и социальный контекст программирования

    Конспект >> История

    Основная причина ошибок при разработке программных средств. Модель перевода и источники ошибок. Интеллектуальные... архитектурная функция? Литература к лекции 6. 6.1. Г. Майерс. Надежность программного обеспечения . - М.: Мир, 1980. - С. 78-91. 6.2. E.W. ...

  • Сертификация и надежность программного обеспечения

    Конспект >> Информатика, программирование

    Пользователь, т.е. программная ошибка не является неотъемлемым свойством программного обеспечения . Наличие ошибки... путях их предупреждения. Модели надежности ПО Классификация моделей надежности ПО Экспоненциальная модель (модель Шумана) Вводится ряд...

  • Программное обеспечение торговых предприятий

    Реферат >> Информатика

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

  • Используемые в данном случае модели надежности представляют интерес прежде всего для прогнозирования отказов в процессе эксплуатации и отладки программы. При этом значения параметров моделей определяют в процессе эксплуатации или отладки программы по данным о моментах возникновения отказов. Отсутствие общих справочных данных объясняется тем, что каждый программист является уникальным технологическим объектом по созданию программ, а каждая его программа – эксклюзивное изделие.

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

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

    Рассматриваемая модель основана на следующих допущениях:

      время до следующего отказа распределено экспоненциально;

      интенсивность отказов программы пропорциональна количеству оставшихся в программе ошибок.

    Согласно этим допущениям вероятность безотказной работы программ как функция времени t i равна:

    P(t i )=exp(- l i × t i ) , (1)

    где l i = С × (N-(i-1)). (2)

    Здесь С – коэффициент пропорциональности;

    N – первоначальное число ошибок программы.

    В выражении (1) отсчет времени t i начинается от момента последнего(i -1) отказа программы, а значениеl i изменяется при прогнозировании разных отказов.

    Значения C иN в выражении (2) определяются по экспериментально зафиксированным интервалам времениD t i между моментами возникновения отказов в процессе отладки программы. На основе методики максимума правдоподобия значениеN получают как решение нелинейного уравнения:

    где К – число экспериментально полученных интервалов между отказами.

    Реально значение N получают методом подбора, основываясь на том, что это целое число.

    Значение коэффициента пропорциональности С получают как:

    . (4)

    Данная методика работает для К³2, т.е. надо иметь хотя бы два экспериментально полученных интервала между моментами возникновения ошибок.

    Пример прогнозирования отказов программного обеспечения

    Пусть в ходе отладки программы зафиксированы интервалы времени D t 1 =10, D t 2 =20, D t 3 =25 между отказами программы. ЗначенияD t могут определяться в единицах времени, а могут – в числе прогонов программы при тестировании. Определим вероятность работоспособности программыP (t 4 )= exp (- l 4 × t 4 ) , т.е. отсутствия следующего, четвертого отказа, начиная от момента устранения третьего отказа и среднее времяТ 4 до следующего отказа программы.

    Решаем уравнение (3) относительно N методом перебора.

    Для N =4 имеем приК=3

    Для N =5

    Наименьшую ошибку обеспечивает N =4 , откуда в соответствии с выражением (4):

    .

    Таким образом вероятность безотказной работы в отсутствии 4-го отказа составляет

    P (t 4 )= exp (-0,02 × t 4 ) , аT 4 =1/ l 4 =50 .

    Напоминаем, что отсчет t 4 начинается после возникновения третьего отказа и определяется в единицах времени или в числе прогонов программы.

    Пример расчета звездообразной сети:

    Локальная вычислительная сеть (ЛВС) обычно включает в свой состав комплект рабочих станций пользователя, рабочую станцию администратора сети (может использоваться одна из пользовательских станций), серверное ядро (комплект аппаратных серверных платформ с серверными программами: файл-сервер, WWW-сервер, сервер БД, почтовый сервер и т.п.), коммуникационное оборудование (маршрутизаторы, коммутаторы, концентраторы) и структурированную кабельную систему (кабельное оборудование).

    Расчет надежности ЛВС начинают с формирования понятия отказа данной сети. Для этого анализируются управленческие функции, выполнение которых на предприятии осуществляется с использованием данной ЛВС. Выбираются такие функции, нарушение которых недопустимо, и определяется оборудование ЛВС, задействованное при их выполнении. Например: безусловно, в течение рабочего дня должна обеспечиваться возможность вызова/записи информации из базы данных, а также обращение к Internet.

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

    При этом учитываются количества и условия работы ремонтно-восстановительных бригад. Обычно принимаются следующие условия:

    Восстановление ограниченное – т.е. в любой момент времени не может восстанавливаться более, чем один отказавший элемент, т.к. имеется одна ремонтная бригада;

    Среднее время восстановления отказавшего элемента устанавливается или исходя из допустимых перерывов в работе ЛВС, или из технических возможностей доставки и включения в работу этого элемента.

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

    Установим в качестве критерия отказа ЛВС отказ оборудования, входящего в ядро сети: серверов, коммутаторов или кабельного оборудования.

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

    Надёжность звездообразной сети.

    Отказы не влияют на отказ всей сети. Надёжность ЛВС определяется надёжностью центрального узла.

    Примем, что рассматриваемая локальная сеть включает один сервер, два коммутатора и четырнадцать кабельных фрагментов, относящихся к ядру сети. Интенсивность отказов и восстановлений для них приведены ниже, по-прежнему К Г =1-l/m.

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

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

    Подсистема серверов:

    l С =2*l 1 =2*10 -5 ; К ГС =1-2*10 -4 ;m С = =0,1 1/ч.

    Подсистема коммутаторов:

    l к =2*10 -5 ; К Гк =1-2*10 -3 ;m к =
    1/ч.

    Подсистема кабелей:

    l л =14*10 -6 ; К Гл =1-14*10 -6 ;m л = 1 1/ч.

    Для всей сети:

    l s =6,5*10 -5 ; К Г s =1-2,4*10 -3 ;m s =0,027 1/ч.

    Результат расчета:

    Т=15 тыс. ч., К Г =0,998, Т В »37 ч.

    Расчет стоимости ЛВС:

    14 сетевых карт: 1500руб.

    Кабель 1км: 2000руб.

    Разъемы: 200руб.

    Сервер: 50тыс. руб.

    Всего: 2 53700 т. Руб.

    error: Content is protected !!