Подход к обеспечению надежности №3 - Обеспечение устойчивости программы к ошибкам
Самообнаружение ошибки в программе означает, что программа содержит средства обнаружения отказа в процессе ее выполнения.
Самоисправление ошибки в программе означает не только обнаружение отказа в процессе ее выполнения, но и исправление последствий этого отказа, для чего в программе должны иметься соответствующие средства.
Обеспечение устойчивости программы к ошибкам означает, что в программе содержатся средства, позволяющие локализовать область влияния отказа программы, либо уменьшить его неприятные последствия, а иногда предотвратить катастрофические последствия отказа. Однако эти подходы используются весьма редко (может быть, относительно чаще используется обеспечение устойчивости к ошибкам). Связано это, во-первых, с тем, что многие простые методы, используемые в технике в рамках этих подходов, неприменимы в программировании, например, дублирование отдельных блоков и устройств (выполнение двух копий одной и той же программы всегда будет приводить к одинаковому эффекту - правильному или неправильному). А, во-вторых, добавление в программу дополнительных фрагментов приводит к ее усложнению (иногда - значительному), что в какой-то мере мешает методам предупреждения ошибок. В некоторых частных случаях возможны специальные методы, например - метод контрольных функций.
В данном методе наряду с вычисляемой функцией по иной программе определяется другая функция в соотношениях, называемых контрольными соотношениями. Эти соотношения позволяют не только обнаружить отказ одной из программ, но также и восстановить искаженный результат отказавшей программы на основании результата, полученного по безошибочно работающей программе (программам). Простейшим примером применения метода контрольных соотношений является вычисление функции sinx и cosx по отдельным программам. Контрольное соотношение в данном случае будет соотношение sin2x+cos2x=1.
Более сложный вариант исправления ошибок с использованием матрицы Хэмминга.
Чаще всего в качестве методов обеспечения устойчивости используются методы отступления. Когда ПО в случае возникновения ошибки (благопристойно) заканчивает работу, без потери предыдущих результатов (обеспечить безаварийное завершение всех управляемых системой процессов).
Методы изоляции ошибок, используются при проектировании ПО и их суть - не дать последствиям ошибки выйти за пределы как можно меньшей части системы программного обеспечения (то есть отключились бы только определенные функции программы).
Следует отметить, что все эти методы требуют включения дополнительных модулей в само программное обеспечение, что приводит к увеличению сложности системы, а следовательно вероятности возникновения новых ошибок и затрат на их исправление и локализацию.
Вопросы для самоконтроля.
1. Какими способами обеспечивается надежность ПО на этапе создания?
2. Опишите известные статистические модели надежности программ.
3. Какими методы защиты от сбоев применяются в ПО?
4. Какие методы тестирования программ вам известны?
5. Какие методы повышения надежности программ вам известны?
6. Какими способами обеспечивается надежность ПО на этапе проектирования?
7. Поясните понятие устойчивость к отказам, применительно к ПО.
Дата добавления: 2016-02-20; просмотров: 1037;