Тема 19. Модели оценки надежности в программной инженерии

План лекции

1. Основные понятия в проблематике надежности ПС

2. Классификация моделей надежности

Основные понятия в проблематике надежности ПС

Главная составляющая качества – надежность, которой уделяется большое внимание в области качества технических и программных средств и тех критических систем (реального времени, технологических систем, систем безопасности), для которых надежность – главная целевая функция оценки их реализации.

Из всех областей программной инженерии надежность ПС является самой исследованной областью. Ей предшествовала разработка теории надежности технических средств, послужившая основой надежности ПС. Вопросами надежности занимались и разработчики ПС, пытаясь разными системными средствами обеспечить надежность, удовлетворяющую заказчика, и теоретики, которые, изучая природу функционирования ПС, создали математические модели надежности, учитывающие разные аспекты работы ПС (возникновение ошибок, сбоев, отказов и др.) и позволяющие оценить их реальную надежность. В результате надежность ПС сформировалась, как самостоятельная теоретическая и прикладная наука, поскольку надежность сложных ПС по разным причинам существенным образом отличается от надежности аппаратуры, например, носители данных обладают высокой надежностью и записи на них могут храниться длительное время, не подвергаясь физическому разрушению.

С точки зрения прикладной науки надежность – это способность ПС сохранять свои свойства (безотказность, устойчивость и др.) и преобразовывать исходные данные в результаты в течение определенного (длительного) промежутка времени и при определенных условиях эксплуатации. Снижение надежности ПС происходит из–за ошибок в требованиях, проектировании и реализации. Отказы и ошибки зависят от многих причин и появляются в программах при их исполнении на определенном промежутке времени. Таким образом, надежность ПС зависит от числа оставшихся и не устраненных ошибок в программах. В ходе эксплуатации ПС ошибки обнаруживаются и устраняются. Если при исправлении ошибок не вносятся новые или, по крайней мере, новых ошибок вносится меньше, чем устраняется, то в ходе эксплуатации надежность ПС непрерывно возрастает. Чем интенсивнее проводится эксплуатация, тем интенсивнее выявляются ошибки и быстрее растет надежность системы и соответственно, ее качество.

Надежность является функцией от ошибок, оставшихся в ПС после ввода его в эксплуатацию. ПС без ошибок является абсолютно надежным. Но для больших программ абсолютная надежность практически недостижима. Оставшиеся необнаруженные ошибки проявляют себя при определенных условиях сопровождения и эксплуатации системы (например, при некоторой совокупности исходных данных).

Для оценки надежности ПС используются такие статистические показатели, как вероятность, время безотказной работы, возможность отказа и частота (интенсивность) отказов. Поскольку в качестве причин отказов рассматриваются только ошибки в программе, которые не могут самоустраниться, то ПС следует относить к классу невосстанавливаемых систем.

При каждом проявлении новой ошибки, как правило, проводится ее локализация и исправление. Строго говоря, набранная до этого статистика об отказах теряет свое значение, так как после внесения изменений программа, по существу, является новой, отличной от той, которая до этого испытывалась. В связи с исправлением ошибок в ПС надежность и ее отдельные атрибуты все время меняются и, как правило, в сторону улучшения. Следовательно, их оценка носит временный и приближенный характер. Поэтому возникает необходимость в использовании новых свойств, адекватных реальному процессу измерения надежности, таких как зависимость интенсивности обнаруженных ошибок от числа прогонов программы, зависимость отказов от времени функционирования ПС и т. п.

К факторам, влияющим на надежность ПС, относятся:

- риск как совокупность угроз, приводящих к неблагоприятным последствиям и ущербу системы или среды;

- угроза как проявление неустойчивости, нарушающей безопасность системы;

- анализ риска, т. е. изучение угрозы или риска, их частоты и последствий;

- целостность, т. е. способность системы сохранять устойчивость работы и не иметь риска.

Риск преобразует и уменьшает свойства надежности, так как обнаруженные ошибки могут привести к угрозе, если отказы носят частотный характер.

Основные понятия теории надежности ПО. Формально модели оценки надежности ПС базируются на теории надежности и математическом аппарате этой теории с допущением некоторых ограничений, влияющих на эту оценку. Главным источником информации, используемой в моделях надежности, являются процессы тестирования и эксплуатации ПС и возникающие в них разного вида ситуации. Ситуации порождаются вследствие возникновения ошибок в ПС, и для продолжения тестирования требуется устранение этих ошибок.

Базовыми понятиями, которые используются в моделях надежности ПС, являются следующие.

Отказ ПC (failure) – это переход ПС из работающего состояния в нерабочее, или получение результатов, которые не соответствуют заданным допустимым значениям. Отказ может быть вызван внешними факторами (изменениями элементов среды эксплуатации) и внутренними – дефектами в самой ПС.

Дефект (fault) в ПС – это последствие использования элемента программы, которое может привести к некоторому событию, например, результат неверной интерпретации этого элемента компьютером (ошибка в программе – fault) или человеком (ошибка исполнителя – error). Дефект является следствием ошибок разработчика на любом из процессов разработки: в описании спецификаций требований, начальных или проектных спецификациях, эксплуатационной документации и т. п. Дефекты, не выявленные в программе в результате проверок, являются источником потенциальных ошибок и отказов ПС. Проявление дефекта в виде отказа зависит от того, какой путь будет выполнять специалист, чтобы найти ошибку в коде или во входных данных. Однако не каждый дефект ПС может вызвать отказ вследствие сложных взаимосвязей между дефектами в ПС и вычислительной средой.

Ошибка (error) может быть следствием принятия неверных решений или недостатков в одном из процессов разработки ПС, которые приводят к неправильной интерпретации промежуточной информации, заданной разработчиком.

Интенсивность отказов – это частота появления отказов или дефектов в ПС при тестировании или эксплуатации.

При выявлении отклонения результатов выполнения от ожидаемых во время тестирования или сопровождения осуществляется поиск, выяснение причин отклонений и исправление связанных с этим ошибок.

Модели оценки надежности ПС в качестве входных параметров используют сведения об ошибках, отказах и их интенсивности, собранные в процессе тестирования и эксплуатации ПС.

Наши рекомендации