Скачиваний:
24
Добавлен:
26.09.2019
Размер:
774.14 Кб
Скачать

Программирование на основе принципа пошагового совершенствования

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

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

Структурное программирование по нисходящему принципу

Пошаговое совершенствование больших структурированных программ выполняется путем посегментного структурирования. Такой процесс называется структурным программированием по принципу сверху вниз, или по нисходящему принципу. Сегмент представляет собой небольшую структурированную программу. Сегмент ограничивается операторами proc и corp, а его отношение к другим сегментам может быть задано в предложениях run. Сегменты используются для управления степенью сложности программы. Это подразумевает более наглядное отображение логики программы с помощью средств структурного программирования, а также ограничение размеров программных текстов до величин, воспринимаемых человеком в каждый момент времени. Сегмент не должен быть слишком большим, что создает неудобства в работе с ним из-за его сложности, и слишком маленьким, что приводит к увеличению утомительных операций по обработке сегментов. Сегмент обычно оперирует несколькими переменными, элементарными программами и строками логического комментария, которые могут быть сформированы и записаны в виде согласованной программы.

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

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

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

После написания начальных сегментов дальнейшая работа может выполняться одновременно несколькими программистами.

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