プログラミングの過程
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/25 23:05 UTC 版)
「プログラミング」の記事における「プログラミングの過程」の解説
まず、そのプログラムの目的、さらには「本当に解決したい問題は何なのか」ということについて十分な検討が必要である(ワインバーグの著書などを参考のこと)。 続いて、全体のスタイルをおおまかに2つに分けると「トップダウン設計」と「ボトムアップ実装」になる。「なんとかの設計と実装」といったようなタイトルの本が多くあるように、どちらも重要だが、一般に対象についてよくわかっているものについてのプログラミングでは前者のスタイル、よくわかっていない場合は後者のスタイルとする。「設計された通りに実装することは不可能」といった場合に開発体勢の問題などから正しい対処がされないまま、設計と実装がちぐはぐになったプロダクトは悲惨である。また反復型開発では、あまりに大きなプログラムを一方通行のプロセスで書くことは最初から避けるものとされる。 目的のプログラムを書き始める前に、まずテストを書く、というスタイルもある(これを、「テストファースト」という。詳しくは、テスト駆動開発を参照)。あるいは対象が有限オートマトンやプロセス計算など、形式手法的な方法でモデル化できるのであれば、まずはそのようにすべきである(本来はモデル主導というのはそのような意味のはずである)。 最初の段階として、トップダウン設計では軽量プログラミング言語や、非形式的な記述が適している場合には擬似言語(擬似コード)などで全体設計を検討する。ボトムアップ実装では、階層構造の「葉」にあたるサブルーチンの実装を検討する。なお、流れ図(フローチャート)はコンピュータの黎明期である1940年代後半に、当時のプログラムは機械語で読むのも書くのも難しかったことから、補助のために使われその当時には有用性が高く(en:Herman Goldstine#The First Draftに当時の流れ図がある)、MIXという機械語を使っている教科書『The Art of Computer Programming』などでは使われているが、現代のプログラミング言語でも有用と信じられていることもあるようである。 プログラミングの過程で、ソースコードを記述することを特に指してコーディングという。元々は機械語が符号であること、またはアセンブリ言語のニモニックがまるで暗号みたいである(正確には「コード」は暗号の1分類。コード (暗号) を参照)というところからコンピュータプログラムに「コード」という語が使われ、それを書く作業というきわめて限定された意味の語だったが、近年はHTMLを書くという意味にも使われるなど濫用され気味である(なお、デモシーンでは機械語のテクニックを駆使して高効率のプログラムを書く、というような本来の意味に近い意味で使われている)。 可能な限り避けたいものではあるが、プログラムにはバグ (bug) の混入が避けられない。場合によっては仕様にバグがあることもある(もっとひどい場合には標準規格のようなものでもバグがある)。デバッグ (debug) とはバグを取る作業であり、プログラミングの過程に必要なものとして見積りなどでは含めておかなければならない。 一旦の完成の後も、ある程度の期間使われるプログラムでは、使用しているうちに、プログラムの性能や機能に新しい要求が発生したり、プログラムの設定を変更する必要がでてきたり、テストにより発見できなかったバグが見つかることがある。このような事態に対応するため、プログラムを保守していく作業が必要になる。
※この「プログラミングの過程」の解説は、「プログラミング」の解説の一部です。
「プログラミングの過程」を含む「プログラミング」の記事については、「プログラミング」の概要を参照ください。
- プログラミングの過程のページへのリンク