Модели надежности Марковского и Пуассоновского типов
Марковский процесс характеризуется дискретным временем и конечным множеством состояний. Временной параметр пробегает неотрицательные числовые значения, а процесс (цепочка) определяется набором вероятностей перехода 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