Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС2 Проектирование аппаратного и программного...doc
Скачиваний:
5
Добавлен:
26.09.2019
Размер:
2.77 Mб
Скачать

Иерархическая организация алгоритма

Полный алгоритм программы представляет собой общий алгоритм, раскрывающий взаимодействие ее исполнителей как неделимых модулей, а также множество алгоритмов, описывающих внутреннюю организацию этих модулей.

При проектировании сложной программы целесообразно организовывать ее алгоритм в виде иерархической многоуровневой структуры, приведенной на рис. 3.23.

Рис. 3.23. Иерархическая многоуровневая структура алгоритма

Общий алгоритм располагается на верхнем уровне этой структуры, называемом макроуровнем программы. Макроуровень обеспечивает взаимодействие программных исполнителей путем их своевременного вызова.

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

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

Считая, что на одной странице помещается 50 строк текста, легко определить количество необходимых уровней управления для реализации программы, сложность которой ориентировочно оценивается в NS строк. Очевидно, что условие размещения текста длиной NS строк в m уровнях управления имеет вид 50m > = NS. Отсюда m = ent(lgNS/lg50) + 1. Значения m = f(NS), полученные по этой формуле, приведены в табл. 3.2.

Таблица 3.2

Зависимость m = f(NS)

NS

m

не более 50

1

50 . . . 2500

2

2500 . . . 125000

3

Из этой таблицы следует, что использование рассмотренного подхода при двух уровнях управления обеспечивает реализацию программы длиной до 2500 строк, а при трех уровнях  до 125000 строк, что достаточно для всех случаев применения МПС. При этом программная документация всегда имеет четко структурированную форму, и степень сопровождаемости программы не зависит от ее сложности.

Таким образом, алгоритмизация программы сводится к разработке алгоритмов ее макроуровня и программных модулей нижнего уровня. При алгоритмизации макроуровня целесообразно использовать логическую конструкцию СЛЕДОВАНИЕ структурного подхода. При этом на нем могут находиться лишь команды, осуществляющие вызов программных модулей или передачу параметров в них.

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

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

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