Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Надежность ПО.docx
Скачиваний:
9
Добавлен:
23.11.2023
Размер:
5.26 Mб
Скачать

2.3. Методыобеспечения надежности

2.3.1. Задачи обеспечения надежности

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

1) каждая ИС является многофункциональной; функции имеют различную значимость и соответственно характеризуются разным уровнем требований к надежности их выполнения;

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

3) в функционировании ИС принимают участие различные виды ее обеспечения и персонал, которые также влияют на ее надежность;

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

Факторы, влияющие на уровень надежности системы. Уровень надежности ИС зависит от надежности и других свойств комплекса ТС, ПО и персонала системы. Основным факторами, влияющими на уровень надежности системы, являются:

  • Состав и уровень надежности комплекса ТС, взаимосвязи между элементами комплекса;

  • Состав и уровень надежности используемого ПО, его содержание (возможности) и взаимосвязи;

  • Уровень квалификации персонала, организация его трудовой деятельности и качество (безошибочность, быстродействие, ритмичность) выполнения единиц деятельности;

3.1.2. Надежность программного обеспечения

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

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

Пример. Тестирование и его ограниченность. Пусть входные данные для некоего ПО включают в себя 20 переменных, каждая из которых может принимать 15 различных значений. В этом случае число возможных комбинаций исходных данных – 1520, что составляет примерно 3,3*1023. Если предположить, что за 1 с можно протестировать 1 млн комбинаций входных данных т.е тестирование программы на одну комбинацию занимает 1мкс), то за год можно провести 3* 10 13 проверок. Тогда на проверку всех 3,3*1023 входных комбинаций потребуется 1,1* 1010лет(время существования Солнечной системы – 8 * 109 лет).

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

Надежность ПО – свойство составляющих его программ выполнять заданные функции в заданных условиях. Существуют две основные причины возникновения отказов ПО:

    1. Разработчики ПО нарушили технические требования к программам(нарушены сертификации);

    2. Спецификации – описание того, что должна делать программа, без указания, как она должна это делать, является неточными или неполными.

Отличия надежности ПО от надежности технических средств:

  • Элементы ПО не стареют от износа;

  • Способов контроля ПО значительно больше, чем способов контроля ТС;

  • В ПО гораздо больше объектов для контроля, чем в аппаратуре;

  • В ПО гораздо проще вносить изменения, чем в аппаратуру, но это трудно делать корректно и безошибочно.

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

Изменение стоимости ошибок в ПП на разных стадиях обнаружения

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

Рассмотрим основные показатели надежности программного обеспечения. Рассмотрение ПО как ПП приводит к понятию жизненного цикла (ЖЦ) ПО, в котором можно выделить шесть основных этапов:

  1. Анализ требований к системе;

  2. Определение спецификаций;

  3. Проектирование алгоритмов;

  4. Собственно программирование (кодирование);

  5. Тестирование (автономное и комплекстное);

  6. Эксплуатация и сопровождение

На всех этапах ЖЦ ПО могут возникать ошибки, снижающие надежность ПО.

Основными показателями надежности ПО являются:

1) программная ошибка, которая идентифицируется пользователем, если:

  • При программировании появляется ошибочный операнд или операция;

  • Возникает несоответствие выполняемых функций требованиям спецификации;

  • Имеет место ошибка в спецификации, требующая исправления ПО;

  • Возникает ошибка при вычислениях;

  • Нарушается взаимодействие пользователя с ПО.

Приведенный перечень является открытым, т.е. разработчики ПО по мере накопления опыта, могут его пополнять;

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

3) интенсивность обнаружения ошибок в ПО. Пусть R(t) – вероятность того, что ни одна ошибка не появится на интервале времени от 0 до t, а Q(t) –вероятность возникновения хотя бы одной ошибки. Вводится функция риска как условная плотность вероятности ошибки ПО в некоторой момент времени t, при условии, что до этого момента ошибка не появилась:

Которая является интенсивностью обнаружения ошибок в ПО (число ошибок в единицу времени);

4) наработка ПО до ошибки (отказа):

5) прогон программы – совокупность действий включающая в себя:

  • Ввод возможных комбинаций Еiвходных данных

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

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

Если выполняется соотношение

То значение результата находится в допустимых пределах; в противном случае выполнение программы не обеспечивает приемлемого результата, т.е. условие (3.2.) не выполняется, а выполняется соотношение

Тогда статистическая оценка вероятности ошибки при реализации программы за W независимых прогонов составляет:

Обозначим через допустимую относительную погрешность оценки при определенной - заданной вероятности ошибки. Необходимое число прогонов пропорционально величине