コメントのないプログラムコードを読み、そのプログラムが何を目的としているかを文書化するのは、できなくはありませんが、少々困難を伴います。プログラムコードは人にとって必ずしも理解し易いものではありません。
なぜプログラムコードはすんなりと理解できないのでしょうか。それは、人が理解するレベルとプログラムコードの間にギャップがあるからです。プログラムコードを直接書き下すのが困難な理由はここにあります。
従って、目的のプログラムを何の準備もなしにコード化することは先ずありません。入力や出力情報を明らかにし、どんな処理をするのか文書化するのが一般的です。このような下準備の作業を設計と呼んでいます。設計の成果物を設計書あるいは設計仕様書といいます。設計書でプログラムの意図を記述し、その意図をコンピュータに伝えるために、プログラムコードを用います。
ところで、設計はどのように行うのでしょうか。
まず、目的のプログラムのコンセプトを明らかにします。プログラムが何をするのか、プログラムがどんなものなのか、人が分かるように解説します。
次に、コンセプトを具体化します。具体化には2つのことを考えます。1つはプログラムの外部仕様を具体化する機能設計です。もう1つは機能を実現するためのプログラムの構造を具体化する構造設計です。この作業の生産物は機能設計書と構造設計書です。この段階で、プログラムが使用する重要な手段(OS,DB,ソフト部品,etc.)を明示します。
機能設計書と構造設計書の2つが揃ったところで、プログラミング言語の関数やモジュール、あるいはオブジェクト指向のクラスを意識した、詳細設計に進みます。詳細設計では、{入力情報・処理概要・出力情報}を1つの単位として、プログラム全体をブレークダウンします。{入力情報・処理概要・出力情報}は関数やモジュール、あるいはオブジェクト指向のクラスに対応します。
最後はコード化です。コード化はすべての{入力情報・処理概要・出力情報}に対して行います。
上に述べたように、プログラミングの中でコード化に先立つ下準備は大変重要な役割を果たしています。