プログラミングについて、考えてみました
みなさん、こんにちはー!ヾ(´∀`)ノ
今回はシステム開発における
『プログラミング』について考えていきます
最初にプログラムとはなにかを把握しておきたいと思います
プログラムとは
プログラムとは
『コンピューターに情報処理を行うための動作手順を指定するもの』
そして、指定するために用いられるのが
『プログラミング言語(機械言語)』です
プログラミング言語と聞いて
難しそうと思う方もいるかもしれませんが
そんなことはありません
プログラミング言語は
コンピュータ(機械)に命令するためのものなので
命令ひとつひとつは難しくないからです
また、プログラミング言語には色々な種類があります
自己紹介でもお話しましたが、私はいままでに
『COBOL、JAVA、C、Delphi、SQL、Access VBA』
等々のプログラミング言語を使ったシステム開発をしてきました
その中で私が思っていることは
プログラミング言語が違ったとしても
命令文は『たいして変わらない』ということです
簡単な例として『項目Aに"1"を設定する』をみてみましょう
COBOLの場合は
MOVE "1" TO 項目A.
CやJava等の場合は
項目A = "1";
記述の仕方は違いますが、なにを行っているかを考えれば
『項目Aに"1"を設定している』
にどちらもたどり着くと思います
どんな処理をしたいかをはっきりさせておけば
それをコンピュータへの命令文にすることは難しくないと思います
では、プログラミングにおいて
なにが重要なのか、考えていきたいと思います
アルゴリズムとは
プログラミングで重要なことは
『アルゴリズム』だと私は考えます
アルゴリズムとは
『コンピューターのプログラムに適用可能な手続きや手段』
つまり、
コンピュータに『どのような命令』を『どのような順序』で行わせるか
ということで、これを考えたものが『設計』にあたります
わかりやすく説明するために
システム開発を例に挙げます
また、プロジェクトや会社によって
システム開発の工程の定義が異なるため
一般的なシステム開発で考えてみます
一般的なシステム開発の工程は
要件定義 ⇒ 基本設計 ⇒ 詳細設計
⇓
総合テスト ⇐ 結合テスト ⇐ コーディング・単体テスト
という順序で行われます
2段にしているのは
『要件定義』の確認が『総合テスト』
『基本設計』の確認が『結合テスト』
『詳細設計』の確認が『単体テスト』
になるからです
よくV字の図で説明されているものです
そして、アルゴリズムを考える工程が『詳細設計』です
設計で大切なこと
詳細設計で大切なことは色々ありますが
今回はアルゴリズムに着目してみたいと思います
一言で表現すると
『誰が見てもわかりやすい』
ことだと思います
同じ結果を導き出すにしても
方法はいくつもあります
例えば、前述で例に挙げた『項目Aに"1"を設定する』で考えてみます
項目A = "1";
定数1 = "1";
項目A = 定数1;
上に記述した内容は、どちらも結果的には『項目Aに"1"』が設定されます
このように簡単な例でも2パターンの記述をすることができました
では、具体的にどのように考えればいいのでしょうか
設計者によっては高度なテクニックを
使いたがる人がいるかもしれせん
ただ、そうしてしまうと
設計者個人の考え方に依ってしまうので
他の人が見た場合に、何が目的で行うのか
見えづらくなってしまいます
設計とは
『どれだけシンプルに、かつ、目的がわかるように考える』
ことだと私は思っています
上でも述べたように、同じ結果を導き出すにしても
方法はいくつもあるので、どの方法を選ぶかは
設計者の『センス』だと思います
ただ、『センス』といっても、生まれつき持ったものではなく
『どれだけシンプルに、かつ、目的がわかるように考える』ことを
『どれだけ意識を傾け、かつ、考えてきたか』で
磨かれるものだと私は思います