Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Силан зачёт.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
449.87 Кб
Скачать

Методы проектирования надежного по: обнаружение ошибок

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

Методы проектирования надежного по: обеспечение устойчивости к ошибкам

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

  1. Истоки концепции динамической избыточности лежат в проектировании аппаратного обеспечения. Один из подходов к динамической избыточности - метод голосования. Данные обрабатываются независимо несколькими идентичными устройствами, и результаты сравниваются. Если большинство устройств выработало одинаковый результат, этот результат и считается правильным. Ошибка, имеющаяся в копии программного модуля, будет также присутствовать во всех других его копиях, поэтому идея голосования здесь, видимо, неприемлема. Предлагаемый иногда подход к решению этой проблемы состоит в том, чтобы иметь несколько неидентичных копий модуля. Часто трудно получить существенно разные версии модуля, выполняющие одинаковые функции. Повышает уровень сложности системы, что противоречит основной идее предупреждения ошибок - стремление к простоте.  Второй подход к динамической избыточности - выполнять запасные копии модулей только тогда, когда полученные с помощью основной копии результаты признаны неправильными. Если это происходит, то система автоматически вызывает запасную копию. Если и ее результаты неправильны, вызывается другая запасная копия и т. д. Этот подход также страдает большинством перечисленных ранее недостатков + реализация копий "крадет" время разработки.

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

  3. Методы изоляции ошибок. Основная их идея - не дать последствиям ошибки выйти за пределы как можно меньшей части системы программного обеспечения. Если ошибка возникнет, то не вся система оказывается неработоспособной, а отключаются лишь отдельные функции в системе либо некоторые ее пользователи. Например, во многих операционных системах изолируются ошибки отдельных пользователей так, что сбой влияет лишь на некоторое подмножество пользователей, а система в целом продолжает функционировать. В телефонных переключательных системах для восстановления после ошибки, чтобы не рисковать вы-ходом из строя всей системы, просто разрывают телефонную связь. Другие методы изоляции ошибок связаны с защитой каждой из программ в системе от ошибок других программ. Ошибка в прикладной программе, выполняемой под управлением операционной системы, должна оказывать влияние только на эту программу. Она не должна сказываться на самой операционной систе-ме или других программах, функционирующих в этой системе.

На базе методов обеспечения устойчивости к ошибкам, направленных на минимизацию ущерба при появлении ошибок, разрабатываются средства повышения надежности программного обеспечения, реализующие выполнение следующих функций.  Метод динамической избыточности реализуют средства:

динамического изменения конфигурации;

повторного выполнения операций.

Метод отступления реализуют сред-ства:

обработки ошибок;

сокращенного обслуживания в случае отказа отдельных функций системы.

Метод изоляции ошибок реализуют средства:

контроля действий пользователей;

обработки сбоев аппаратуры;

анализа корректности данных;

копирования и восстановления данных.

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