読み方 : だんかいてきしょうさいかほう
段階的詳細化法【stepwise refinement】
概要
段階的詳細化法とは、コンピュータプログラムや設計書などを、最初は大まかな概要として記述し、それを段階的に、より詳細なレベルへと分解・精緻化していく手法。著名なコンピュータ科学者のニクラウス・ヴィルト(Niklaus Wirth)氏が1971年の論文で体系化した、トップダウン設計の基本的なアプローチである。

処理の全体像をまず抽象的な一つの手順として記述し、その手順を複数のより具体的なサブ手順に分解する。さらに各サブ手順を実際に実装できるレベルの具体的な処理に分解していく。この作業を、各部分がプログラミング言語で直接記述できる粒度になるまで繰り返す。
例えば、「成績処理システムを作る」という課題を段階的詳細化法で設計する場合、まず、「データを読み込む」「成績を計算する」「結果を出力する」という3つの大きな手順に分解する。次に「データを読み込む」を「ファイルを開く」「1行ずつ読み取る」「データを検証する」「配列に格納する」へと詳細化し、さらに各手順を実装可能なコードレベルまで分解していく。
この手法は構造化プログラミングの実践方法として1970年代に広く採用され、PascalやC言語などの手続き型言語での開発に適用されてきた。設計の各段階で全体の整合性を保ちながら詳細化が進むため、複雑な処理を人間が理解・管理しやすい形で構造化できる。オブジェクト指向設計では責務の分割方法が異なるが、最上位の抽象的な記述から出発して下位の詳細へと向かう「トップダウンアプローチ」は現代の設計においても共通する考え方として根付いている。