Особенности структурных программ
Становление структурной методологии связано с появлением ряда плодотворных концепций в области программирования, которые возникли в ответ на растущую сложность решаемых проблем.
Одной из первьцх появилась идея нисходящего программирования (проектирования), или пошаговая детализация, которая подразумевает разбиение с;ложной задачи на некоторое число подзадач. Такое последовательное разбиение продолжается до тех пор, пока полученные подзадачи не станут настолько простыми, что их можно легко записать та языке программирования. В результате последовательной детализации программу можно представить в виде иерархической стр)уктуры взаимосвязанных модулей в соответствии с распределением подзадач по уровням иерархии.
Однако построение программы возможно и снизу вверх — от конкретных объектов и функций конкретной машины к более абстрактным объектам и функциям, которые используются в модулях программы. Этот подход получил название уровней абстракции.
Использовагаие в программировании перечисленных подходов приводит к созданию структурных программ, обладающих рядом особенностей. Наиболее существенными характеристиками структурной програм1мы являются ее иерархическая форма и использование ограниченнюго набора управляющих конструкций. Важным представляется тгакже:
• простая стандартная структура управления;
• единые требования к документированию программы;
• соглашения! о стиле кодирования.
Рассмотрим перечисленные характеристики подробнее.
Структурная! программа разделяется на ряд модулей, упорядоченных иерархически в соответствии с их логическими связями и связями по последовательности выполнения. Поток выполнения модулей програ,ммы подчиняется простым и понятным правилам (см. главу 4).
Базовый набюр управляющих структур ограничен тремя базовыми конструкциями: последовательность, выбор, повторение (цикл). Для расширения! возможности принятия многоальтернативных решений базовый набор дополнен в большинстве языков программирования оператсором многоальтернативного выбора.
В структурных программах допускается использование оператора перехода (GO TO), но толгько для перехода в точку выхода данного модуля.
Любая структурная программа, образованная из базовых конструкций, обладает свойством модульности в соответствии со структурной теоремой, и неотъемлемой ее частью является документация, обеспечивающая понимание программы. Принято использовать три уровня документирования:
• общий обзор программы;
• организация программы;
• операторы программы.
Информация в документации обычно размещается в исходном коде программы и используется для описания общей функции программы, для представления функций каждого модуля, для описания данных и параметров, передаваемых между модулями. Наряду с внутренней может быть и внешняя документация, подготовленная, как правило, с использованием общепринятых структурных средств. Обычно это графическое представление структуры программы, логики обработки, структур данных.
Документация общего обзора помещается в начале исходного кода программы в виде комментариев. К обзорной информации относятся:
1. Краткое описание общей функции программы, определяющее ее основные компоненты.
2. Краткое описание базы данных, включая главные файлы и структуры записей.
3. Сжатое изложение идей, используемых в проекте, стиль программирования и т.п.
4. Ссылки на предшествующую документацию, проектные документы и материалы.
5. Ссылки на программную документацию, обеспечивающую эксплуатацию программы и работу с ней пользователей.
Элементы блока комментариев для каждого модуля содержат:
• назначение модуля (в одном — двух предложениях);
• алгоритмические особенности, ограничения;
• описание интерфейсов модуля (передаваемые параметры);
• реакция на ошибки и процедуры восстановления при ошибках;
• информация о влиянии изменений в модуле на другие части программы.
Комментарии к операторам используются только в исключительных случаях для пояснения необычных или сложных алгоритмических конструкций.
Вместо комментариев зачастую используются:
• содержательные имена процедур и переменных;
• типовые управляющие конструкции и процедуры;
• последовательный, строгий стиль кодирования.
Стандартизация стиля кодирования предполагает выполнение следующих правил.
1. На каждой строке записывается один оператор. Если для записи требуется более одной строки, то на следующих строках делаются отступы.
2. В структуре выбора для каждой ветви должны быть сделаны отступы, чтобы показать содержание каждой ветви.
3. Для выделения операторов, образующих тело цикла, составных и вложенных операторов также используются отступы.
4. В структуре выбора не допускается более трех уровней вложенности: большей вложенности циклов следует избегать.
5. Комментарии пролога программы должны отделяться от операторов пустой строкой.
Вместе с тем следует отметить, что в разных организациях, занятых разработкой программного обеспечения, могут использоваться свои стандарты кодирования, однако принципиальным является единообразие и дисциплина их применения.