Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_gosam (1).doc
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
4.61 Mб
Скачать

8. Принципы и методы разработки надежного программного обеспечения: предупреждения, обнаружения, исправление ошибок, обеспечение устойчивости к ошибкам.

9. Основные определения, связанные с обнаружением и исправлением ошибок: тестирование, доказательство, контроль, испытание, аттестация, отладка.

10. Структурное или модульное программирование. Стиль разработки, правила написания программ.

При разработке каждой программы ПС, нужно иметь в виду, что она является большой системой, и мы должны принять меры для её упрощения. Для этого ПС разрабатывают по частям, которые называются программными модулями. Метод такой разработки программ называют модульным программированием [1]. Программный модуль (ПМ) – это любой фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в описаниях процесса. При этом каждый ПМ программируется, компилируется и отлаживается отдельно от других модулей программы (физически разделён с другими модулями программы). Кроме того, каждый разработанный программный модуль может включаться в состав разных программ. Таким образом, ПМ может рассматриваться и как средство борьбы со сложностью программ, и как средство борьбы с дублированием в программировании. Применение модульного программирования в процессе разработки программ реализует общие методы борьбы со сложностью, а именно, обеспечение независимости компонент системы и использование иерархических структур.

Программирование модуля предполагает, что программа должна быть понятной и компьютеру, и человеку. Современные языки программирования достаточно сложны, чтобы запутать логику работы модуля, тем самым, сделать модуль малопонятным для человека и ненадёжным. Поэтому Дейкстра предложил строить программу в виде композиции нескольких типов управляющих конструкций, которые позволяют значительно повысить понимаемость логики работы программы. Программирование с использованием только таких конструкций назвали структурным. На рис. 5 представлены основные конструкции структурного программирования: следование, разветвление и повторение. Компонентами этих конструкций являются обобщённые операторы (узлы обработки) S, S1, S2 и условие (предикат) Р.

Обобщённым оператором может быть либо простой оператор какого-либо языка программирования (операторы присваивания, ввода/вывода, обращения к процедуре и т.п.), либо фрагмент программы в виде композиции основных управляющих конструкций структурного программирования. Каждая из этих конструкций имеет только один вход и один выход.

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

У структурного программирования есть ещё одно название − «программирование без GO TO». Но дело не в операторе GO TO, а в его неупорядоченном использовании. Часто при структурном программировании с использованием некоторых языков программирования (например, ФОРТРАНа) оператор безусловного перехода (GO TO) используют для реализации структурных конструкций, что не нарушает принципов структурного программирования. Запутывают программу случаи «неструктурного» применения оператора перехода, особенно переход к оператору, расположенному в тексте модуля выше выполняемого оператора перехода. Однако иногда желание избежать использования GO TO в некоторых простых случаях может привести к слишком громоздким программам, что ухудшает их ясность и повышает вероятность появления в тексте модуля дополнительных ошибок. Поэтому рекомендуют избегать употребления оператора перехода всюду, где это возможно, но не ценой ясности программы. К позитивным результатам использования оператора GO TO обычно относят выход из цикла или процедуры, срабатывающие по особому условию, «досрочно» прекращающие работу данного цикла или данной процедуры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]