В. Расчет надёжности системы 1 Постановка задачи
Для разрабатываемой CRM-системы необходимо определение следующих свойств: интенсивность отказов ;
средняя наработка на отказ ;
вероятность безотказной работы ;
устойчивость;
восстанавливаемость;
доступность или готовность.
Также необходимо построить график зависимости вероятности безотказной работы от времени.
Разрабатываемая система является восстанавливаемой и имеет надежностную схему, представленную на рисунке 68.
Рисунок 68 – Надежностная схема CRM-системы Установим, что отказ системы наступает при отказе любой из её подсистем.
Расчет производится для этапа нормальной эксплуатации изделия, поэтому считаем, что .
2 Завершенность
Завершенность – свойство программного обеспечения (ПО) не попадать в состояния отказов вследствие ошибок и дефектов в программах и данных. Данное свойство ПО определяется через такие показатели как наработка на ошибку и степень покрытия ПО тестами функций и структуры программы [19].
2.1 Интенсивность отказов
Интенсивность отказов – это условная плотность вероятности возникновения отказа объекта, определяемая при условии, что до рассматриваемого момента отказ не возник [19].
Интенсивность отказов численно равна числу отказов в единицу времени, отнесенное к числу узлов, безотказно проработавших до этого времени [20].
(1)
Для последовательной надежностной схемы общая интенсивность отказов будет определяться по формуле:
(2)
Для сервера (оборудование) значение берем из справочников и условий эксплуатации.
Для web-сервера значение берем из документации на сайте разработчика.
Для сервера базы данных значение берем из документации на сайте разработчика.
Для расчета интенсивности отказа исходного кода системы воспользуемся формулой (1) с учетом коэффициентов надежности:
(3)
Примерное число строк в исходном коде:
Время работы с системой при её тестировании:
Количество ошибок, выявленных за время работы:
- это коэффициент надежности, учитывающий использованный при разработке язык программирования. В данном случае система разрабатывалась на языке PHP, у которого .
- это коэффициент надежности технологии программирования. CRM-система разрабатывалась на основе объектно-ориентированной технологии программирования, поэтому .
Таким образом, Общая интенсивность отказов системы равна:
2.2 Средняя наработка на отказ
Средняя наработка на отказ − это отношение суммарной наработки восстанавливаемого объекта к математическому ожиданию числа его отказов в течение этой наработки [19].
Средняя наработка на отказ определяется по формуле:
(4)
Так как общую интенсивность отказов системы уже была рассчитана, то средняя наработка на отказ равна:
2.3 Вероятность безотказной работы
Вероятность безотказной работы – это вероятность того, что в пределах данной наработки отказ объекта не возникнет [19].
Вероятность безотказной работы для последовательной схемы определяется по формуле:
, где (5)
По-другому эту формулу можно записать как:
, где (6)
Таким образом, вероятность безотказной работы для разработанной системы: . В таблице 31 приведены различные значения вероятности безотказной работы в зависимости от времени работы системы. Таблица 31 – Значения вероятности безотказной работы
Время работы системы t, ч
| Вероятность безотказной работы P(t)
| 1
| 2
| 0
| 1
| 500
| 0,915303111
| 1000
| 0,837779785
| 1500
| 0,766822443
| 2000
| 0,701874967
| 2500
| 0,642428341
|
| Продолжение таблицы 31
| 1
| 2
| 3000
| 0,588016659
| 3500
| 0,538213477
| 4000
| 0,49262847
| 4500
| 0,450904371
| 5000
| 0,412714173
| 5500
| 0,377758567
| 6000
| 0,345763591
| 6500
| 0,316478491
| 7000
| 0,289673747
| 7500
| 0,265139282
| 8000
| 0,242682809
| 8500
| 0,22212833
| 9000
| 0,203314752
| 9500
| 0,186094625
| 10000
| 0,170332989
|
На рисунке 69 изображен график для :
Рисунок 69 – График зависимости вероятности безотказной работы от времени работы системы Ошибки, которые могут возникать в системе, не приводят к катастрофическим последствиям и относят к первой категории «Несущественная». Проявление ошибки может повлечь за собой снижение эффективности функционирования программного обеспечения и практически не приводит к возникновению отказа в нем (вероятность возникновения отказа очень низкая) [21].
2.4 Степень покрытия тестами функций и структуры программы.
Существуют три типа покрытия, для каждого из которых требуется различное число тестовых примеров [19]:
покрытие утверждений;
покрытие ветвей;
покрытие условий.
Покрытие утверждений. Здесь нужно следить за тем, выполнялась ли каждая строка кода, по крайней мере, один раз. Чтобы достичь 100%-го покрытия утверждений, понадобится выполнить утверждение IF, причем оно должно принять значение TRUE для выполнения соответствующего требования THEN.
Покрытие ветвей. Здесь нужно следить за тем, была ли взята каждая ветвь или точка принятия решения при всех возможных исходах. Чтобы покрытие было 100%-м, требуется два прохода через условие IF, когда при одном проходе оно принимает значение TRUE, а при другом – FALSE. Каждый цикл DO–WHILE также должен быть выполнен при условиях TRUE и FALSE. Для утверждений CASE или SWITCH требуются тестовые примеры, которые будут брать все возможные ветки, включая заданные по умолчанию пути.
Покрытие условий. Оно известно также как покрытие предикатов и следит затем, принимает ли каждый операнд в комплексных логических выражениях значения FALSE/TRUE. Комплексные логические выражения содержат операторы AND, OR и XOR.
Каждый из этих типов покрытия содержит в себе более низкие уровни. Достижение 100%-го покрытия ветвей означает 100%-ное покрытие утверждений. Аналогично достижение 100%-го покрытия условий автоматически приводит к удовлетворению 100%-го покрытия ветвей.
На основе тестирования были получены следующие коэффициенты:
1. Коэффициент полноты:
, (7)
где P – степень покрытия тестами в процентах.
.
2. Коэффициент достоверности:
, (8)
где – число прогонов, – число ошибок, обнаруженных во время данных прогонов.
.
|