- •Оглавление
- •3.3. Математические модели надежности аппаратуры ис 36
- •4.Расчет аппаратурной надежности ис на этапе проектирования 45
- •4.5. Расчет надежности ремонтируемых систем 57
- •5. Методы обеспечения контроля и диагностики аппаратуры ис 66
- •1. Основные понятия, термины и определения
- •1.1. Система и ее элементы
- •1.2. Понятия надежности и отказа системы (элемента)
- •1.3 Основные определения в области качества и надежности программного обеспечения (по) ис
- •1.4. Основные определения в области надежности подсистемы человек - оператор ис
- •1.5. Проблема стандартизации в области надежности и качества
- •2. Факторы, влияющие на надежность информационных систем
- •2.1. Общая характеристика факторов, влияющих на надежность ис
- •2.2. Влияние внешних воздействующих факторов при эксплуатации ис
- •2.3. Общие принципы обеспечения надежности сложных технических систем
- •Показатели надежности аппаратуры ис и используемые модели надежности
- •Основные показатели надежности невосстанавливаемых объектов
- •3.1.1. Вероятность безотказной работы
- •3.1.2. Вероятность отказа
- •3.1.3. Средняя наработка до отказа
- •3.1.4. Интенсивность отказов
- •3.2. Показатели надежности восстанавливаемых объектов
- •3.2.1. Показатели безотказности восстанавливаемых объектов
- •3.2.1.1. Параметр потока отказов
- •3.2.1.2. Средняя наработка на отказ объекта
- •3.2.2. Показатели ремонтопригодности
- •3.2.2.1. Вероятность восстановления
- •3.2.2.2. Среднее время восстановления
- •3.2.2.3. Интенсивность восстановления
- •3.2.3. Показатели долговечности
- •3.2.3. Комплексные показатели надежности
- •3.2.3.1. Коэффициент готовности
- •3.2.3.2. Коэффициент оперативной готовности
- •3.2.3.3. Коэффициент технического использования
- •3.2.3.4. Коэффициент сохранения эффективности
- •3.3. Математические модели надежности аппаратуры ис
- •3.3.1. Модели потоков событий
- •3.3.1.1. Простейший поток отказов
- •3.3.1.2. Потоки Эрланга
- •Законы распределения дискретных случайных величин
- •3.3.2.1. Биномиальный закон распределения числаn появления событияАвmнезависимых испытаниях.
- •3.3.2.2. Пуассоновское распределение появления n событий за время наблюдения t
- •3.3.3. Законы распределения непрерывных случайных величин
- •3.3.3.1. Экспоненциальное распределение
- •3.3.3.2. Нормальное распределение
- •3.3.3.3. Гамма - распределение
- •3.3.4. Марковские процессы
- •Расчет аппаратурной надежности ис на этапе проектирования
- •4.1. Составление логических схем
- •4.2. Расчет надежности нерезервированной невосстанавливаемой системы
- •4.3. Учет влияния режимов работы элементов на надежность систем
- •4.4. Расчет надежности невосстанавливаемых резервированных систем
- •4.4.1. Резервирование с целой кратностьюk с постоянно включенным резервом или нагруженное резервирование замещением с абсолютно надежными переключателями
- •4.4.1.1. Общее резервирование
- •4.4.1.2 Раздельное резервирование
- •4.4.1.3. Общее резервирование с дробной кратностью
- •4.4.2. Резервирование замещением ненагруженное и облегченное с абсолютно надёжными переключателями.
- •4.4.2.1.Общее ненагруженное резервирование замещением
- •4.4.2.2. Облегченное резервирование замещением
- •4.4.3. Резервирование с учетом надежности переключателей.
- •4.4.4. Скользящее резервирование
- •4.5. Расчет надежности ремонтируемых систем
- •4.5.1. Общая характеристика методов расчета надежности ремонтируемых систем
- •4.5.2. Вычисление функций готовности и простоя нерезервированных систем
- •4.5.3. Особенности расчета резервированных восстанавливаемых систем
- •4.5.3.1. Ненагруженное резервирование с восстановлением
- •4.5.3.2. Нагруженное резервирование замещением с восстановлением
- •4.5.4. Расчет надежности восстанавливаемых систем, перерывы, в работе которых в процессе эксплуатации недопустимы
- •4.5.5. Примеры решения типовых задач
- •5. Методы обеспечения контроля и диагностики аппаратуры ис
- •5.1. Контроль технического состояния ис в процессе эксплуатации
- •5.1.1. Основные определения в области контроля ис
- •Методы контроля аппаратуры ис
- •5.1.2.1. Оперативные методы контроля аппаратуры
- •5.1.2.2. Тестовый контроль аппаратуры
- •5.2. Основы диагностирования информационных систем
- •5.2.1. Метод построения квазиоптимальных тестов Шеннона – Фано
- •5.2.2. Организация тестирования персонального компьютера
- •6. Основы моделирования и расчета надежности программного обеспечения
- •6.1. Модель анализа надежности программных средств
- •6.2. Статистика ошибок по ис
- •6.3. Количественные характеристики надежности по ис
- •Модели надежности программного обеспечения
- •6.4.1. О возможности построения априорных мнп
- •6.4.2. Непрерывные эмпирические модели надежности по (нэмп)
- •6.4.3. Дискретные эмпирические модели надежности по (дэмп)
- •6.5. Способы обеспечения и повышения надежности по
- •6.5.1. Основы организации тестирования программ
- •6.5.1.1. Особенности тестирования « белого ящика»
- •6.5.1.2. Особенности функционального тестирования по ( методы тестирования «черного ящика»)
- •6.5.1.3. Организация процесса тестирования программного обеспечения
- •6.5.2. Способы повышения оперативной надежности по
- •7. Основы организации испытаний ис на надежность
- •7.1. Виды испытаний на надежность
- •7.2. Принципиальные особенности организации испытаний на надежность ис
- •Основы организации определительных испытаний на надежность
- •7.3.1. Точечные оценки показателей безотказности и ремонтопригодности
- •7.3.2. Оценка показателей надежности доверительным интервалом
- •7.3.2.1. Определение доверительного интервала для средней наработки на отказ
- •7.3.2.2. Определение доверительного интервала для вероятности безотказной работы по числу обнаруженных при испытаниях отказов
- •7.4. Основы организации контрольных испытаний
- •Основы надежности подсистемы «человек-оператор» ис
- •Основные понятия и определения
- •8.2. Влияние человека - оператора на надежность ис
- •Показатели безошибочности человека-оператора
- •8.2.2. Способы борьбы с ошибками оператора
- •Заключение
6.5.1.3. Организация процесса тестирования программного обеспечения
Процесс тестирования ПО объединяет различные способы тестирования в определенную последовательность шагов, которые приводят к успешному построению программной системы. Методика тестирования ПО может быть представлена в виде разворачивающейся спирали [6.2].
В начале осуществляется тестирование элементов ( программных модулей), проверяющее результаты кодирования ПО. Цель - индивидуальная проверка каждого модуля. Используются способы тестирования « белого ящика».
На втором шаге осуществляется тестирование интеграций, ориентированное на выявление ошибок этапа проектирования ПО. Цель - тестирование сборки модулей в систему. В основном применяют способы тестирования « черного ящика». Используются методы нисходящего и восходящего тестирования интеграций. Тесты проводятся для обнаружения ошибок интерфейса, таких, например, как:
потеря данных при прохождении через интерфейс;
отсутствие в модуле необходимой ссылки;
неблагоприятное влияние одного модуля на другой;
проблемы при работе с глобальными структурами данных и др.;
Третий шаг - тестирование правильности, проверяющее корректность требований к программной системе. Цель - подтвердить, что функции, описанные в спецификации ПО, отвечают требованиям заказчика. Используются методы «черного ящика». Важным элементом подтверждения правильности является проверка конфигурации программной системы - совокупности всех элементов информации, вырабатываемых в процессе конструирования ПО. При этом используются варианты альфа - и бета – тестирования. Альфа- тестирование проводится заказчиком в организации разработчика. Вета – тестирование, которое длится в течение фиксированного срока ( порядка года), проводится конечным пользователем в организации заказчика.
На заключительном витке спирали проводится системное тестирование, выявляющее дефекты этапа системного анализа ПО. Цель- проверка правильности взаимодействия всех элементов компьютерной системы, реализации всех системных функций. Используются следующие тесты:
тестирование восстановления (проверяется время и полнота восстановления);
тестирование безопасности (проверяется реакция всех защитных механизмов, встроенных в систему, на проникновение);
стрессовое тестирование ( проверяется работа системы при аномальных ситуациях, например, очень большом количестве запросов на ресурсы системы);
тестирование производительности в системах реального времени.
Тестирование программного обеспечения в какой – то момент времени необходимо заканчивать. В [6.4] предлагается передавать крупномасштабный программный продукт пользователю на регулярную эксплуатацию, если специалисты по тестированию и все пользователи в совокупности выявляют не более одной ошибки или дефекта каждые два-три месяца использования ПО. Это соответствует высокой наработке на отказ ПО, равной порядка 5-10 тысяч часов и коэффициенту готовности выше 0,99.
6.5.2. Способы повышения оперативной надежности по
При временной избыточности ( см. п.. 2.1), если имеет место сбой ПО (или аппаратуры), можно повторить выполнение программного модуля.
Для организации программного резервирования [6.6] подготавливаются две или несколько версий решения одной и той же задачи. Желательно, чтобы эти версии значительно отличались друг от друга, т.е. основывались на различных алгоритмах или, по крайней мере, выполнялись разными программистами. Маловероятно, что возможные ошибки различных версий программ совпадут. Далее параллельно или последовательно во времени рассматривают выполнение версий ПО непосредственно в процессе эксплуатации. Если версий программ две, то говорят о дуальном программировании, иначе (при нескольких подготовленных вариантах ПО) выполняется n- версионное программирование.
При дуальном программировании, если обнаруживается расхождение результатов ( результаты сравниваются соответствующими аппаратными или программными средствами), необходимо определить по каким-либо дополнительным критериям, какой из результатов правильный и отбросить другой результат. При n- версионном программировании правильный результат выбирается по мажоритарному признаку (см. п. 5).
Программное резервирование требует избыток оборудования или времени для вычислений, если версии ПО выполняются последовательно во времени. Такое программирование целесообразно использовать, если имеет место нагруженное резервирование аппаратуры АСОИУ.
Часто используется модифицированное дуальное программирование, где наряду с достаточно точной, но сложной программой, используется менее точная, но простая резервная программа. Если при одинаковых исходных данных результаты работы двух ПО отличаются на величину, большую допустимой погрешности, предполагают, что имеет место отказ в основной программе, как менее надежной. В качестве правильного результата принимается результат, полученный при помощи резервной программы.
Рассмотренные методы резервирования применимы как для программ пользователя, так и для операционных систем. Так, для мультипрограммной обработки используются виртуальные машины, которые создают для пользователя иллюзию работы каждой программы на отдельной машине со своей ОС. Все методы программного резервирования не экономичны, как в смысле использования труда программиста, так и в смысле затрат памяти ЭВМ, аппаратуры и времени.
Существует более экономный способ повышения надежности ПО – метод контрольных функций. При этом методе наряду с вычисляемой функцией по иной программе определяется другая функция, находящаяся с основной функцией в определенных соотношениях. Эти соотношения позволяют не только обнаружить отказ в ПО, но и восстановить искаженный результат. Простейшим примером применения метода контрольных функций является вычисление функций sin x и cos x по отдельным программам. Контрольным соотношением в данном случае будет соотношение sin2x+cos2x=1.
Метод контрольных функций, рассмотренный в общем виде, является обобщением методов избыточного кодирования с обнаружением и исправлением ошибок. Он позволяет исправлять не элемент кода, а вычисляемую функцию, содержащую ошибку.
Липаев В.В. Надежность программного обеспечения . – М.: Наука, 1998
Орлов С.А. Технологии разработки программного обеспечения: Учебник для вузов.- СПб: Питер, 2004
Майерс Г. Надежность программного обеспечения. – М.: Мир, 1980
Липаев В.В. Методы обеспечения качества крупномасштабных программных средств. – М.: Сантег, 2003
Пальчун Б.П., Юсупов Р.М. Оценка надежности программного обеспечения. – С-Пб.: Наука, 1994
Иыуду К.А. Надежность контроль и диагностика вычислительных машин и систем. - М.: Высшая школа, 1989
Капбертсон Р.,Браун К.,Кобб Г. Быстрое тестирование: Пер. с англ.- М.: Издательский дом « Вильямс», 2002
Гнеденко Б.В., Беляев Ю.К., Соловьев А.Д. Математические основы теории надежности. - М.: Наука, 1966