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

В.А. Смагин
20.05.2005 | 14:00
В.А. Смагин

Тенденция роста сложности программного обеспечения остается устойчивой в связи с массовым применением средств вычислительной техники в различных областях науки и техники. Чрезмерная сложность вновь создаваемых программных комплексов (ПК), высокая стоимость программ и сравнительно низкий уровень качества их производства не позволяют исключить возможность возникновения ошибок, приводящих к нарушению работоспособности вычислительных средств (ВС) и снижению их производительности [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 "Пример". Получим:

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

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

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

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

ЛИТЕРАТУРА

  1. Липаев В.В. Качество программного обеспечения. -М.: Финансы и статистика, 1983.-261 c.
  2. Карповский Е.Я., Чижов С.А. Надежность программной продукции.- Киев: Техника, 1990.-160c.
  3. Баглюк С.И., Мальцев М.Г., Смагин В.А., Филимонихин Г.В. Надежность функционирования программного обеспечения.-С.-Пб.:-1991.-78c.
  4. Смагин В.А., Бубнов В.П., Филимонихин Г.В. Расчет вероятностно-временных характеристик пребывания задач в сетевой модели массового обслуживания.-Изв.вузов. Приборостроение.- Т.XXXII, № 2.-1989.
  5. Гантмахер Ф.Р. Теория матриц.-М.: Наука, 1988.-548 c.
  6. Смирнов В.И. Курс высшей математики.-T.1-M.:ГИТТЛ, 1956.

 

УДК 681.3.06

SMAGIN 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 debugging time of each program module, as well as on definition of a minimum time for achievement of given probability is presented.

Fig.1.Bibl.6.