構造化プログラミング
制御構造(実装)
goto文によるソフトウェアの破壊を危惧して、エドガー・ダイクストラが提唱した。
- 順接
- 上から順に実行
- 分岐
- If Statement
- 反復
- While Statement
構造化設計(設計)
サブルーチンとデータ構造の無数の組み合わせからプログラムを組み立てること
また、これらの分割によって凝集度や結合度などの考えも生まれている。
単語
goto文
ラベル名に強制移動
#include <stdio.h> int main() { int count = 0; loop: count++; if (count >= 10) goto end; goto loop; end: return 0; }
サブルーチン
メインルーチンから呼ばれるコード群
(method, function, procedure...)
package main func main() { subRoutine() } func subRoutine() { fmt.Println("subRoutine") }
凝集度
クラスやパッケージ、モジュールの責任範囲の明確さ
凝集度が高い = 各パッケージが独立しており、お互いの強調度合いが高い
凝集度が低い = 各パッケージの依存や共通性が多い
結合度
あるモジュール同士の密接度