第1回 - プログラミングの手順

[ 目次へ | 第0回へ | 第2回へ ]

今回の目標
一般的なプログラミングの手順を理解します。
文法だけではなく、プログラミング全体を通した開発の手順を理解します。

プログラミングを勉強する時、ついプログラミング言語の文法だけに目が行きがちです。もちろん文法の理解がなければプログラムを作ることはできませんが、文法を知っているだけではプログラムを作れません。書籍の解説は理解できても(理解できた気になっても)、いざ自分で何か作ろうと思うと作れないということがあります。   これは、文法を覚えることだけに意識が集中してしまったために、それ以外の重要な点をきちんと勉強しなかったからです。

広い意味でのプログラミングとは、コーディング(文法にしたがってアプリケーションの動作を記述すること)だけではなく、以下の作業を順番に進めることをいいます(Microsoft Pressの「Visual J++セルフマスターブック」の解説を参考にしました)。

  1. 問題の公式化:解くべき問題を決定します。
  2. 分析:問題を分析し、問題の重要な概念を見つけます。これらの概念に基づいて、問題を言い換えます。
  3. 設計:分析を通して発見した概念に基づいて、問題の解決方法を設計します。
  4. コーディング:設計をコードでインプリメントします(プログラムを書きます)。
  5. デバッグ:分析・設計・コーディングの間違いを見つけて修正します。

デバッグの状態によっては、分析・設計・コーディングに戻って間違いがある個所を部分的にやり直します。

「問題」という言葉がピンと来なければ、「作成するアプリケーション」と置き換えてもいいでしょう。


上の手順を今回の開発に当てはめて考えてみます。

  1. 問題の公式化:電卓を作成します。今回は「ActiveX Control Padによるプログラミング入門」で作成した電卓をVBで実現することにしたので、以下の機能を持つ電卓にします。
    • 一般的な電卓と同じような見た目
    • 四則演算(加減乗除)のみ可能
    • 小数も計算可能
    • 間違って入力した数値をクリアできる(CEキー)ようにする
    • 演算子を間違えた場合は、正しいものを押しなおせるようにする
    • 表示の桁数は気にしない(コンピュータの計算結果をそのまま表示する)
    • メモリ機能はなし


    開発を始める前に、このように大まかな機能を決めてしまうことが大事です。これをしないと何からどう手をつけていいかが決まらず、その場その場で作業を進めることになります。まずテーマを決めることで、この後の作業(調べなければならないことや動作の設計)がはっきりと決まり、開発がラクになります。
    「何ができる」だけではなく「何ができない」もできるだけはっきりさせるといいでしょう。今回は「四則演算のみ(つまり、平方根や2乗などはなし)」、「表示の桁数は気にしない」、「メモリ機能はなし」が、できないことに当たります。これをしないと、作っているうちにどんどんやりたいことが増えていって、いつまで経っても完成しなくなってしまうことがあります。また、何を作ろうとしているのか自分でもよく分からなくなってしまうこともあります。まず完成させることを第一に進めましょう。機能拡張はバージョンアップの際に考えればいいことです。最初から何でもできる必要はありません。

  2. 分析:上の機能を実現するために必要な調査・検討をします。次回のテーマとしますが、例えばこのようなことを検討しなければならないでしょう。
  3. 設計、コーディング、デバッグ:次回以降のテーマです。

今回の仕様検討をもとに、さらに詳しく電卓の動作について「分析」する作業が必要になります。次回は分析のステップを説明しますが、その前に自分なりに少し考えてみるといいかもしれません。

今回は、プログラミングとはコーディングだけではないということ、アプリケーション完成までは大きく分けていくつかのステップを経なければならないということを覚えてください。
繰り返しになりますが、プログラミングをするとつい文法的なことだけにとらわれがちですが、大事なのはいくつかのステップを踏まなければならないということです。逆に言うと、コーディングの問題・文法的なつまずきは、プログラミングのほんの一部でしかありません。コーディングで苦労する場合、それ以前のステップを十分にこなしていないからということがよくあります。また、設計までのステップがしっかり出来ていればコーディングの際の問題は確実に解決しやすくなります。
プログラミング全体の流れを把握して、コーディング前のステップに充分時間をかけるようにしてください。

[ 目次へ | 第0回へ | 第2回へ ]


メール 瀬尾佳隆 (webmaster@seosoft.net)