
- •Общая классификация компьютерных вирусов
- •Основные функциональные блоки компьютерного вируса
- •Техника сканирования сигнатур компьютерных вирусов
- •Техника мониторинга компьютерных вирусов
- •Цели и виды сертификационных испытаний по
- •Характеристика факторов, определяющих надежность пс
- •Средства обеспечения надежности пс
- •Типы ошибок в по
- •Надежность по и язык программирования
- •Математическая модель распределения ошибок в программах
- •Простая интуитивная модель надежности по
- •Функция риска в теории надежности по
- •Основные характеристики надежности
- •Функция надежности аппаратных средств ис
- •Средняя наработка рэс до отказа и её связь с другими характеристиками надёжности
- •Достоверность функционирования и функциональная надежность ис
- •Надежность сложных ис при последовательном соединении элементов
- •Надежность сложных ис при параллельном соединении элементов
- •Статистические методы исследования надежности. Закон Пуассона
- •Статистические методы исследования надёжности. Распределение Вейбулла
Типы ошибок в по
Ошибки, скрытые в программе:
Ошибки вычислений.
Логические ошибки.
Ошибки ввода-вывода.
Ошибки манипулирования данными.
Ошибки совместимости.
Ошибки классифицируются по тяжести последствий и возможности их устранения или парирования:
Незначительные ошибки. Эти ошибки проявляются явно или легко обнаруживаются.
Средние ошибки (ошибки средней тяжести).
Существенные ошибки – ошибки, не устранимые без приостановки функционирования ПС.
Надежность по и язык программирования
Количество ошибок в разрабатываем ПО можно существенно снизить за счёт выбора наиболее подходящего языка. Современные высокоуровневые языки, имеющие продуманную структуру, механизмы безопасного управления памятью (сборщик мусора) предупреждают целые классы ошибок, связанные с неправильным управлением памятью, работой с ресурсами и проч.
Математическая модель распределения ошибок в программах
где n0 – число первичных ошибок, dn/dt – интенсивность обнаружения ошибок при отладке, K – некоторый коэффициент (характеризует изменение скорости появления искажений).
Интенсивность обнаружения ошибок в программе и абсолютное число устраненных первичных ошибок связаны уравнением:
.
При t = 0 решение этого уравнения имеет вид:
.
Число оставшихся в комплексе ПО ошибок:
.
Математические модели предназначены для приближенной оценки:
Потенциально возможной надежности функционирования ПС в процессе испытания и эксплуатации.
Числа ошибок, оставшихся не выявленными в анализируемых программах.
Времени тестирования, требующегося для обнаружения ошибки в функционирующей программе.
Времени, необходимого для выявления всех имеющихся ошибок с заданной вероятностью.
Простая интуитивная модель надежности по
ПО тестируется независимо двумя группами, каждая из которых разрабатывает независимые тесты. В течение некоторого времени группы работают раздельно, затем результаты сравниваются.
Пусть N – множество всех ошибок; N1 – множество ошибок, выявленное первой группой; N2 – множество ошибок, выявленное второй группой; N12 – пересечение множеств N1 и N2.
Эффективность обнаружения ошибок каждой из групп E1=N1/N, E2=N2/N.
Интуитивное предположение: E1 = N1/N = N12/N2 =>
N = N12 / (E1E2).
Последнее соотношение позволяет оценить количество ошибок в программном продукте.
В среднем считается, что в ПО одна ошибка на 100 операций.
Пример. N1 = 20, N2 = 30, N12 = 8. E1 = N12/N2, E2 = N12/N1, E1 = N12/N2 => N = 74.
Функция риска в теории надежности по
Количество оставшихся в программе ошибок – это количество ошибок, которые потенциально могут быть обнаружены на последующих стадиях жизненного цикла программы, после исправлений, внесенных в программу на текущей стадии ее жизненного цикла. Это количество оставшихся в программе ошибок – один из важнейших показателей надежности ПО.
Пусть P(t) – вероятность того, что ни одной ошибки не будет обнаружено на временном интервале [0,t]. Тогда вероятность хотя бы одного отказа за этот период будет Q(t) = 1 – P(t), и плотность вероятности можно записать как
Рассмотрим функцию риска R(t) как условную плотность вероятности отказа программы в момент времени t, при условии, что до этого момента отказов не было
Функция риска имеет размерность [1/время] и она очень полезна при классификации основных распределений отказов. Распределения с возрастающей функцией риска соответствуют тем ситуациям, когда статистические характеристики надежности ухудшаются со временем. И наоборот, распределения с убывающей функцией риска соответствуют обратной ситуации, когда надежность улучшается со временем в результате процесса обнаружения и коррекции ошибок.
Из последнего
выражения ясно, что
,
и, следовательно,
,
или
Данное равенство является одним из самых важных в теории надежности. Различные виды поведения функции риска во времени порождают различные возможности для построения моделей надежности ПО. Интенсивность обнаружения ошибок (функция риска), вместе с вероятностью безотказной работы программы и количеством оставшихся в программе ошибок, являются важнейшими показателями надежности программ.