- •Оглавление
- •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.4.3. Дискретные эмпирические модели надежности по (дэмп)
Количество разработанных к настоящему времени ДЭМП невелико по сравнению с НЭМП, но именно они реально могут быть использованы для расчетов надежности вычислительных систем [6.5]. Причиной этого является прежде всего аргумент ДЭМП - порядковый номер испытаний, а не время , условное или фактическое при любых способах его измерения или учета. Как указано в [6.3], «…хотя желание выразить надежность ПО некоторой функцией времени вполне разумно, следует понимать, что в действительности она от времени не зависит. Надежность программного обеспечения является функцией числа ошибок, их серьезности и их расположения, а также того, как система используется».
Рассмотрим описание одной из самых известных ДЭМП модели Нельсона, который приводит такое определение надежности ПО: «Надежность программы это вероятность безотказного выполнения n-прогонов программы». В основу построения модели Нельсона положены следующие допущения:
машинная программа П может быть определена как описание некоторой вычисляемой функции F на множестве Е всех значений наборов входных данных, таких, что каждый элемент Ej множества Е представляет собой набор значений данных, необходимых для выполнения прогона программы, j = 1(1)Nмах, где Nмах – мощность множества Е;
выполнение программы П приводит к получению для каждого Еj определенное значение функции F(Еj);
множество Е определяет все возможные вычисления в программе П, т.е. каждому набору входных данных Еj соответствует некоторый прогон П и каждому прогону П соответствует некоторый набор входных данных Еj;
наличие дефектов в программе соответствует тому, что на самом деле ей отвечает функция F*, отличная от заданной функции F;
для некоторого набора в программе Еj отклонение выхода F*(Еj), полученного в ходе выполнения программы от желаемого результата F(Еj), находится в пределах нормы Δj
(6.12)
для всех остальных Ej , образующих подмножество Ее множества Е , выполнение программы П не обеспечивает приемлемого результата, т.е.
(6.13)
при этом работа программы прекращается преждевременно или зацикливается.
Вероятность того, что произвольный прогон программы П будет правильным , т.е. выполняется условие (6.12), равна
где ne- общее число входных данных, соответствующих подмножеству Ее.
Для практической оценки величины показателя надежности программы предлагается следующая процедура.
Производится n прогонов программы, причем , выбор входных данных должен соответствовать некоторым известным вероятностям реализации входных наборов- pj. Часть прогонов будет верной, а другая часть закончится отказами ПО. При этом процесс испытаний не должен прекращаться, а ошибки исправляться до завершения всех n прогонов. Тогда оценка показателя вероятности безотказной работы программы рассчитывается по формуле
(6.14)
где ne*, - количество ошибочных прогонов в серии из n испытаний,
R*- оценка вероятности безотказной работы ПО.
6.5. Способы обеспечения и повышения надежности по
6.5.1. Основы организации тестирования программ
Для предотвращения ошибок и дефектов ПО широко используются методы тестирования.
Тестирование программного обеспечения (software testing) - это процесс анализа или эксплуатации программного обеспечения с целью выявления дефектов [6.7]. Тестирование может быть статическим или динамическим (методами «белого ящика» или «черного ящика»).
Тестирование обеспечивает [6.2]:
обнаружение ошибок;
демонстрацию соответствия функций программы ее назначению;
демонстрацию реализации требований к характеристикам программы;
отображение надежности как индикатора качества программы.
Тестовая деятельность, связанная с анализом результатов разработки ПО, называется статическим тестированием (static testing). Статическое тестирование может выполнять проверку программных кодов, сквозной контроль и проверку программы даже без запуска на ЭВМ. Такой подход к тестированию иногда отождествляют с тестированием по методу « белого ящика». Однако тестирование « белым ящиком» всегда подразумевает прогон отдельных программных компонент с использованием специальных тестовых наборов.
При тестировании « белым ящиком» известна внутренняя структура программы.
Исследуются внутренние элементы программы и связи между ними.
Объектом тестирования является внутреннее поведение программы.
Тестовая деятельность, предусматривающая эксплуатацию программного продукта с целью проверки выполнения функций системы, называется динамическим тестированием (dynamic testing), иначе этот подход называют « черным ящиком».
При тестировании методом «черного ящика» известны функции, выполняемые системой.
Исследуется работа каждой функции на всей области определения.
Система представляется объектом с известными входными значениями и выходными результатами, при этом никак не учитывается внутреннее представление системы.
Тестирование методом «черного ящика» демонстрирует:
как выполняются функции программы;
как принимаются исходные данные;
как вырабатываются результаты;
как сохраняется целостность внешней информации.
Тестирование программного обеспечения выполняет две базовые функции: верификацию и аттестацию.
Верификация (verification) это процедура, которая показывает соответствие результатов конкретной фазы процесса разработки ПО требованиям данной и предшествующих стадий.
Аттестация (validation) есть гарантия того, что программный продукт удовлетворяет всем системным требованиям заказчика.
Исследования показывают, что методики тестирования, основанные на принципах «черного и белого ящиков», должны использоваться вместе. Конечно, тестирование «белого ящика» более трудоемкий процесс, трудно поддающийся автоматизации, но выявляющий многие ошибки ПО. Эта работа требует хорошего знания кода, поэтому её проводят в присутствии автора программы, желательно, другие люди, и именно поэтому удается выявить большое количество сложных, либо редко проявляющихся ошибок. Для проведения подобных инспекций в рамках группы программистов или целого предприятия должны существовать определенные правила написания кода.