- •Е.Л. Кон, м.М. Кулагина надежность и диагностика компонентов инфокоммуникационных и информационно-управляющих систем
- •Оглавление
- •1. Основные теоретические сведения 9
- •2. Надежность аппаратурного обеспечения 31
- •3. Создание надежного программного обеспечения 130
- •4. Диагностика состояния сложных технических систем 205
- •Введение
- •1. Основные теоретические сведения
- •1.1. Информационно-управляющие и инфокоммуникационные системы
- •1.2. Основные определения теории надежности
- •1.2.1. Надежность и ее частные стороны
- •1.2.2. Виды надежности
- •1.2.3. Отказы
- •1.2.4. Эффективность
- •1.2.5. Восстановление
- •1.3. Понятие случайных событий и случайных величин
- •1.3.1. Надежность систем при основном (последовательном) и параллельном соединении элементов
- •1.3.2. Основное соединение элементов
- •1.3.3. Параллельное соединение элементов
- •1.4. Элементы теории нечетких множеств
- •1.4.1. Понятие принадлежности и основные операции для четких подмножеств
- •1.4.2. Понятие принадлежности и основные операции для нечетких подмножеств
- •1.4.3. Отношение доминирования
- •1.4.4. Простейшие операции над нечеткими множествами
- •1.4.5. Расстояние Хэмминга
- •Вопросы и задания
- •Список литературы
- •2. Надежность аппаратурного обеспечения
- •2.1. Надежность невосстанавливаемых систем без резервирования
- •2.1.1. Показатели надежности невосстанавливаемых объектов
- •2.1.2. Законы распределения случайных величин, используемые в теории надежности
- •Показательное (экспоненциальное) распределение
- •Усеченное нормальное распределение
- •Распределение Вейбулла
- •Гамма-распределение
- •Практическая область применения законов распределения времени безотказной работы
- •2.1.3. Использованиеи-характеристик для решения практических задач
- •2.1.4. Особенности расчета надежности при проектировании различных систем
- •2.1.5. Расчет надежности по блок-схеме системы
- •2.1.6. Расчет надежности при подборе элементов системы
- •2.1.7. Расчет надежности системы с учетом режимов работы элементов
- •2.1.8. Учет цикличности работы аппаратуры
- •2.2. Надежность невосстанавливаемых систем с резервированием
- •2.2.1. Пути повышения надежности
- •2.2.2. Методы резервирования
- •2.2.3. Расчет надежности сложных систем при постоянно включенном резерве
- •2.2.4. Расчет надежности системы при резервировании замещением
- •2.2.5. Резервирование замещением в случае нагруженного резерва
- •2.2.6. Резервирование замещением в случае облегченного резерва
- •2.2.7. Резервирование замещением в случае ненагруженного резерва
- •2.2.8. Расчет надежности систем с функциональным резервированием
- •2.3. Расчет надежности восстанавливаемых систем
- •2.3.1. Критерий надежности систем с восстановлением
- •Характеристики потока отказов
- •Характеристики потока восстановления
- •Комплексные характеристики надежности систем с восстановлением
- •2.3.2. Расчет надежности по графу работоспособности объекта
- •2.3.3. Определение среднего времени наработки на отказ системы с восстановлением
- •2.3.4. Расчет надежности систем с восстановлением при основном (последовательном) и параллельном соединении элементов
- •2.3.5. Расчет надежности сложных инфокоммуникационных систем
- •Структура и функции стс
- •Определение надежностных характеристик блоков стс
- •Составление структурно-логической схемы надежности и графа состояний
- •2.3.5.4. Расчет коэффициента готовности стс
- •Определение надежностных характеристик блоков аиис
- •Составление структурно-логической схемы надежности и графа переходов
- •Расчет коэффициента готовности аиис «Алтайэнерго»
- •Расчет коэффициента готовности аиис
- •2.4. Расчет надежности восстанавливаемых систем при наличии системы контроля
- •2.4.1. Система встроенного контроля абсолютно надежна
- •2.4.2. Система встроенного контроля самопроверяемая, и ее отказ обнаруживается сразу же
- •2.4.3. Система встроенного самоконтроля несамопроверяемая
- •2.5. Расчет надежности в условиях нечетко заданных исходных данных
- •2.5.1. Выбор оптимального варианта для невосстанавливаемых систем
- •2.5.2. Выбор оптимального варианта для восстанавливаемых систем
- •2.6. Расчет надежности систем на этапе эксплуатации
- •2.6.1. Планирование и расчет периодов профилактик
- •2.6.2. Планирование и расчет числа запасных изделий
- •Вопросы и задания
- •Список литературы
- •3. Создание надежного программного обеспечения
- •3.1. Надежность программного обеспечения
- •3.1.1. Ошибки в по и их типы
- •Типы ошибок в программном обеспечении
- •3.1.2. Причины появления ошибок в программном обеспечении
- •3.1.3. Отношения с пользователем (заказчиком)
- •3.1.4. Принципы и методы обеспечения надежности
- •3.1.5. Последовательность выполнения процессов разработки программного обеспечения
- •3.1.6. Сравнение надежности аппаратуры и программного обеспечения
- •3.2. Основные этапы проектирования программного обеспечения
- •3.2.1. Правильность проектирования и планирование изменений
- •3.2.2. Требования к по
- •3.2.3. Цели программного обеспечения
- •Цели продукта
- •Цели проекта
- •Общие правила постановки целей
- •Оценка целей
- •3.2.4. Внешнее проектирование
- •Проектирование взаимодействия с пользователем
- •Подготовка внешних спецификаций
- •Проверка правильности внешних спецификаций
- •3.2.5. Проектирование архитектуры программы
- •Независимость модулей
- •Прочность модулей
- •Сцепление модулей
- •3.2.6. Методы непосредственного повышения надежности модулей
- •Пассивное обнаружение ошибок
- •Активное обнаружение ошибок
- •Исправление ошибок и устойчивость к ошибкам
- •Изоляция ошибок
- •Обработка сбоев аппаратуры
- •3.2.7. Проектирование и программирование модуля
- •Внешнее проектирование модуля
- •Проектирование логики модуля
- •Пошаговая детализация
- •3.2.8. Стиль программирования
- •Ясность программирования
- •Использование языка
- •Микроэффективность
- •Комментарии
- •Определения данных
- •Структура модуля
- •3.3. Тестирование и верификация программ
- •3.3.1. Проблемы тестирования программ
- •3.3.2. Технологии тестирования программ
- •3.3.3. Принципы тестирования
- •3.4. Модели надежности по
- •3.4.1. Модель роста надежности
- •3.4.2. Другие вероятностные модели
- •3.4.3. Статистическая модель Миллса
- •3.4.4. Простые интуитивные модели
- •3.4.5. Объединение показателей надежности
- •Вопросы и задания
- •Список литературы
- •4. Диагностика состояния сложных технических систем
- •4.1. Предмет, задачи и модели технической диагностики
- •4.1.1. Предмет технической диагностики
- •4.1.2. Основные аспекты, задачи и модели технической диагностики
- •4.1.3. Классификация диагностических процедур и их краткая характеристика
- •4.2. Построение тестов
- •4.2.1. Построение тестового набора методом активизации существенного пути
- •4.2.2. Алгоритм построения тестового набора для комбинационной схемы методом активизации существенного пути
- •4.2.3. Построение тестов для схем с памятью
- •Комбинационная модель последовательностной схемы
- •Построение тестовой последовательности по комбинационной модели последовательностной схемы
- •4.3. Функциональный контроль и диагностирование сложных технических систем
- •4.3.1. Полностью самопроверяемые цифровые устройства
- •4.3.2. Схемы встроенного контроля
- •4.3.3. Схемы сжатия
- •4.3.4. Микропроцессор как объект функционального контроля
- •4.3.5. Модель мп с точки зрения функционального контроля
- •4.3.6. Диагностическая модель уу мп системы
- •4.3.7. Критерии оценки методов контроля механизмов выборки, хранения и дешифрации команд
- •4.3.8. Встроенный функциональный контроль механизмов хранения и дешифрации команд
- •Методы пошагового контроля правильности хода программ
- •Методы контроля, реализующие раскраску команд
- •Метод контроля, использующий раскраску без учета структуры команд
- •Преобразованная программа приведена ниже:
- •Цвет Четность Цвет гса
- •Метод контроля команд, реализующий раскраску с учетом структуры команды
- •Раскраска без внесения в команду избыточных разрядов
- •Методы контроля механизмов дешифрации и хранения команд с помощью веса перехода
- •Метод контроля с помощью алгебраических кодов
- •Методы блокового контроля правильности хода программ
- •Блоковый контроль программ по методу разбиения программы на фазы (блоки)
- •Блоковый контроль правильности хода программ с помощью сигнатур
- •Метод контроля программ на основе полиноминальной интерпретации схем алгоритмов (программ)
- •Сравнительный анализ свк, реализующих методы блокового и пошагового контроля
- •4.4. Экспертные системы диагностирования сложных технических систем
- •4.4.1. Обучение и его модели. Самообучение
- •4.4.2. Экспертные системы и принципы их построения
- •4.4.3. Проблема разделения в самообучаемых экспертных системах
- •4.4.4. Алгоритмы обучения экспертных систем
- •Частота события находится по следующей формуле:
- •4.4.5. Асу «интеллектуальным зданием»
- •4.4.6. Система, принимающая решения по максимальной вероятности
- •4.4.7. Система, принимающая решения по наименьшему расстоянию
- •4.4.8. Повышение достоверности решений экспертной системы
- •4.4.9. Прогнозирование технического состояния узлов
- •Вопросы и задания
- •Список литературы
- •Приложение Интенсивность отказов компонентов иус
- •Кон Ефим Львович, Кулагина Марина Михайловна надежность и диагностика компонентов инфокоммуникационных и информационно-управляющих систем
3.4.5. Объединение показателей надежности
При разработке сложных технических систем, состоящих как из аппаратной части, так и ПО, возникает необходимость рассчитать комплексный показатель надежности системы, т.е. объединить показатели надежности аппаратной и программной подсистем.
В данном учебном пособии мы будем поступать следующим образом. Надежность ПО зависит как собственно от надежности программы, так и от надежности носителя программы, например, ОЗУ или ПЗУ. Надежность носителя учитывается при расчете аппаратной части.
В качестве примера рассмотрим типовой передающий полукомплект системы телемеханики (тракт телеизмерений – ТИ), структура которого приведена на рис. 3.8.
Рис. 3.8. Структурная схема передающего полукомплекта системы телемеханики
Для расчета воспользуемся методикой, приведенной в подразд. 2.3.2 и подразд. 2.3.5.Система состоит из датчиков (N = 10), подсистемы сбора информации (ПСИ) и подсистемы передачи информации (ППИ). Никакой избыточности с точки зрения надежности (резервирования, встроенных схем контроля) в системе нет.
Предположим, что датчики не интеллектуальные, т.е. не содержат встроенных программных средств. Пусть датчики однотипные и имеют одинаковые интенсивности отказов λд = 4,5·10–5 1/ч и интенсивности восстановления μд = 2 1/ч.
ПСИ и ППИ реализованы с использованием промышленных контроллеров, т.е. наряду с аппаратной частью в них «зашито» программное обеспечение. Надежность носителей ПО (ОЗУ, ПЗУ и т.д.) учтена при определении надежностных характеристик аппаратной части. Примем, что интенсивность отказов аппаратуры ПСИ λап_пси = 10–7 1/ч, интенсивность восстановления аппаратуры ПСИ μап пси = 0,4 1/ч, λап_ппи, интенсивность отказов аппаратуры ППИ λап_ппи = 10–7 1/ч, интенсивность восстановления аппаратуры ППИ μап ппи = 0,7 1/ч.
Для ПСИ и ППИ дополнительно выделим надежностные характеристики программной составляющей – λпрг_пси, μпрг пси, λпрг_ппи, μпрг ппи. Определим значения надежностных характеристик программной составляющей, используя самую простую статистическую модель надежности ПО (подразд. 3.4.4).
Пусть число операторов в ПО ПСИ – 2500. Тогда, учитывая, что на 1000 операторов приходится 10 оставшихся в программе ошибок, в ПО ПСИ осталось 25 ошибок, приводящих к отказу системы. Если интенсивность отказов из-за одной ошибки – 10–4 1/ч, то λпрг_пси = 2,5·10–3 1/ч.
Пусть число операторов в ПО ППИ – 3050. Тогда в ПО ППИ осталась 31 ошибка (округлим до ближайшего большего). Следовательно, λпрг_ппи = 3,1·10–3 1/ч.
После отказа системы вследствие ошибки в ПО следует предпринять несколько шагов. Во-первых, определить по симптомам место ошибки. Во-вторых, исправить эту ошибку. И, наконец, загрузить в контроллер исправленную версию ПО. Предположим, что в среднем на указанные шаги и для ПСИ, и для ППИ требуется 5 часов. Тогда интенсивность восстановлений μпрг пси = μпрг ппи = 0,2 1/ч. Для приблизительных расчетов надежности ПО (а принятая модель надежности ПО позволяет провести только приблизительный расчет) пересчитывать интенсивность отказов блока, в котором была исправлена ошибка (и, следовательно, общее количество ошибок уменьшилось на единицу), нет смысла.
Определив надежностные характеристики блоков, составим усеченный граф переходов передающего полукомплекта (рис. 3.9).
Состояние 0 – все элементы исправны.
Состояние 1 – неисправен один из N датчиков.
Состояние 2 – неисправна аппаратная часть ПСИ.
Состояние 3 – неисправна программная часть ПСИ.
Состояние 4 – неисправна аппаратная часть ППИ.
Состояние 5 – неисправна программная часть ППИ.
Рис. 3.9. Усеченный граф переходов для передающего полукомплекта
Составим по графу систему уравнений:
Решив ее относительно P(0) (поскольку только в этом состоянии система работоспособна), мы найдем значение комплексного коэффициента готовности, учитывающего как надежность аппаратного, так и надежность программного обеспечения системы передающего полукомплекта:
Kг = P(0) = 0,738.
Выводы
В данной главе были рассмотрены вопросы, касающиеся построения надежного ПО. Было показано, что определение надежности, введенное для аппаратного обеспечения, с некоторыми оговорками применимо и для ПО, сформулированы понятия ошибки в ПО и отказа ПО.
Проектирование надежного ПО выполняется иерархически, поэтапно, при этом каждый этап все более приближает к конечной цели – созданию программного комплекса. Ошибки могут возникать как на любом этапе проектирования ПО, так и на сопряжении этапов. Соответственно, наиболее рациональным представляется, что для обнаружения ошибок каждого этапа следует задействовать проектировщиков предыдущего этапа и разработчиков, готовых приступить к следующему этапу.
На этапе проектирования модулей появляется возможность применить пассивные и активные меры обнаружения ошибок в ПО. Пассивные меры предполагают проводить проверку на допустимость входных данных, а для особенно важных данных вводить избыточность, которая позволит обнаружить искажение введенных данных. Активные меры применяются реже, поскольку требуют внедрения в ПО параллельно работающего диагностического монитора.
Тестирование разработанного ПО также представляет собой сложную проблему. Поход к программе как к «черному ящику» (структура программы неизвестна) требует в качестве теста использовать все возможные комбинации входных данных, что нереально из-за их бесконечного количества. Подход к программе как к «белому ящику» (структура программы известна) позволяет сократить количество тестовых наборов, но не дает гарантии, что будут обнаружены все ошибки. На практике рекомендуется творческое сочетание обоих методов.
Для определения характеристик надежности спроектированного ПО существует целый ряд методик, однако все они базируются на серьезных упрощениях, поэтому авторы взяли для примера, позволяющего оценить комплексную надежность программно-аппаратной системы, самую простую статистическую модель. Приведенный в учебном пособии пример расчета комплексного коэффициента готовности технической системы может быть рекомендован в качестве базового при выполнении курсовых и дипломных проектов.