Конструирование программы

После того, как задача в целом поставлена, выполняется этап кон-струирования программы. Традиционно конструирование программы связывается с созданием блок-схомы. Однако фактически блок-схемы более полезны при документировании, чем при проектировании. Несмотря на призывы многих авторов книг* только немногие программисты сначала составляют подробную блок-схему, а затем пишут по ней программу. Обычно программисты полагают, что разработка подробной блок-схемы такая же трудоемкая работа, как описание первоначального варианта работающей программы, причем более бесполезная. Техника разработки блок-схем полезна при описании структуры программы и объяснении ее работы. Однако на этапе разработки программы более эффективны другие методы проектирования программ. К ним относятся:
.1. Модульное программирование. Это метод, при котором длинные программы расчленяются на короткие, которые называются модулями и могут быть спроектированы, закодированы и отлажены отдельно с привлечением минимальных сведений о других программах.
1. Нисходящее проектирование. Это метод, при котором разраба-тываемая задача расчленяется сначала на несколько обобщенных под-задач, которые затем, в свою очередь, детализируются далее. Этот про цесс продолжается сверху вниз до тех пор» пока, получаемые подзадачи не оказываются поставленными в таком виде, что их можно просто реализовать на ЭВМ.
Противоположным данному методу является метод проектирования программ снизу вверх, при котором сначала кодируются все подзадачи, а затем происходит их объединение в более крупные части общего проекта.
2. Структурное программирование. Согласно этому методу про-граммы пишутся по специально разработанным правилам. Эти правила позволяют использовать только определенные типы программных опе-раторов, хотя для описания сложных процессов допускается включение одних операторов внутрь других. Структурное программирование часто определяют как метод разработки программ, при котором каж­дый блок программы имеет только один вход и один выход.,

 

Рис. 6.3. Обобщенная (а) и де тальная (б) блок-схема

Методы структурного программирования первоначально были раз­работаны для составления очень длинных программ, но их можно ис­пользовать и при создании более коротких программ, которые обычно разрабатываются для микропроцессоров. Сначала рассмотрим технику разработки блок-схемы, а затем остальные, методы проектирования программ.

Преимущество блок-схем перед листингами программ-состоит в том, что они:               , \

а)  ясно указывают порядок выполнения операций и взаимосвязь блоков программы;  l

б)  выделяют ключевые" точки принятия решений;

в)  не зависят от конкретной ЭВМ или языка программирования;

г)  используют стандартный набор символов (рис. 6.2).

Блок-схема Подтверждает утверждение, что образы выразительнее

слов. Несмотря на то что блок-схемы имеют ограниченное применение, они остаются хорошей иллюстрацией, облегчающей процесс програм­мирования. Кроме того, они являются эффективным посредником при общении программистов с непрограммистами.

Обычно желательно иметь блок-схемы двух типов: 1) дающие пред­ставление об общей структуре программы и 2) сообщающие подроб­ности, представляющие главный интерес для программистов. На рис. 6.3 приведен пример типичной блок-схемы, описывающей алгоритм работы программы-редактора. Слишком большое число деталей затруд­няет составление и восприятие блок-схемы.* Слишком подробная блок- схема не имеет особых преимуществ перед листингом программы.

Блок-схемы полезны только тогда, когда они имеют достаточно обобщенный характер. Однако разработка блок-схем связана с до­полнительными затратами и они не содержат информации о структуре обрабатываемых данных или используемых аппаратных средств. Блок- схемы описывают только последовательность выполнения операции в программе; они не отражают связи со структурой данных или с аппа­ратными элементами.