構造化プログラミング
上述の制御構文をコーディング視点の下流工程テクニックとすると、構造化設計(structured design)はプログラムデザイン視点の上流工程テクニックであり、こちらも構造化プログラミングと呼ばれるものである。構造化設計では、サブルーチン(subroutine)をまとめたサブルーチン複合体と、データ要素をまとめたデータ構造(data structure)が主要な役割を果たしている。段階的詳細化に則ったサブルーチン複合体の階層的な組み合わせと、それに必要なデータ構造を連携させてプログラム全体を構築するというテクニックが構造化設計である。サブルーチン複合体はプログラムモジュール(program module)とも読み替えられ、モジュール凝集度と結合度もここから生まれている。
1974年頃から当初はIBM社が主導する形で、いずれも構造化(structured)が接頭辞につく数々のテクニックが発表されるようになり、1975年発表「ジャクソンの構造化プログラミング -Jackson structured programming(JSP)-」、1975年発表「構造化設計 -structured design(SD)-」、1978年発表「構造化分析 -structured analysis(SA)-」、1981年発表「構造化分析設計技法 -structured analysis and design technique(SADT)-」、1980年代発表「構造化体系分析設計手法 -structured systems analysis and design method(SSADM)-」、1989年発表「モダン構造化分析 -modern structured analysis-」などが広く普及している。
第二幕
1968年、計算機科学者エドガー・ダイクストラのACM機関紙への投書「Go To Statement Considered Harmful -goto文は有害-」は、その物議を醸す題名でコンピュータプログラミング界隈にいわゆるgoto文論争を巻き起こした。これは構造化文の認知度を高めることに貢献している。これを構造化文の第二幕と定義したクヌースは「第二幕はそのムーブメントの大きさによって、多くの人にとっての第一幕になった」と評した。1968年度開催のNATOソフトウェア工学会議でソフトウェア危機は正式な用語になり、産業界と計算機科学共通の懸案事項になった。翌69年度開催の同会議においてダイクストラは「Structured Programming -構造化プログラミング-」と題した論文を寄稿した。これが「構造化プログラミング」の正式な初出である。その論旨はソフトウェア危機解決策としてのソフトウェア正当性検証技術の確立であり、プログラムを適切に分割し抽象化して良く構造化(well-structured)しておけば、プログラムサイズ拡大に関係なくその正当性を証明できるとしていた。その具体的手法としてはトップダウン設計、段階的な抽象化、階層的なモジュール化、抽象データ構造と抽象ステートメントを連携させる共同詳細化などが挙げられていた。goto文抑制など構造化文に関する事柄は数行に留まっていたが、goto文論争に熱心なプログラマの間ではこの論文を昨年の投書の延長と見る向きも少なからず存在していた。