Классификация моделей надежности программного обеспечения

Классификация моделей надежности программного обеспечения

Чернов А.В, Паращенко И.Г.

Развитие области надежности программного обеспечения берет начало с 1970х годов. В это же время была разработана большая часть из моделей надежности программного обеспечения [3, 4, 5, 6]. Основными критериями классификации моделей выступали два достаточно простых метода исследования:

1. Исследование количества ошибок за определенный период времени (измерение времени «в режиме настенных часов» или измерение времени относительно исполнения процессов устройствами компьютера).

2. Исследование временных отрезков между ошибками.

Считалось, что модели классифицированные данным способом взаимно не пересекаются и могут включать в себя частные случаи в каждом исследовании [7]. Одной из первых сложных моделей развития признана модель Мусса и Окумото [8]. Для построения данной модели использовался набор атрибутов, включавших в себя:

- временной отрезок;

- общее количество ошибок, которые возможно отследить за бесконечный или конечный отрезок времени;

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

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

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

С развитием области разработки и практического применения программного обеспечения схема классификации моделей надежности программного обеспечения значительно расширилась. Разработаны не только новые критерии классификации, но и за счет объединения и пересечения нескольких критериев в различный моделях усложнилась структура классификации [9].

К наиболее часто употребляемым методикам и факторам надежности программного обеспечения относятся: стадия жизненного цикла разработки программного обеспечения (классификация моделей зависит от этапа, на котором рассчитывается надежность программного обеспечения), возможность раннего прогнозирования ошибок, ориентированность на информацию либо архитектуру (классификация производиться на основании проверки правильности входных/выходных данных, либо на проверке функционального наполнения программного обеспечения), рост надежности программного обеспечения в процессе выявления и исправления ошибок и т.д. [1]

Классификация по данным факторам представляется наиболее полной, позволяя представить не только сами модели, но и взаимосвязь между ними

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

Существует схема классифицирующая все модели надежности на аналитические и эмпирические. Эмпирические модели надежности, в свою очередь, подразделяют на модели сложности и модели определяющие время, необходимое на «доводку» программы. Так же аналитические модели надежности на динамические

и статические (по области ошибок, по области данных) [5]. В качестве примера пересечения различных квалификаций можно привести модель Шумана. Классификация на рисунке 1 относит модель Шумана к моделям рассматриваемым на этапе проектирования программного обеспечения и к архитектурно ориентированным моделям. Другая схема классификации относит модель Шумана к аналитическим динамическим дискретным моделям.

Рис. 1. - Классификация моделей надежности программного обеспечения

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

Формула расчета надежности одной из базовых моделей Муссы выглядит следующим образом [8]:

P

где U(t. ) - среднее число ошибок на момент времени 1,, x = 0, 1, ...

Модель Джелинского - Моранды рассматривает временные периоды между сбоями программного обеспечения.

f(X,\T,-1 ) = z(X , |T-1)exp(-z(X, |T,-1)X,) =

.

= ф[ N-

где: Xj=TrTj_j _ время между программными сбоями, i=1, ... , n.

Соответственно X,, является независимой экспоненциально распределенной случайной величиной со значением функции равной:

Ф^-

СПИСОК ЛИТЕРАТУРЫ

1. Гуда А.Н., Калинин Т.С., Чернов А.В. Реализация- надежного программно-го обеспечени-я задач техническо-й диагностик-и информацио-нно-управляющи-х систем // Известия высших учебных заведений. Северо-Кавказский- регион. Технически-е науки. №4, 2011. C.26-31.

2. Белявский Г.И., Чернов А.В. Математиче-ские модели линейных контролиру-емых дискретных- динамическ-их систем // Научно-технически-е ведомости Санкт-Петербургс-кого государств-енного политехнич-еского университе-та. _ СПб., 2009. _ №2. _ С. 145 _ 151.

3. William F. Software reliability modeling survey - Naval Surface Warfare Center, 1996.

4. Luy M.R. Handbook of sotware reliability engineering - IEEE Computer Society Press, 1996.

5. Ch. Ali Asad, Muhammad Irfan Ullah, Muhammad Jaffar-Ur Rechman An approach for software reliability model selection - IEEE Computer Society Press, 2004.

6. Shooman M.L. Operational Testing and Software Reliability Estimation During Program Developments - IEEE Computer Society, 1973.

7. Coutinho J. deS. Software Reliability Growth - IEEE Symposium on Computer Software Reliability, 1973.

8. Musa J. D., Okumoto, K. Software Reliability Models: Concepts, Classification, Comparisons, and Practice - Electronic Systems Effectiveness and Life Cycle Costing, 2000.

9. Moranda P.L., Jelinski Z. Final Report on Software Reliability Study - McDonnell Douglas Astronautics Company, 1972.