5.2. ИСТОРИЯ ВОЗНИКНОВЕНИЯ ПРОЕКТНОЙ ПРОЦЕДУРЫ

We use cookies. Read the Privacy and Cookie Policy

5.2. ИСТОРИЯ ВОЗНИКНОВЕНИЯ ПРОЕКТНОЙ ПРОЦЕДУРЫ

С появлением ЭВМ актуальным стал поиск способов описания вычислительных алгоритмов. В 60-х годах уже применялись два способа описания алгоритмов: словесный пошаговый и графический в виде схем алгоритмов программ (жаргонно: блок-схем алгоритмов).

Рис. 5.1. Изображение алгоритма в форме графической схемы алгоритма

При словесно-пошаговом способе алгоритмы описывались по изложенному ниже принципу.

Шаг 1. Выполняется такое-то действие для того-то. Если получается, что А < В, то переходим к шагу 4.

Шаг 2. Выполняется такое-то действие для того-то.

Шаг 3. Если А > В, то переходим к выполнению шага 1.

Шаг 4. Выполняется такое-то действие для того-то.

Шаг 5. Если А > В, то переходим к выполнению шага 2.

Изображение того же алгоритма в форме схемы алгоритма приведено на рис. 5.1.

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

Таблица 5.1

Недостатки словесно-пошагового и графического способов в виде схем описания алгоритмов программ

Способ описания Недостатки Словесно-пошаговый Неясно, что является главным, а что второстепенным (что-то понять можно лишь после индукции основного замысла). Трудно отслеживаются передачи управления Невозможность эффективного тестирования. Графический в виде схем алгоритмов программ Неясно, что является главным, а что второстепенным (что-то понять можно лишь после индукции основного замысла). Трудно записывать комментарии. Для понимания схемы алгоритмов необходимо дополнять достаточно длинными текстовыми описаниями, которые должны содержать большое количество тестовых данных для различных маршрутов вычислений. Невозможность эффективного тестирования.

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

В результате использования операционного подхода получались программы (подпрограммы) со структурными элементами в виде операторов языка программирования и единственной сверхсложной структурой "вся программа" типа "спагетти" — множеством неупорядоченных передач управлений вперед и назад (см. рис. 5.1). Все это можно отнести и к большинству текстовых инструкций.

Программы, алгоритмы которых получаются операционным подходом, являлись практически несопровождаемыми. Даже при использовании графических схем алгоритмов их необходимо было дополнять достаточно длинными текстовыми описаниями. Эти текстовые описания должны были содержать огромное количество отдельных тестовых данных для отслеживания всех маршрутов вычислений с целью понимания алгоритма каждого отдельного маршрута. Сложность таких описаний приводила к несоответствию комментариев вычислительным процессам, а также к неоправданно длительному анализу алгоритма с просчетом трассы счета по всем маршрутам в процессе отладки. При использовании схем алгоритмов программ вне документации остается ход мыслей проектировщика по получению алгоритмов. Само вычерчивание схем алгоритмов программ занимает достаточно большое время. Огромное, поистине астрономическое число вычислительных маршрутов требовало подготовки астрономического количества тестов. Программы были ненадежными по сравнению с нынешними программами. Отладка программы в виде одной неразделимой структуры "спагетти" и длиной всего в 600 строк занимала время до полугода. Написание и отладка такой программы при современных технологиях производится программистом за два-три рабочих дня.

Согласно современным технологиям программирования, описания алгоритмов в словесно-пошаговой и графической формах в виде схем алгоритмов программ практически не используются. Их заменили самодокументированные тексты, состоящие из стандартных структур кодирования.

Составлению описания проектной процедуры предшествовали труды Дейкстры (с концепцией программирования без go to), одна из первых работ по структурному кодированию программ [9] и длительный опыт программирования и преподавания авторов.