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