段階的詳細化法

段階的詳細化法によって“うまく”構造化された流れ図

プログラミングにおいて段階的詳細化法(だんかいてきしょうさいかほう、: stepwise refinement)とは、最初にシステム全体を定式化してしまい、その後で、ブラックボックスとなっている各部品の詳細を同様の手法で段階的に詰めてゆくトップダウン開発法(top-down development)を言う。

概要

シングルスレッド(single-thread)計算機においては、その計算の進行プロセスは一方向しかない。そのようなプロセスを生成するプログラムは、入力→内部操作→出力と、一つの入力に対して一つの出力を持つものとなり、コードとしても上から下へ読めるようなものとなる。

段階的詳細化法(stepwise refinement)とは、まず一番抽象的な一入力と一出力を持つ手続きを書き、次にまた同じく一入力と一出力を持つ手続きをもって、その一番抽象的な手続きの内部処理を詳細化したものを構成する、というプロセスを繰り返して複雑なプログラムを記述する手法である。プログラムの実装において抽象化の表現には関数が用いられる。

脚注


参考文献

  • E.W.ダイクストラ, C.A.R.ホーア, O. J. ダール 著、野下浩平 訳『構造化プログラミング』サイエンス社、1975年。 
  • Niklaus Wirth (1971), Program Development by Stepwise Refinement, 14, pp. 221-227, https://www.inf.ethz.ch/personal/wirth/Articles/StepwiseRefinement.pdf 

関連項目

関連人物