Оценка надежности программного обеспечения комплексов

реклама
УДК 004(06) Компьютерные системы и технологии
В.В. ГУРОВ
Московский инженерно-физический институт (государственный университет)
ОЦЕНКА НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КОМПЛЕКСОВ ОТВЕТСТВЕННОГО НАЗНАЧЕНИЯ
Рассматриваются особенности разработки моделей надежности программного обеспечения программно-аппаратных
комплексов с повышенными требованиями к надежности.
1.
Построение логической схемы надежности программного обеспечения (ПО) требует учета ряда
факторов, которые в значительной степени отличают надежность ПО от надежности аппаратного обеспечения. Отметим среди них следующие:
2.
– каждая программа представляет собой уникальное изделие, для которого, в отличие от аппаратуры, принципиально отсутствуют какие-либо заводские показатели надежности типа наработки на отказ;
3.
– формулировка отказа системы представляет собой зачастую нетривиальную задачу;
4.
– программные средства практически всегда следует рассматривать как систему, имеющую время
восстановления, отличное от нуля, так как, в отличие от аппаратуры, здесь нельзя заменить один отказавший
модуль на другой, заведомо исправный;
5.
– программы, обеспечивающие дублирование выполняемых функций, нельзя рассматривать как два
полностью идентичных блока. Каждая из них является самостоятельным изделием, с присущими только ей
ошибками проектирования, которое характеризуются собственными потоками отказов;
6.
– большое влияние на показатели надежности программного комплекса оказывают условия функционирования, в число которых входят помимо характеристик технических средств также состав и режимы
работы других программных средств, установленных на данном компьютере.
7.
Данные принципы были положены в основу разработки модели надёжности программного обеспечения сложного распределенного информационно-вычислительного комплекса. Основными особенностями
функционирования комплексов ответственного назначения являются высокие требования к их надежности и,
как следствие, необходимость учёта всех определяющих её факторов. При разработке моделей учитывалось,
что в системе параллельно функционируют три группы программ, каждая из которых вносит свой вклад в показатели надежности: операционная система, системные программы, например, СУБД, а также прикладные
программы.
8.
Учет показателей надежности первых двух типов программ весьма затруднен, так как для них производителями не приводятся какие-либо надёжностные характеристики. Поэтому здесь приходится использовать
оценочные показатели, связанные с длиной программы. В системах, прошедших тестирование, по различным
оценкам остается от шести до ста ошибок на 1000 строк исполняемого кода [1, 2]. В [1] показано, что число ошибок на тысячу строк кода стремится к стабилизации по мере роста числа выпущенных версий, но асимптотически
этот показатель отличается от нуля. Для систем ответственного назначения, к которому можно отнести операционные системы и другое системное ПО, к моменту поставки системы клиенту в нем может содержаться всего
около 0,1 ошибки на 1000 строк кода программы [3]. Однако даже такая незначительная величина не позволяет
полностью отбросить влияние ошибок в этих программных средствах ввиду их собственного большого объема.
Так в ядре ОС Linux содержится более 2,5 миллионов строк кода, в ядре Windows XP – в два с лишним раза
больше. При таких оценках ядро Linux содержит около 250 ошибок, а Windows XP – больше 500 ошибок. Еще
хуже то, что около 70% кода операционных систем занимает код драйверов устройств, для которых частота появления ошибок от трех до семи раз выше, чем в других частях ядра. Так в Windows XP 85% всех аварийных отказов обуславливается наличием ошибок в коде драйверов [2].
9.
Чтобы оценить вклад системных программ в общую надежность программного обеспечения, необходимо знать не только количество имеющихся в нём ошибок, но и законы распределения времени их обнаружения. Такая информация может быть получена на основе анализа протоколов тестирования программных
средств, которые для данного вида программ не доступны пользователю. Оценка вида и параметров этих законов может быть проведена путём ретроспективного анализа на основе информации о времени подготовки к
выходу новой версии ПО и её объёме.
10. Для оценки надежности прикладного программного обеспечения, функционирующего в системе, могут быть использованы более точные модели, базирующиеся на информации о его структуре, протоколах тестирования и отладки, а также журналах неисправностей, имеющихся на объекте.
Список литературы
1. Фатрелл Р.T., Шафер Д.Ф., Шафер Л.И.. Управление программными проектами: достижение оптимального качества при минимуме затрат. - Изд. "Вильямс", 2004. 1136 с.
2. A Lightweight Method for Building Reliable Operating Systems Despite Unreliable Device Drivers. - Technical Report IR-CS-018,
January 2006.
3. Липаев В.В. Анализ и сокращение рисков проектов сложных программных средств. - М.: СИНТЕГ. 2005, 224 с.
ISBN 978-5-7262-0883-1. НАУЧНАЯ СЕССИЯ МИФИ-2008. Том 12
1
Скачать