МЕТОД ОЦЕНИВАНИЯ И ОБЕСПЕЧЕНИЯ НАДЕЖНОСТИ
СЛОЖНЫХ ПРОГРАММНЫХ КОМПЛЕКСОВ
В.А.СМАГИН
Тенденция роста сложности программного обеспечения остается устойчивой в связи с массовым применением средств вычислительной техники в различных областях науки и техники. Чрезмерная сложность вновь создаваемых программных комплексов (ПК), высокая стоимость программ и сравнительно низкий уровень качества их производства не позволяют исключить возможность возникновения ошибок, приводящих к нарушению работоспособности вычислительных средств (ВС) и снижению их производительности [1].
Используя термин “надежность ПО” , аналогично термину “надежность аппаратуры”, необходимо помнить, что “отказы ПО” как результат проявления ошибок имеют совершенно другую физическую природу, чем отказы техники. Однако это не является причиной невозможности использования некоторых терминов и показателей надежности техники при исследовании качества ПО [2]. В частности, это оправдывается и необходимостью решения задачи распределения ресурсов или затрат между самими ВС и их ПО при достижении заданного значения показателя надежности. Одним из важнейших общих показателей надежности, представляющих интерес для практики, является вероятность безошибочного функционирования ПО.
Проверка правильности функционирования разработанного ПО (корректности, устойчивости) и удовлетворение его требованиям спецификаций осуществляются на этапе отладки или тестирования. Как правило, основным фактором отладки является затраченное на нее время. Поэтому в ряде моделей оценивания надежности программ наряду с необходимым временем их функционирования при решении конкретных задач рассматривается и второй временной фактор-время отладки этих программ до использования по назначению.
Для удобства анализа показателей надежности сложных ПК целесообразно представить их в виде совокупности менее сложных составляющих, обычно называемых программными модулями (ПМ). Программный модуль, в свою очередь, может быть разделен на более мелкие части и т.д. Таким образом, ПМ является аналогом элемента расчета теории надежности. Обычно он представляет собой логически самостоятельную программу и вводится, исходя из соображений исследователя [3].
При исследовании надежности функционирования ПК обычно необходимо решать две задачи. Первая - по заданной структуре ПК , состоящего из некоторой совокупности ПМ, имеющих показатели надежности, найти показатель надежности ПК. Эту задачу традиционно назовем прямой
.Наряду с первой может решаться вторая задача-достижение максимального (минимального) значения показателя надежности при ограничениях на ресурсы, в качестве которых выступают время, стоимость и др. Или может решаться задача минимизации величины ограничения при достижении требуемого (заданного) значения показателя надежности. Любую из этих задач будем называть обратной.
Постановка задачи. Дан ПК, состоящий из М отдельных модулей, соединенных между собой. По структуре ПК строится стохастический граф, содержащий М+2 вершин. Вершина 0 означает исток, а вершина М+1 –сток графа. Каждый ПМ вызывается на решение с заданной вероятностью,
исходя из цели функционирования или значений исходных данных.Прямая задача заключается в нахождении вероятности безошибочного решения задачи ПК, если известны вероятности безошибочных решений задач всех ПМ. Обратная задача заключается в нахождении максимума вероятности безошибочного решения задачи ПК при ограничении на общее время отладки всех ПМ, а также в определении минимального времени отладки всего ПК при заданной вероятности его безошибочного функционирования.
Прямая задача. Для определения вероятности безошибочного решения задачи ПК воспользуемся методом расчета вероятностно-временных характеристик пребывания заявки в сети массового обслуживания (МО) [4]. Однако непосредственно в том виде, как описано в указанной статье, метод не приемлем, так как в сети МО времена пребывания заявок в модулях суммируются. В нашей же задаче должен выполняться принцип слабого звена, свойственный основному соединению элементов в теории надежности. Поэтому неправильно применять преобразования Лапласа плотностей распределений времени до ошибок в модулях. Необходимо вместо них поставить вероятности правильной работы соответствующих модулей, производящих вычисления на заданных временных интервалах. При этом мы предполагаем, что модули статистически независимы.
Рассмотрим матрицу элементами которой являются произведения где -вероятность перехода от
-го ПМ к -му, а -вероятность безошибочного функционирования-го ПМ в течение времени Так как 0-ая и М+1-ая вершины фиктивные, то предполагаем, что время нахождения в них равно нулю, а вероятности безошибочной работы - единице.
Введем понятие шага, подразумевая под ним единичный переход от одного ПМ к другому. Чтобы найти вероятности безошибочной работы за два шага, нужно просуммировать с соответствующими вероятностями произведения вероятностей по всем путям, содержащим две вершины (одна из них нулевая). Это достигается возведением матрицы в квадрат. При возведении в куб получаем вероятности безошибочного функционирования за три шага и т.д.
Построим матрицу
(1)
где
- единичная матрица.Элемент матрицы с номером (0,M+1) представляет собой выражение для вероятности безошибочной работы всего ПК с учетом всех возможных последовательностей вызовов отдельных ПМ.
В соответствии с правилами вычисления значений элементов обратной матрицы [5], выражение для вероятности безошибочной работы ПК можно представить в виде
(2)
где
-алгебраическое дополнение элемента с номером (М+1,0) матрицы главный определитель матрицыВыполнив указанные преобразования, получим искомое выражение для вероятности безошибочного функционирования ПК с учетом задействования всех возможных маршрутов вычислений.
Обратная задача. Определим минимальное время отладки ПК при заданной вероятности его безошибочного функционирования Процесс отладки -го ПМ обычно определяется временем его отладки В известных аналитических и эмпирических моделях оценивания надежности ПМ [2] параметр как и параметр -заданное время работы -го модуля, входят в соответствующее выражение для показателя надежности ПМ. При этом предполагается, что оценки искомых показателей являются детерминированными известными выражениями, определяемыми по результатам испытаний. Подобных моделей множество, рассмотреть их все здесь невозможно.
В качестве примера, не нарушая общности подхода, приведем лишь одну из самых ранних моделей - модель Мусы.Вероятность безошибочной работы -го ПМ, согласно данной модели, можно выразить следующей формулой:
(3)
где -интенсивность проявления ошибки; -интенсивность отладки; и -время вычислений и отладки модуля.
Обычно -начальное среднее время безошибочной работы модуля;
- коэффициент сжатия времени отладки (тестирования) по сравнению с временем вычислений, -первоначальное (предполагаемое) число ошибок в модуле.Найдем минимальное время отладки ПК при котором предполагая, что для ПМ справедливо (3). Решение получим на основе метода неопределенных множителей Лагранжа [6]. Запишем функцию Лагранжа
(4)
где -множитель Лагранжа.
Тогда, дифференцируя (4) по аргументам и и приравнивая полученные выражения к нулю, получим систему уравнений:
(5)
Решив (5) относительно получим
Определим максимальное значение вероятности безошибочного функционирования ПК при заданном времени его отладки. Будем искать максимум функции при заданном времени отладки
. Функция Лагранжа в данном случае имеет вид:(6)
Дифференцируя (6) по и и приравнивая к нулю, получим систему уравнений:
(7)
Решая (7), находим искомые значения а подставляя их в выражение для найдем максимальное значение вероятности безошибочного функционирования ПК.
Пример. 1. Найдем значение вероятности безошибочного функционирования ПК, стохастический граф которого показан на рисунке.
Известны: описывается формулой (3). В данном случае M=3.
Матрицы и имеют вид:
,
.
Элемент матрицы с номером (0,4) согласно (2) где алгебраическое дополнение элемента (4,0) матрицы Раскрывая данные определители, получим:
(8)
В (7) аргументы и для краткости опущены. Подставляя исходные данные в (8), положив будем иметь
2. Пусть задано значение вероятности для ПК
Требуется найти времена отладок каждого модуля и суммарное минимальное время отладки ПК. Поступая, как описано в п. “Обратная задача”, находим3. Пусть задано время отладки ПК
Требуется найти времена отладок каждого модуля и максимальное значение вероятности его безошибочного функционирования при тех же данных п.1 “Пример”. Получим:Приведенный числовой пример иллюстрирует возможность использованиярассмотренного метода в решении прикладных задач, связанных с анализом надежности программных комплексов и обеспечением требуемых значений показателей их надежности при отладке.
Заключение. Предложенный метод позволяет производить оценку надежности сложных программных комплексов при известных показателях надежности составляющих модулей и их вероятностной взаимосвязи в стохастическом графе.
Разработчики программ и лица, выполняющие отладку вновь создаваемых программных комплексов, могут получать временные оценки для выбора оптимальных величин времени отладки программных модулей и ко-мплексов программ в целом. При решении задач обеспечения заданной надежности программного комплекса нетрудно учесть с помощью коэффициентов квалификацию разработчиков программ конкретных программных модулей.
В методе могут использоваться любые модели “роста надежности”, получаемые теоретически или на основе экспериментальных данных.
ЛИТЕРАТУРА
УДК 681
.3.06SMAGIN V. A.
METHOD OF EVALUATION AND IMPROVEMENT RELIABILITY OF COMPLICATED PROGRAM COMPLEXES
Abstract.
In the article a matrix valuation method of program complexes reliability, consisting from set of program modules and probabilistic connections between them is stated. Expression for probability of correct functioning of a complex (direct problem) is obtained.
The decision of problem on distribution of a complex general debugging time to debug- ging time of each program module, as well as on definition of a minimum time for achi-vement of given probability is presented.
Fig.1.Bibl.6.
.
Только подписка гарантирует Вам оперативное получение информации о новинках данного раздела
Нужное: Услуги нянь Коллекционные куклы Уборка, мытье окон