プログラミング(コーディング)が出来るだけでは、ソフトウェアは作れない?

ソフトウェアを完成させるために、必要な視点(要求仕様から要件定義、内部設計からプログラム設計まで)に関する解説。
44
かおりん@ @kaorin_linux

前にもちらと書いたんですが。たいてい、プログラミングで躓く人ってのは、「やりたいこと(要件)」を「プログラム仕様」に変換できないんです。やりたいことを実現するためには、どんな機能が必要か、まずは、それを「設計」することが大事なのに、それをしない、または出来ない。

2010-05-26 01:27:21
かおりん@ @kaorin_linux

プログラムの機能仕様の設計なしに、そこからプログラム設計なんて、できないので、たいていは、実装時につまづくんですよね。機能設計が出来ていれば、そこからは言語仕様やライブラリに合わせて実装していくだけ、のはずなのに。

2010-05-26 01:28:29
かおりん@ @kaorin_linux

大事なのは「要件」をきちんと分析して「機能」に落とすこと、なんですよ。どんな小さなプログラムでもね。そこから先は、わりとどうとでもなります。言語を選択すれば、出来ることはわりと限られてくるので。

2010-05-26 01:29:42
かおりん@ @kaorin_linux

実装は、ボトムアップで考えてもいいですが、設計はトップダウンで考える必要があります。まずは「何を実現するか(要件)」を明らかにすることなんです。

2010-05-26 01:31:03
かおりん@ @kaorin_linux

昨日も書きましたが、プログラミングを習得することと、言語を習得することは別物ととして考えた方が解り易いと思います。

2010-05-26 01:33:33
かおりん@ @kaorin_linux

要件を機能まで、落として、機能を関数まで落とす。それを、ある言語で、どのように実装するか、という流れになります。どのように実装するか、が言語習得の部分です。

2010-05-26 01:34:29
かおりん@ @kaorin_linux

つまり、やりたいことを、機能単位、関数単位まで落とせないのに、言語習得は出来ないんですよ。

2010-05-26 01:35:14
かおりん@ @kaorin_linux

オブジェクト指向の言語を使う場合には、機能を分割するのに、どのようなオブジェクトが必要なのかを設計する必要がありますけどね。いずれにせよ、機能単位まで分割して、はじめて言語選択に入ることになるんです。

2010-05-26 01:37:22