Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ГЛАВА 7. ОЦЕНКА НАДЕЖНОСТИ ПО АСОИУ



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

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

Используя термин «надежность программного комплекса», аналогично термину «надежность аппаратуры», следует помнить, что отказы программного комплекса», как результат проявления ошибок, имеют совершенно другую физическую природу, чем отказы техники. Однако это не является при6чиной невозможности использования некоторых терминов и показателей надежности техники при исследовании надежности программного комплекса. В частности, это оправдывается и необходимостью решения задачи распределения ресурсов или затрат между самими вычислительными средствами и их программным обеспечением при достижении заданного значения показателя надежности.

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

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

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

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

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

Лекция 4

 

7.2. Постановка и модель решения прямой задачи

 

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

Рассмотрим матрицу .

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

Согласно [1 и 2] вероятность безошибочной работы модуля программного обеспечения можно вычислить по следующей формуле:

,                                                     (1)

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

([1] Mysa J. A theory of software reliability and its application.// IEEE Trans. OnsoftwareEng., vol. SE-1, sept. 1975. – P.312-327.

[2] КузнецовВ.В, СмагинВ.А. Прямаяиобратнаязадачинадёжностисложныхпрограммныхкомплексов.// Надёжность и контроль качества. – 1997. – № 10. – С. 56-62.)

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

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

Построим следующую матрицу :

,                                          (2)

где  - единичная матрица.

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

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

,                                                             (3)

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

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

Рассмотрим следующий пример 1.

Пусть задан следующий стохастический граф, отображающий работу программного комплекса из трех программных модулей (рис.1).

Для данного программного комплекса известны следующие его параметры:

- коэффициенты сжатия времени отладки (тестирования) по сравнению со временем вычислений ;

- время вычислений программными модулями ;

- первоначальное (предполагаемое) число ошибок в модулях ;

-интенсивности проявления ошибки в модулях

;

 

- вероятности перехода от одного модуля к другому

- вероятности безошибочной работы программных модулей вычислим по формуле (1), полагая, что время отладки модуля с номером  для простоты вычислений равно нулю:

.

Матрица  размерности для данного примера имеет следующий вид:

 

Построим вначале матрицу

Элемент матрицы  с номером (0, 4) согласно формуле (3) равен отношению алгебраического дополнения элемента (4, 0) матрицы и главного определителя этой матрицы. Раскрывая эти определители, получим следующее выражение:

 

(4)

Таким образом, для данного примера вероятность безошибочного решения задачи рассматриваемым программным комплексом равна 0, 56, т.е. чуть больше половины.

 

7.3. Постановка и модель решения обратной задачи

 

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

Функция Лагранжа для данного примера имеет следующий вид:

,                                        (5)

где  - множитель Лагранжа.

Дифференцируя выражение (5) по аргументам  и , получим следующую систему уравнений:

                                                 (6)

Решив систему уравнений (6) относительно , получим .

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

.                                          (7)

Дифференцируя выражение (7) по переменным  и  и приравняв их нулю, получим следующую систему уравнений:

 

                                                              (8)

 

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

Рассмотрим следующий пример 2. Пусть задано значение вероятности для программного комплекса . Требуется найти времена отладок каждого модуля и суммарное минимальное время отладки программного комплекса.

Поступая, как описано в п. «Обратная задача», находим . Отсюда следует, что время отладки всего программного комплекса равно .

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

.

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

ГЛАВА 8. ПРИМЕРЫ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ ДЛЯ АСОИУ РАЗРАБАТЫВАЮЩЕГО ПРЕДПРИЯТИЯ


Поделиться:



Последнее изменение этой страницы: 2019-03-29; Просмотров: 345; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.025 с.)
Главная | Случайная страница | Обратная связь