Главная
страница 1
ЛАБОРАТОРНАЯ РАБОТА №7

Изучение аналитических моделей

надежности программного обеспечения

    1. Цель и задачи работы


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

7.2 Основные теоретические положения


Характеристики надежности

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



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

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

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

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

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

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

Интенсивность отказов ПО с течением времени уменьшается, так как в процессе эксплуатации обнаруживаются и устраняются его скрытые ошибки.

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

Причины отказов ПО:



  • Ошибки, скрытые в самой программе.

  • Искажение входной информации, подлежащей обработке.

  • Неверные действия пользователя (могут быть связаны с некорректной документацией).

  • Неисправность аппаратуры, на которой реализуется вычислительный процесс.

Последствия и признаки появления ошибок в программе.

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

Симптомы проявления ошибки в программе:


  • преждевременное окончание программы;

  • увеличение времени выполнения программы (зацикливание);

  • потери или искажение накопленных данных;

  • нарушение порядка вызова отдельных программ.

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

Аналитические модели надежности программ

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

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

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



Для ПО характерно ступенчатое изменение . Поэтому наиболее простая модель надежности ПО – это дискретная модель:





- постоянная, характеризующая начальное число ошибок;

i(t) – число отказов, устраняемое в момент времени t;



- эмпирический коэффициент, зависящий от характеристик системы.

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

Если i(t) постоянна - получаем простую линейную модель.

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



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



- время наработки на отказ до возникновения m-го отказа;

- математическое ожидание времени между двумя отказами:
.

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



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

m = M(1- exp(-Kτ)), (7.1)

где К – коэффициент пропорциональности;

М – число ошибок, имевшееся перед фазой тестирования.

Рисунок 7.1 Экспоненциальная модель надежности ПО

Пусть среднее время наработки на отказ

.

Если ввести величину - начальное значение средней времени наработки на отказ, то:



, (7.2)

где .

Для того, чтобы определить, какое время тестирования необходимо для обеспечения указанного времени наработки, то необходимо рассчитать параметры закона распределения К и M. Зная эти параметры можно рассчитать прогнозируемое количество в любой момент времени. Следовательно, чтобы определить, какое время тестирования необходимо для определения необходимого времени наработки, нужно итеративно высчитывать промежутки времени между ошибками по формуле (7.2) до тех пор, пока необходимое время наработки не будет достигнуто. Другим способом решения этой задачи является аппроксимация функции вида (7.1) по заданным точкам.

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

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



Вероятность отказа равна . Таким образом можно составить матрицу переходных вероятностей:



Для каждого целого k>0 Рk(i, j) будет определять вероятность перехода из состояния i в состояние j за k шагов. Тогда матрица



Будет определять вероятность перехода и одного состояния в другое за произвольное число шагов.

Вычеркнув из матрицы P две последние строки и два последних столбца, соответствующие успеху С и отказу F, получаем матрицу Q.

Пусть . Положив W = I – Q, имеем:

S = W-1 = (I – Q)-1, откуда надежность программного комплекса:

R = S (1,n ) Rn.


    1. Оборудование

Персональный компьютер AT386 и выше; компилятор языка C, пакет программ MatLab.

    1. Задание на работу


1) Ознакомиться с теоретическими положениями и ответить на контрольные вопросы.

2) Определить, какое время тестирования требуется для достижения указанного времени наработки на отказ. В таблице указано время обнаружения первой и второй ошибки. Задачу решить путем составления программы численного решения уравнений (7.1) или (7.2) на языке высокого уровня.

Решение выполнять с экспоненциальной моделью и моделью с дискретным увеличением наработок на отказ.

Вариант

Время 1-го отказа, с

Время 2-го отказа, с

Время наработки, час

1

0,5

500

20

2

0,2

12

15

3

2

86

3

4

1

34

6

5

2

280

10

3) Определить надежность комплекса программ, который отображается графом, показанным на рис.7.3 (по вариантам). При вычислении определителей матрицы можно воспользоваться программами пакета MatLab.

а) б)

Рисунок 7.3 Варианты заданий по п.2в) г)



Рисунок 7.3(продолжение) Варианты заданий по п.2

    1. Оформление отчета


Отчет должен содержать цель работы, схему алгоритма и листинг разработанной программы экспоненциальной модели надежности, результаты работы программы, а также расчет надежности программного комплекса с помощью Марковской модели.
    1. Контрольные вопросы


  1. Перечислите основные характеристики надежности ПО.

  2. Укажите основные классы скрытых ошибок программного обеспечения.

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

  4. Укажите особенности использования модели надежности с дискретным увеличением времени наработки на отказ и экспоненциальной модели.

  5. Какими способами можно повысить надежность разрабатываемого ПО?

  6. Опишите способы оценки надежности больших программных комплексов.

  7. Расскажите о современных технологиях повышения надежности программного обеспечения.


Смотрите также:
Лабораторная работа №7 Изучение аналитических моделей надежности программного обеспечения Цель и задачи работы
78.58kb.
1 стр.
Лабораторная работа №7 по дисциплине «эксплуатацияэвми систем» Изучение аналитических моделей надежности программного обеспечения
42.81kb.
1 стр.
В точностную теорию надежности программного обеспечения
133.83kb.
1 стр.
Лабораторная работа №1. Общие вопросы обеспечения лазерной безопасности
929.6kb.
7 стр.
Лабораторная работа по химии, физике, биологии, т е. по естественно-научным предметам. На уроках русского языка и литературы термин «лабораторная работа»
261.84kb.
1 стр.
Лабораторная работа №13 Изучение законов фотоэффекта. Цель работы : экспериментальное изучение законов фотоэффекта
113.62kb.
1 стр.
Лабораторная работа №4 спектры и светимость звезд
213.94kb.
1 стр.
Лабораторная работа №3-13. Тема работы: Изучение молекулярного спектра йода
70.67kb.
1 стр.
Лабораторная работа №7 изучение прокаливаемости конструкционной стали
62.38kb.
1 стр.
Лабораторная работа №6 Межпроцессное взаимодействие
279.25kb.
1 стр.
Лабораторная работа №4 «решение дифференциальных уравнений в частных производных»
56.72kb.
1 стр.
«Понятие программы, программного обеспечения. История и перспективы развития по. Классификация и общая характеристика по»
125.91kb.
1 стр.