
- •1. Введение в надежность
- •2. Надежность технических элементов
- •2.1. Основные понятия и определения
- •2.2. Функциональные показатели надежности элемента
- •Функция ненадежности элемента
- •2.3. Числовые показатели надежности
- •2.4. Основные законы распределения наработки до отказа
- •Распределение Вейбулла
- •Экспоненциальное распределение
- •Распределение Релея
- •Нормальное распределение
- •Усеченное нормальное распределение
- •Суперпозиции экспоненциальных распределений
- •2.5. Ремонтопригодность технических элементов
- •Функциональные показатели ремонтопригодности
- •Числовые показатели ремонтопригодности
- •Экспоненциальное распределение вероятности восстановления
- •Комплексные показатели ремонтопригодности
- •2.6. Определение показателей надежности элементов по результатам испытаний
- •Определительные испытания
- •Контрольные испытания
- •Лабораторные испытания элементов
- •3. Надежность технических систем
- •3.1. Надежность простых технических систем
- •3.2. Расчет надежности локальных технических систем
- •3.3. Надежностный синтез технических систем
- •4. Надежность программного обеспечения
- •4.1. Общие сведения о программном обеспечении
- •Жизненный цикл программного обеспечения
- •4.2. Показатели надежности программы и программного обеспечения
- •Понятие ошибки программы
- •Модель ошибки сертифицированного по
- •Модели поведения ошибок функционирующего по
- •Функциональные и числовые характеристики надежности по
- •4.3. Повышение надежности программного обеспечения
- •Повышение надежности по путем резервирования
- •Программное резервирование по предусматривает наличие двух (или более) алгоритмов , решения одной и той же задачи с одинаковыми исходными данными и двух по1 и по2 (рис. 4.13).
- •5. Литература
Модели поведения ошибок функционирующего по
Принятое
в эксплуатацию ПО содержит случайное
число N(0)
скрытых ошибок (дефектов), которые
впоследствии проявляют себя в случайные
моменты процессорного времени
,
j = 1, 2, …(наработки
до отказов) и вызывают отказы отдельных
программ и всего комплекса (рис. 4.4).
Рис. 4.4 –
Схема функционирования ПО на стадии
эксплуатации:
- процессорное время,
- астрономическое время; Р – работа; В
- восстановление
Каждый
отказ полностью восстанавливается за
случайное время
1,
2,…программистом-«ремонтником»,
который находит ошибку и устраняет ее
путем исправления алгоритма и/или текста
ПО. После подобного полного «ремонта»
ПО проходит статическое и/или динамическое
тестирование и считается сертифицированным
программным продуктом, вводимым как бы
заново в условный момент времени =0
в эксплуатацию .
В
процессе функционирования ПО число
N()
оставшихся ошибок изменяется случайным
образом в каждый момент ,
,
так как значения
и
-
случайные и, кроме того, программисты-«ремонтники»
могут вносить в программы новые случайные
дефекты. Зависимость числа ошибок ПО
от времени
можно описать моделью поведения
,
являющейся оценкой математического
ожидания дискретной случайной величины
N. Три возможных модели
поведения ошибок ПО на этапе его
эксплуатации показаны на рис. 4.3 и рис.
4.5.
Рис. 4.5 –
Модели поведения числа ошибок
на этапе эксплуатации ПО:
-
процессорное время
Первая
модель
базируется на оптимистической гипотезе
о том, что программист-«ремонтник» при
каждом восстановлении программы
полностью удаляет
появившуюся ошибку и при этом не вносит
новых дефектов. Тогда рано или поздно
ПО станет свободным от ошибок при
некотором 0,
0
0 и абсолютно надежным
в асимптотике
.
Итак, если модель справедлива, то при хорошей или правильной организации сопровождения ПО можно обеспечить абсолютную надежность программного комплекса. При этом вероятность такого события возрастает с увеличением времени эксплуатации ПО.
Указанное свойство ПО рано или поздно становиться (в рамках модели ) безошибочным и, тем самым абсолютно надежным, характерно только для программных объектов и не наблюдается у технических элементов и систем. Действительно, для технических элементов надежность всегда снижается при увеличении срока их эксплуатации, т.е. Р(t) 0 при t .
Практика создания и эксплуатации ПО показывает, что при длительной работе отдельные программы (обычно небольшой длины) действительно становятся безошибочными и абсолютно надежными. Подобные факты характерны для стандартных, библиотечных программ, подпрограмм и модулей, широко используемых в универсальных ЭВМ. Однако для достаточно сложных ПО и, особенно ПО РВ, обладающих коротким жизненным циклом, не удается удалить все скрытые ошибки и обеспечить абсолютную надежность программного комплекса. Наиболее вероятное объяснение этого факта заключается в трудности полного восстановления ПО «неидеальным» программистом-«ремонтником» и невнесения новых ошибок в ремонтируемые программы.
Вторая
модель поведения ошибок
основана на реалистической гипотезе о
том, что при восстановлении отказавшей
программы «ремонтники» удаляют
проявившиеся ошибки (возможно не
полностью, т.е. «маскируют» их) и вносят
новые дефекты, влияющие на отказы данной
и других программ. Согласно этой гипотезе
случайный процесс
может иметь участок стационарности,
когда оценка
(рис. 4.5, кривая
).
Скорость достижения участка стационарности
и значения
зависят от показателей ПО и, особенно,
характеристик службы сопровождения
функционирующего программного комплекса.
Третья
модель поведения ошибки
функционирующей ПО базируется на
пессимистическом предположении о том,
что при восстановлении отказавшей
программы «ремонтник» вносит в нее
дефектов больше, чем удаляет проявившихся
ошибок.
В
связи с низкой ремонтопригодностью ПО
и невысокой квалификацией ремонтного
персонала службы сопровождения среднее
число скрытых ошибок
возрастает начиная с некоторого момента
времени 1,
который может быть равным и нулю (
на рис. 4.5).
При быстром возрастании и числа программных отказов необходим «капитальный ремонт» ПО, заключающийся в переписывании всех или наименее надежных программ.