Next:2.3.2
Внешняя спецификация программы
Up:2.3
Доказательство свойств программ
Previous:2.3
Доказательство свойств программ
При программировании обычно мы вынуждены много времени тратить на тестирование и отладку созданных нами неправильных программ. Причем, даже при успешном завершении интенсивного тестировании программы нельзя гарантировать ее правильность. Все, что можно с уверенностью сказать о программе, это то, что она дает правильные результаты для тех входных данных, которые использовались при ее тестировании. Позже, когда программа будет работать с другими исходными данными, она может проявлять себя не так, как должна бы.
Каждый опытный программист знает, что программа в течение долгого периода может работать без ошибок, кажется совершенно правильной, и вдруг внезапно, таинственным образом появляется очередная ошибка. Поэтому независимо от интенсивности тестирования никогда нельзя поручиться за правильность программы. Было бы идеально, если бы мы могли доказать правильность программы, а не ссылаться только на проведенное тестирование.
Конечно, доказать правильность весьма не просто, и если даже удастся доказать, что программа правильна, то нельзя быть в этом абсолютно уверенным. В самом доказательстве, как и в программе, также могут быть ошибки. Все из нас имеют дело с теоремами и хорошо знают, что формулировка теоремы, как правило, короче ее доказательства. Тем не менее усилия, затраченные на доказательство правильности программы, способствуют более глубокому пониманию задачи и алгоритма. Ведь чтобы доказать, что программа правильна, надо очень хорошо в ней разобраться. Опыт показывает, что именно поэтому доказательство правильности весьма полезно и позволяет избежать многих ошибок, которые могли бы возникнуть в программе, если бы доказательство не проводилось.
Next:2.3.2
Внешняя спецификация программы
Up:2.3
Доказательство свойств программ
Previous:2.3
Доказательство свойств программ