Cтраница 4
Однако очень вероятно, что при попытке доказать правильность программы эта ошибка была бы найдена. [46]
Основная посылка структурного программирования - практически осуществимое доказательство правильности программы, которое возможно на уровне ее структуры, описанной псевдокодом или другими выразительными средствами. Несмотря на такие очевидные достоинства, структурное программирование еще неполно представлено в массовых изданиях. [47]
Из других средств, облегчающих составление и проверку правильности программ, пока отметим только необходимость предварительной записи алгоритма в другой, более наглядной форме, чем программа, даже снабженная примечаниями, - например, в виде блок-схемы или пошаговой записи. Малоопытные программисты часто пренебрегают этим этапом и, как правило, бывают наказаны. В лучшем случае отладка программы сильно затягивается, в худшем - ее вообще не удается довести до конца. При наличии наглядно записанного алгоритма упрощается и составление примечаний - они могут ссылаться на те или иные действия алгоритма и использовать введенные там обозначения. [48]
Третий довод основан на конструктивном подходе к проблеме правильности программы. В настоящее время общепринятой техникой является составление программы, а затем ее тестирование. Однако тестирование программы может быть очень эффективным способом демонстрации наличия ошибок, но оно безнадежно неадекватно для доказательства их отсутствия. Единственный эффективный способ значительно повысить доверие к программе - это дать уседителыюе доказательстве) ее правильности. Напротив, программист должен доказывать правильность программы одновременно с ее написанием. Третий довод существенно основан на следующем наблюдении. [49]
В ходе реализации ПО необходимо выполнять тщательный контроль правильности программ. Современные процедуры подтверждения правильности программ базируются на процедуре тестирования, выполняемой, вначале на модульном или процедурном уровне, затем функционально над отдельными компонентами. По мере проверки отдельных компонент они объединяются в систему с последующим системным тестированием. [50]
Останов механизмов: диспетчер предварительно проверив по мигающим лампам правильность набранной программы к отключению, ажимает на кнопку останова. При этом ВР обесточивается ( при размыкании замыкающего контакта ЯО); PC отпадает ( после отключения пускового механизма); ЛС гаснет. [51]