История


Структурное программирование

Только псевдокод

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

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

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

На протяжении 60-х годов попытки создания многих больших программных систем наталкивались на ряд трудностей. Сроки создания программного обеспечения обычно не выполнялись, стоимость проектов превосходила бюджет, а конечный продукт не отличался надёжностью. Люди начали понимать, что создание программного обеспечения – гораздо более сложная задача, чем они себе представляли.

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

В 60-е годы стало ясно, что неограниченное использование передач управления является источником множества неприятностей при групповой разработке программного обеспечения. Вина была возложена на оператор goto, который позволяет передавать управление в очень широких пределах.

Например, для реализации следующего алгоритма:

 

использовался код:

S = 0;

i = 1;

начало_цикла:

S = S + i;

i = i + 1;

Если (i<10), то

перейти на «начало_цикла»;

Если (S<100), то

перейти на «действие2»;

Вывод “Сумма больше ста”;

перейти на «конец_условия»;

действие2:

Вывод “Сумма меньше ста”;

конец_условия:

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

Идеи так называемого структурного программирования стали почти синонимами требования «не применять goto». Исследование Бома и Джакопини показало, что программы могут быть написаны без использования оператора goto. В результате для программистов настала эра перехода к стилю программирования «с минимальным использованием goto».

Такого не было до 70-х годов, пока программисты не стали серьёзно применять структурное программирование. Результаты получились впечатляющие: группы разработчиков программного обеспечения сообщали, что время разработок сократилось, производительность труда выросла, и проекты стали чаще укладываться в рамки бюджета. Ключом к успеху явилось, что структурированные программы стали более прозрачными, легче поддавались отладке и модификации и, что самое главное, в них стало меньше ошибок.

Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков.