構造化プログラミングは、現代のプログラミング言語の大半が属する、最もよく知られているプログラミングパラダイムです。他のプログラミングパラダイムのベースの考え方にもなっているので、プログラミング言語として最初に学ぶべきものといえます。

 構造化プログラミングとは、「順次」「反復」「分岐」という単純な制御構造を「手続き」という単位でまとめることで抽象化し、その手続きをさらにまとめてより抽象的な「手続き」を作る、といった階層構造によってプログラミングするパラダイムです。

 順次とは、プログラムに記述された順に上から実行する処理です。反復とは、指示された処理を繰り返し実行することで、多くの言語ではfor文、while文といった形で表現されます。分岐とは、条件によって実行する処理を切り替えることで、こちらはif文、switch文が代表的です。

 ソフトウエア設計の考え方の1つに「分割統治法」があります。構造化プログラミングはこれを体現したものです。分割統治法とは、そのままでは解決が難しい「大きな問題」を「小さな問題」に分割し、その分割された小さな問題のすべてを個別に解決する手法です。構造化プログラミングに当てはめて考えてみると、大きく複雑なソフトウエアという問題を小さな手続きという単位に分割し、それをさらに分割することを繰り返すと最後には順次、反復、分岐という単純な小さな文になります。これが、分割統治法の考えが生かされているということになります。

分割統治法の考え方
[画像のクリックで拡大表示]

小さな問題に分割して解決

 分割統治法のメリットは、小さな問題は基の問題よりも解決方法を考えるのが簡単なこと、それぞれの小さな問題の解決を別々の人に分割してお願いできることです。大きく複雑なソフトウエアを1人では作れませんが、複数の小さな問題になっていれば、多くの人で協力して設計・開発することができます。このように小さな問題に分割して考え、複雑なソフトウエアを見通しよく、大人数で協力して設計・開発できるようになったことが、構造化プログラミングの大きなメリットです。

 この分割統治法という考え方は構造化プログラミングだけでなく、ソフトウエア開発全般でよく出てくる概念です。例えば、プロジェクトマネジメントの分野では、タスクを分割して詳細化していくWBS(Work Breakdown Structure)という概念がありますが、これも分割統治法に基づいています。この概念を覚えておくと、さまざまな場面で役立ちます。

この先は日経 xTECH Active会員の登録が必要です

日経xTECH Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。