Модели надежности Марковского и Пуассоновского типов

Марковский процесс характеризуется дискретным временем и конечным множеством состояний. Временной параметр пробегает неотрицательные числовые значения, а процесс (цепочка) определяется набором вероятностей перехода pij (n), т.е. вероятностью на n– шаге перейти из состояния i в состояние j. Процесс называется однородным, если он не зависит от n.

В моделях, базирующихся на процессе Маркова, предполагается, что количество дефектов, обнаруженных в ПС, в любой момент времени зависит от поведения системы и представляется в виде стационарной цепи Маркова [13, 17, 18]. При этом количество дефектов конечное, но является неизвестной величиной, которая задается в для модели виде константы. Интенсивность отказов в ПС или скорость прохода по цепи зависит лишь от количества дефектов, которые остались в ПС.

К этой группе моделей относятся: Джелинського–Моранды [23], Шика–Вулвертона [24], Шантикумера [24] и др.

Ниже рассматриваются некоторые модели надежности, которые обеспечивают рост надежности ПО (называются моделями роста надежности [17]), находят широкое применение на этапе тестирования и описывают процесс обнаружения отказов при следующих основных предположениях:

– все ошибки в ПС не зависят друг от друга с точки зрения локализации отказов;

– интенсивность отказов пропорциональна текущему числу ошибок в ПС (убывает при тестировании программного обеспечения);

– вероятность локализации отказов остается постоянной;

– локализованные ошибки устраняются до того, как тестирование будет продолжено;

– при устранении ошибок новые ошибки не вносятся.

Приведем основные обозначения используемых величин при описании моделей роста надежности:

m – число обнаруженных отказов ПО за время тестирования;

Хi – интервалы времени между отказами i–1 и i, при i =1,..., m;

Si – моменты времени отказов (длительность тестирования до i– отказа), Si = Xk при i = 1,..., m;

T – продолжительность тестирования программного обеспечения (время, для которого определяется надежность);

N – оценка числа ошибок в ПО в начале тестирования;

M – оценка числа прогнозированных ошибок;

MТ – оценка среднего времени до следующего отказа;

E (Tp) – оценка среднего времени до завершения тестирования;

Var (Tp) – оценка дисперсии;

R ( t) – функция надежности ПО;

Zi ( t) – функция риска в момент времени t между i–1 и i отказами;

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

b – частота обнаружения ошибок.

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

Модель Джелински–Моранды. В этой модели используются исходные данные, приведенные выше, а также:

m – число обнаруженных отказов за время тестирования,

Xi – интервалы времени между отказами,

Т – продолжительность тестирования.

Функция риска Zi (t) в момент времени t расположена между i–1 и i имеет вид:

Zi (t) = c (N – n i–1) ,

где i = 1 ,.., m; Ti–1 < t < Ti .

Эта функция считается ступенчатой кусочно–постоянной функцией с постоянным коэффициентом пропорциональности и величиной ступени – с.

Оценка параметров c и N производится с помощью системы уравнений:

m m

S 1 / (N – ni–1) – S c Xi = 0

i =1 i =1

m

n/c – NT – S Xi ni–1 = 0

i =1

m

При этом суммарное время тестирования вычисляется так: Т = S Хi

i =1

Выходные показатели для оценки надежности относительно указанного времени T включают:

– число оставшихся ошибок Mт = N–m;

– среднее время до текущего отказа MТт = 1/( N–m) c;

– среднее время до завершения тестирования и его дисперсия

N–n

E (Tp) = S (1/ ic) ,

i =1

N–n

Var (Tp) = S 1/( ic) 2

i =1

При этом функция надежности вычисляется по формуле:

Rт ( t) = exp (– (N– m) ct),

при t>0 и числе ошибок, найденных и исправленных на каждом интервале тестирования, равным единице.

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

m – число обнаруженных отказов за время тестирования,

Xi – интервалы времени между отказами,

Т – продолжительность тестирования.

Функции риска Zi (t) в момент времени между i–1 и i–m отказами определяются следующим образом:

Zi ( t) = c (N – n i –1), где i = 1 ,..., m; Ti–1 < t < Ti ,

m

Т = S Хi .

i =1

Эта функция является линейной внутри каждого интервала времени между отказами, возрастает с меньшим углом наклона.

Оценка c и N вычисляется из системы уравнений:

m m

S 1/(N – ni–1) – S Xi 2 /2 = 0

i =1 i =1

m

n/c – S (N – ni–1 ) Xi 2 / 2 = 0

i =1

К выходным показателям надежности относительно продолжительности T относятся:

– число оставшихся ошибок Mт = N–m;

– среднее время до следующего отказа MTт = (p / (2 ( N–m) c) ) 1/2 ;

– среднее время до завершения тестирования и его дисперсия

N–m

E (Tp) = S (p / (2 i c)) 1/2 ,

i=1

N–m

Var (Tp) = S ( (2– p /2) / i c );

i=1

Функция надежности вычисляется по формуле:

R Т ( t) = exp (–(N–m) ct2 /2) , t ³ 0.

Модель Пуассоновского типа базируется на выявлении отказов и моделируется неоднородным процессом, который задает {M(t), t³0} – неоднородный пуассоновский процесс с функцией интенсивности l(t), что соответствует общему количеству отказов ПС за время его использования t.

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

Исходные данные этой модели:

m – число обнаруженных отказов за время тестирования,

Xi – интервалы времени между отказами,

Т – продолжительность тестирования.

Функция среднего числа отказов, обнаруженных к моменту t имеет вид:

m ( t) = N (1 – e –bt ) ,

где b – интенсивность обнаружения отказов и показатель роста надежности q ( t) = b.

Функция интенсивности l ( t) в зависимости от времени работы до отказа равна

l ( t) = Nb –bt , t ³ 0.

Оценка b и N получаются из решения уравнений:

m/N –1 + exp (–bT) = 0

m

m/b – S ti – Nm exp (–bT) =0

i=1

Выходные показатели надежности относительно времени T определяют:

1) среднее число ошибок, которые были обнаружены в интервале [ 0, T]

E (NT ) = N exp (–bT) ,

2) функцию надежности

RT ( t) = exp (–N (e –bt – e –bt (t+т) )) , t ³ 0.

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

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

– вероятность безотказной работы;

– среднее время до следующего отказа;

– число необнаруженных отказов (ошибок);

– среднее время для дополнительного тестирования программы.

Модель анализа результатов прогона тестов использует в своих расчетах общее число экспериментов тестирования и число отказов. Эта модель определяет только вероятность безотказной работы программы и выбрана для случаев, когда предыдущие модели нельзя использовать (мало данных, некорректность вычислений). Формула определения вероятности безотказной работы по числу проведенных экспериментов имеет вид:

P = 1 – Neх /N ,

где Neх – число ошибочных экспериментов, N – число проведенных экспериментов для проверки работы ПС.

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

Контрольные вопросы и задания

1. Определите понятие – качество ПО.

2. Назовите основные аспекты и уровни модели качества ПО.

3. Определите характеристики качества ПО и их назначение.

4. Какие методы используются при определении показателей качества?

5. Определите метрики программного продукта и их составляющие.

6. Какие стандарты в области качества ПО существуют?

7. Назовите основные цели и задачи системы управления качеством.

8. В чем суть инженерии качества?

9. Назовите содержание классификации моделей надежности.

10. Определите типы моделей надежности и их базис.

11. Какие данные необходимы для оценивания надежности ПО?

Литература к теме 9.

1.ISO/IEC 9126. Infofmation Technology. – Software Quality Characteristics and metrics. – 1997.

2. ДСТУ 2844–1994. Программные средства ЭВМ. Обеспечение качества. Термины и определения..

3. ДСТУ 2850–1994. Программные средства ЭВМ. Обеспечение качества. Показатели и методы оценки качества программного обеспечения.

4. ДСТУ 3230–1995. Управление качества и обеспечение качества. Термины и определения.

5. Haag S., Raja H.K., Sekade L.L. Quality Function Deployment. Usage in Software Development// Comm. оf ACM.– 1998. –39. –N1.

6. Кулаков А.Ю. Оценка качества программ ЭВМ .–Киев: Технiка.–1984.–167с.

7. Липаев В.В. Методы обеспечения качества крупномасштабных программных систем. – М.: СИНТЕГ.– 2003.–510 с.

8. Андон Ф.И., Суслов В.Ю., Коваль Г.И., Коротун Т.М. Основы качества программных систем.–Киев, Академпериодика.– 2002.–502с.

9. Липаев В.В. Надежность программного обеспечения АСУ.–М.: Сов.радио, 1977.–400с.

10. Майерс Г. Надежность программного обеспечения .– М.: Мир, 1980.–360с.

11. Гласс Г. Руководство по надежному программированию.–М.: Финансы и

Статистика, 1982.–256с.

12. Тейер Т., Липов Р., Нельсон Э. Надежность программного обеспечения.–М.:

Мир, 1981.– 325с.

13. Барлоу Р., Прошан Ф. Математическая теория надежности. Пер.с анг. М.: 1969.–483с.

14. Meyer B. The role of Object–Oriented Metrics.– Computer, 1998. –№11.–p.23–125.

15. NASA –STD–2201/ Software Assurance Standart, 1993.

16. ISO 14598. Information Technology – Software product evolution– Part1: General overview.–1996.

17. Мороз Г.Б., Лаврищева Е.М. Модели роста надежности программного обеспечения.– Киев.–Препринт 92–38, 1992.– 23с.

18. Коваль Г.И. Подход к прогнозированию надежности ПО при управлении проектом // Проблемы программирования. –2002. – № 1 – 2. – С. 282 – 290.

19. John D. Musa, Anthony Iannino, and Kazuhira Okumoto. Software Reliability: Measurement, Prediction, Application. Whippany, NJ: McGraw–Hill, 1987.

20. Musa J.D. Okumoto K.A. Logarithmic Poisson Time Model for Software Reliability Measurement //Proc. Sevent International Conference on Software Engineering. – Orlando, Florida. – 1984. –P. 230–238.

21.Goel A.L. Software reliability models& Assumptions, Limitations and Applicability// IEEE Trans.– N2.–p.1411–1423.

22. Sukert A.N., Goel A.L. A guidebook for software reliability assessment /Proc. Annual Reliability and Maintainability Symp. – Tokio (Japan). – 1980. –P. 186 – 190.

23. Jelinski Z., Moranda P. Software reliability research /Statistical computer performance evaluation W.Freiberger, Ed. Academic Press. –1972. – Р. 465–484.20.

24. Shick G.J., Wolverton R.W. An analysis of computing software reliability models /IEEE Tras. Software Eng. – V. SE–4. – № 2. – 1978. P. 104–120.

25. Yamada S., Ohba M., Osaki S. S–shaped software reliability grows modeling for software error detection / // IEEE Trans. Reliability. – 1983. – R–32. – № 5. – P. 475–478.

26. Schneidewind N.F. Software Reliability Model with Optimal Selection of Failure Data //IEEE Trans. on Software Eng. – 1993. – № 11. –P. 1095–1104.

27. Shanthikumar J.G. Software reliability models: A Review //Microelectron. Reliab. – 1983. –V. 23. –№ 5 – Р. 903–943.

Тема 10

Наши рекомендации