Показатели надежности программного обеспечения
Все множество различных показателей надежности ПО можно разделить на две группы:
- количественные показатели надежности ПО;
- качественные показатели надежности ПО.
Остановимся более подробно на рассмотрении количественных показателей надежности ПО.
Наиболее удобно в качестве таких показателей использовать статистические и вероятностные показатели хорошо разработанной теории надежности радиоэлектронной аппаратуры. Следует учитывать, что оценка надежности ПО на основе статистической теории надежности аппаратуры возможна в пределах некоторых ограничений, учитывающих специфику ПО как определённого вида продукта человеческого труда.
Говоря о безотказности ПО, характеризующей способность ПО выполнять заданные функции в заданных условиях эксплуатации технической системы, будем считать, что отказ программы есть результат проявления скрытой ошибки.
Следует иметь в виду, что входные данные и данные создаваемые программой, не являются элементами ПО, поскольку их надежность связана с работой внешних устройств и аппаратной части системы. Только константы, вводимые программистом, считаются частью ПО.
Для невосстанавливаемых в ходе эксплуатации программ обобщенной характеристикой безотказности является ВБР ПО, характеризующая вероятность того, что за время отказа не произойдет
,
Интенсивность отказов и среднее время наработки до отказа (среднее время безотказной работы) ПО определяют по формулам:
;
.
Для экспоненциального закона распределения времени безотказной работы и .
Поскольку программы имеют явно выраженные производственные циклы работы, то наработка программы может быть выражена либо через календарное время, либо через машинное время, либо через количество отработанных операторов, решённых задач и т.п.
Один из способов оценки – наблюдение за поведением программы в определённый временной период. Тогда величину среднего времени между отказами (сбоями) ПО можно определить так
,
где – общее количество времени успешного прогона программы, определяемое по выражению
,
где – время непрерывного прогона при безошибочной работе ПО;
– время прогона до появления ошибки ПО;
– общее количество прогонов ПО;
– количество прогонов ПО без ошибок.
Полагая количество ошибок постоянным, можно вычислить приведенные интенсивность отказов и среднее время между отказами ПО :
;
,
где – количество прогонов ПО с ошибками ( ).
Классифицируя отказы ПО по видам отказов – аппаратные, программные, оператора и т.д., можно определить частные (взвешенные) интенсивности отказов по соответствующим видам ошибок – , , и т.д., а общая надёжность определяется как сумма таких интенсивностей. Такой подход может значительно облегчить сбор статистических данных по соответствующим видам отказов на основе независимого анализа программных изделий различных типов.
В случае, если в ходе эксплуатации возможна корректировка ПО или восстановление программы после отказа, вызванного действием помех (сбоев) от внепрограммных источников, а время восстановления достаточно мало по сравнению с временем между отказами или сбоями, обобщающей характеристикой безотказности ПО является интенсивность потока отказов во времени
,
где – среднее число отказов за время .
Тогда среднее время наработки между двумя отказами можно вычислить по выражению
.
Для программ, время корректировки которых сравнимо с временем между отказами, обобщающей характеристикой безотказности является функция готовности , которая характеризует вероятность застать программное изделие в заданный момент времени в работоспособном состоянии.
Способность программного изделия выполнять заданные функции в условиях действия помех (ошибок, сбоев, отказов), возникающих во внепрограммных источниках (техническое обеспечение, исходные данные и пр.) определяется устойчивостью ПО. При оценке устойчивости ПО должны быть заданы параметры окружающей среды, по отношению к которой оценивается устойчивость программ.
Показатель устойчивости - это показатель безотказности, но с использованием условных вероятностей. Условием, при котором вычисляются вероятности, является отказ (сбой) в программе или аппаратуре. Для невосстанавливаемых (некорректируемых) программ обобщенным показателем устойчивости служит условная вероятность безотказной работы
,
где – вероятность ошибки (сбоя) программы или отказа аппаратуры.
Показатели ремонтопригодности ПО характеризуют приспособленность ПО к поиску и устранению ошибок и внесению в него изменений в процессе эксплуатации. Для ПО данные показатели называют показателями корректируемости ПО. Они используются для характеристики восстанавливаемых в ходе эксплуатации программ, к ним относятся:
– вероятность корректировки за заданное время;
– среднее время корректировки ПО;
– параметр потока корректировок.
Для ПО показатель долговечности характеризует свойства программ избегать морального старения при длительном использовании. При этом может использоваться показатель защищенности ПО от посторонних вмешательств в его работу. Долговечность ПО определяется временем отказа ПО вследствие морального старения, а защищенность – вероятностью внесения искажений при постороннем вмешательстве.
В зависимости от условий применения ПО можно выделить три режима (типа) его работы:
1) программа не корректируется, и любой отказ является полным, т.е. после отказа ПО не восстанавливается. Основные показатели надежности для этого режима работы программ - безотказность, устойчивость и защищенность.
2) программа не корректируется, однако после отказа ПО система продолжает функционировать нормально. Основные показатели надежности - безотказность, устойчивость, защищённость и долговечность.
3) после каждого отказа ПО корректируется, отлаживается и только после этого снова продолжается ее эксплуатация. Основные показатели надёжности - безотказность, устойчивость, корректируемость, защищенность.