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