プログラミング()とは、プログラムを作成することにより、人間の意図した処理を
行うようにコンピュータに指示を与える
行為である。プログラミングをする人を
プログラマという。プログラミングを
行うためには、対象領域に関する知識、
アルゴリズム、論理学などの様々な専門知識が要求される。
ほとんどのプログラミングは、
プログラミング言語を用いて
ソースコードを記述することで
行われる。これを
コーディングという。ある程度複雑なプログラムを作成する場合、一度
コーディングを
行っただけでは、プログラムが意図したとおりに動作することはまずない。これは、プログラムの入力ミスや、プログラム構造の論理的な誤りになどによるものである。これを
バグと呼ぶ。
そこで、プログラムが意図したとおりに動作するか、検証作業を
行う必要がある。これをテストという。テストにより
バグが見つかれば、それを修正する必要がある。この修正作業を
デバッグという。
また、ある程度の期間使われるプログラムでは、使用しているうちに、プログラムの性能や機能に新しい要求が発生したり、プログラムの設定を変更する必要がでてきたり、テストにより発見できなかった
バグが見つかることがある。このような事態に対応するため、プログラムを保守していく作業が必要になる。
プログラムが、作者以外の人によって利用される場合には、プログラムの利用方法や機能について質問を受けることがある。プログラムを、意図したとおり稼働させてゆくためには、これらの問い合わせに対応する必要もある。
一般に、職業としてプログラミングを
行う場合、これらの作業が工程として含まれる。大規模なプログラミングでは、これらの作業を分業することも多い。
このような業務は、
ソフトウェア工学という学問の
ソフトウェア開発工程の分野として扱われる。
プログラムを書くことはアートなのか、クラフトなのか、工学なのかという議論がある。よいプログラミングには、それら3つの要素すべてが必要とされ、最終的に効率的で保守しやすい
ソフトウェアを生み出すことを目的とする(何が効率的で、何が保守しやすいかという判断も様々である)。