- •Раздел 1 Основные термины и определения теории надёжности
- •1.1 Объект, система и элементы
- •1.2 Состояния и события
- •Постепенные – это отказы, которые наступают в результате длительного, постепенного изменения одного или нескольких параметров объекта.
- •1.3 Наработка и ресурс
- •1.4 Надежность
- •Раздел 2 Показатели надежности невосстанавливаемых объектов
- •2.1 Функции распределения и надёжности наработки до отказа
- •2.2 Плотность распределения наработки до отказа
- •2.3 Вероятности отказа и безотказной работы
- •2.4 Интенсивность отказов
- •2.5 Средняя наработка до отказа
- •Раздел 3 Законы распределения наработки до отказа
- •3.1 Экспоненциальное распределение
- •3.2 Нормальное распределение (распределение Гаусса)
- •3.3 Усечённое нормальное распределение
- •3.4 Логарифмически нормальное (логнормальное) распределение
- •3.5 Распределение Рэлея
- •3.6 Распределение Вейбулла
- •3.7 Гамма-распределение
- •3.8 Смесь распределений
- •Раздел 4 Потоки отказов и показатели надежности восстанавливаемых объектов
- •4.1 Понятие потока отказов. Простейший (пуассоновский) поток
- •4.2 Показатели безотказности
- •4.3 Показатели ремонтопригодности
- •4.4 Показатели долговечности
- •4.5 Комплексные показатели надежности
- •Раздел 5 Расчёт надёжности систем без учёта восстановления Расчёт надёжности системы – это определение её показателей надёжности по известным показателям надёжности элементов.
- •5.1 Основные этапы расчёта надежности
- •5.2 Способы соединения элементов и составление структурной схемы системы
- •5.3 Методы расчета надёжности невосстанавливаемых систем
- •5.3.1 Расчет надежности систем с последовательным и параллельным соединением элементов
- •5.3.2 Расчёт надёжности систем со сложной структурой
- •6.4 Резервирование систем
- •Раздел 6 Расчёт надёжности систем с учётом восстановления
- •6.1 Граф состояний системы
- •6.2 Расчет надежности восстанавливаемой системы с помощью уравнений типа массового обслуживания
- •6.3 Матрица состояний
- •6.3 Расчет надежности восстанавливаемой системы с помощью интегральных уравнений
- •Раздел 7 Оценка надёжности объектов по результатам испытаний
- •7.1 Виды испытаний на надежность
- •7.2 Определительные испытания
- •8.3 Контрольные испытания
- •Раздел 9 Обеспечение надёжности систем при эксплуатации
- •9.1 Организация эксплуатации
- •9.2 Классификация запасных частей
- •9.3 Организация пополнения запаса
- •9.4 Расчет числа невосстанавливаемых запасных частей с периодическим пополнением по вероятности достаточности
- •9.5 Расчет количества восстанавливаемых запасных частей по вероятности достаточности
- •9.6 Техническое обслуживание
- •Раздел 10 Диагностика автоматизированных систем
- •10.1 Классификация видов диагностирования
- •10.2 Классификация методов диагностирования
- •10.3 Показатели диагностирования
- •10.4 Математические модели объектов диагностирования
- •10.5 Системы технического диагностирования
- •10.6 Таблица функций неисправностей (тфн)
- •10.7 Алгоритмы диагностирования
- •Раздел 11 Анализ надежности программного обеспечения
- •11.1 Основные понятия надежности программного обеспечения
Раздел 11 Анализ надежности программного обеспечения
В автоматизированных системах управления (АСУ) персональный компьютер (ПК), как правило, выполняет функции управления и должен работать в режиме реального времени. В таких системах ПК выполняет бесконечный цикл, который заключается в получении информации с локальных средств управления или непосредственно с датчиков, и согласно определенному алгоритму выработки ряда управляющих воздействий. Надежность таких АСУ определяется, надежностью аппаратной и программной компонент в их взаимодействии.
11.1 Основные понятия надежности программного обеспечения
Надёжность программного обеспечения (ПО) – это вероятность того, что ПО определённый период времени будет работать без отказов (сбоев) с учётом степени их влияния на выходные результаты. Другими словами, надежность ПО, есть функция от ущерба, наносимого ошибкой пользователю.
Сопоставим кривые интенсивности отказов технического объекта (ТО) (см. рис.2.3) и ПО. Интенсивность отказов ПО значительно отличается от интенсивность отказов ТО. А именно ПО не подвержено износу, редко встречаются ошибки производства. Ненадежность ПО целиком определяется ошибками разработки. Интенсивность отказов ПО изменяется в соответствии с кривой (рис. 1.1, б). Причём, в данном случае, ошибки исправляются по мере обнаружения и не вносятся новые ошибки.
,
t -1
а
б
Время, t
а
– кривая интенсивности отказов ТО б
– кривая интенсивности отказов ПО
Рис.
11.1 Сравнительная
оценка интенсивности отказов
ТО и
ПО
Из рис. 11.1 можно сделать вывод: Надежность ТО определяется в основном случайными отказами, а в основе ненадежности ПО лежат предопределенные ошибки. Кроме того, отказ оборудования не зависит от обрабатываемой информации.
Отказ ТО, как правило, не зависит от конкретных значений обрабатываемых данных, если эти данные не выходят за рамки определённые технической характеристикой. С другой стороны, программные ошибки в большей степени зависят от входной информации. Причина появления ошибки при этом заключается в уникальном наборе обрабатываемых ПО данных.
Корректное ПО – это ПО удовлетворяющее своей спецификации.
Большая часть ПО, рассматриваемого в настоящее время как надежное, не является корректным. Можно считать систему надежной и при наличии в ней ошибок, но при условии, что:
ошибки программирования оставляют возможность правильного использования системы (например, неправильный вывод, который обнаруживается и исправляется пользователем);
ситуации, в которых ошибки оказывают влияние на конечные результаты, встречаются редко, а вероятность возникновения этих ситуаций в необходимый момент не очень велика.
С другой стороны, корректное ПО может быть ненадежным. Это случается тогда, когда спецификация ПО не является полным описанием того, что ожидается от данного ПО.
Огромное влияния на надежность и корректность ПО оказывает структура системы. Слабо структурированные системы обладают большей вероятностью быть ненадёжными и некорректными. В случаи их изменения (модификации) велика вероятность внесения ошибок.
Для решения задачи получения надежного ПО на этапе проектирования необходимо:
при написании спецификаций для системы и каждого из ее модулей быть достаточно реалистичными при описании желаемого поведения в условиях, когда совершенное поведение недостижимо;
в описании интерфейса между системой и окружающей средой, а также интерфейса между модулями системы необходимо предусматривать проверки корректности отработки заданий;
включать в интерфейс взаимные проверки корректности отработки заданий.