Проверка правильности функционирования разработанного ПО (корректности,
устойчивости) и удовлетворение его требованиям спецификаций осуществляются на
этапе отладки или тестирования. Как правило, основным фактором отладки является
затраченное на нее время. Поэтому в ряде моделей оценивания надежности программ
наряду с необходимым временем их функционирования при решении конкретных задач
рассматривается и второй временной фактор-время отладки этих программ до
использования по назначению.
Для удобства анализа показателей надежности сложных ПК целесообразно
представить их в виде совокупности менее сложных составляющих, обычно
называемых программными модулями (ПМ). Программный модуль, в свою очередь,
может быть разделен на более мелкие части и т.д. Таким образом, ПМ является
аналогом элемента расчета теории надежности. Обычно он представляет собой
логически самостоятельную программу и вводится, исходя из соображений
исследователя [3].
При исследовании надежности функционирования ПК обычно необходимо решать
две задачи. Первая - по заданной структуре ПК, состоящего из некоторой
совокупности ПМ, имеющих показатели надежности, найти показатель надежности ПК.
Эту задачу традиционно назовем прямой.
Наряду с первой может решаться вторая задача-достижение максимального (минимального)
значения показателя надежности при ограничениях на ресурсы, в качестве которых
выступают время, стоимость и др. Или может решаться задача минимизации величины
ограничения при достижении требуемого (заданного) значения показателя
надежности. Любую из этих задач будем называть обратной.
Постановка задачи. Дан ПК, состоящий из М отдельных
модулей, соединенных между собой. По структуре ПК строится стохастический граф,
содержащий М+2 вершин. Вершина 0 означает исток, а вершина М+1 -сток графа.
Каждый ПМ вызывается на решение с заданной вероятностью, исходя из цели
функционирования или значений исходных данных.
Прямая задача заключается в нахождении вероятности безошибочного решения
задачи ПК, если известны вероятности безошибочных решений задач всех ПМ.
Обратная задача заключается в нахождении максимума вероятности безошибочного
решения задачи ПК при ограничении на общее время отладки всех ПМ, а также в
определении минимального времени отладки всего ПК при заданной вероятности его
безошибочного функционирования.
Прямая задача. Для определения вероятности безошибочного решения
задачи ПК воспользуемся методом расчета вероятностно-временных характеристик
пребывания заявки в сети массового обслуживания (МО) [4]. Однако
непосредственно в том виде, как описано в указанной статье, метод не приемлем,
так как в сети МО времена пребывания заявок в модулях суммируются. В нашей же
задаче должен выполняться принцип слабого звена, свойственный основному
соединению элементов в теории надежности. Поэтому неправильно применять
преобразования Лапласа плотностей распределений времени до ошибок в модулях.
Необходимо вместо них поставить вероятности правильной работы соответствующих
модулей, производящих вычисления на заданных временных интервалах. При этом мы
предполагаем, что модули статистически независимы.
Рассмотрим матрицу
![]()
элементами которой являются произведения
![]()
где Pij-вероятность перехода от i -го ПМ к j -му, а Pi(ti) -вероятность безошибочного функционирования i-го ПМ в течение времени ti.
Так как 0-ая и М+1-ая вершины фиктивные, то предполагаем, что время
нахождения в них равно нулю, а вероятности безошибочной работы - единице.
Введем понятие шага, подразумевая под ним единичный переход от одного ПМ к
другому. Чтобы найти вероятности безошибочной работы за два шага, нужно
просуммировать с соответствующими вероятностями произведения вероятностей по
всем путям, содержащим две вершины (одна из них нулевая). Это достигается
возведением матрицы G в квадрат. При
возведении G в куб получаем вероятности
безошибочного функционирования за три шага и т.д.
Построим матрицу
(1)
где L - единичная матрица.
Элемент матрицы T с номером (0,M+1) представляет собой выражение для вероятности
безошибочной работы всего ПК с учетом всех возможных последовательностей
вызовов отдельных ПМ.
В соответствии с правилами вычисления значений элементов обратной матрицы
[5], выражение для вероятности безошибочной работы ПК можно представить в виде
(2)
где Q(t)-
алгебраическое дополнение элемента с номером (М+1,0) матрицы (L – G(t)); R(t) главный определитель матрицы (L – G(t)).
Выполнив указанные преобразования, получим искомое выражение для
вероятности безошибочного функционирования ПК с учетом задействования всех
возможных маршрутов вычислений.
Обратная задача. Определим минимальное время
отладки ПК при заданной вероятности его безошибочного функционирования P зад. Процесс отладки i -го ПМ обычно
определяется временем его отладки
В известных аналитических
и эмпирических моделях оценивания надежности ПМ [2] параметр
как и параметр ti - заданное время работы i -го модуля, входят в соответствующее выражение для
показателя надежности ПМ. При этом предполагается, что оценки искомых
показателей являются детерминированными известными выражениями, определяемыми
по результатам испытаний. Подобных моделей множество, рассмотреть их все здесь
невозможно. В качестве примера, не нарушая общности подхода, приведем лишь одну
из самых ранних моделей - модель Мусы.
Вероятность безошибочной работы i -го ПМ, согласно данной
модели, можно выразить следующей формулой:
(3)
где
- интенсивность
проявления ошибки;
- интенсивность отладки;
и
- время вычислений и
отладки модуля.
Обычно ![]()
- начальное среднее время
безошибочной работы модуля;
- коэффициент сжатия
времени отладки (тестирования) по сравнению с временем вычислений,
- первоначальное
(предполагаемое) число ошибок в модуле.
Найдем минимальное время отладки ПК
![]()
при котором
![]()
предполагая, что для ПМ справедливо (3). Решение получим на основе метода
неопределенных множителей Лагранжа [6]. Запишем функцию Лагранжа
![]()
![]()
(4)
где
- множитель Лагранжа.
Тогда, дифференцируя (4) по аргументам
и g и приравнивая полученные выражения к нулю,
получим систему уравнений:
(5)
Решив (5)
относительно
получим
![]()
Определим максимальное значение вероятности безошибочного функционирования
ПК при заданном времени его отладки. Будем искать максимум функции P(t,t) при заданном времени
отладки
. Функция Лагранжа в
данном случае имеет вид:
(6)
Дифференцируя (6) по
и
и приравнивая к нулю,
получим систему уравнений:
(7)
Решая
(7), находим искомые значения
а подставляя их в выражение для P(t,t), найдем максимальное значение вероятности безошибочного функционирования ПК.