今回はソフトウェア開発
4つのステップ(要件定義、設計、プログラム、テスト)
のうちの2つ目・・・「設計」のお話です。

設計関連については
以前、プログラマー(PG) と システム・エンジニア(SE)
の違いで、SE が設計を行ない、
PG が実際に作る、建築士と大工さんとの
関係の様なものだというお話をしました。

例えば、犬小屋レベルのものを
作るとなると、設計図なしでも
それなりに作れてしまう様に
ソフトウェアも小さなものだと、
設計を介さずに直接作れてしまいます。

しかし、東京スカイツリーや
六本木ヒルズのレベルの大きな建物になると
それは、必ず設計が必要です。

もしも、設計なしに、
それぞれの作業員が気ままに組み立てたら
おそらく、それは建物として
機能しない、もしくは粗悪なものになってしまう事は
想像に難くありません。

ただ、ソフトウェアの
設計が建築や機械の設計と違うのは
「目に見えないものを設計する。」
という事です。

そういう意味では「人生設計」の
設計に近いかもしれません。

建築や機械というのは
目で見えるので、
明らかにおかしいものは、
明らかに分かるのですが、
ソフトウェアは処理の流れなので
目視ではなかなか確認できません。

これは、いろいろな物を困難にしていて、
例えば、おかしな設計があってもなかなか気づかない。
設計の良し悪しが把握しにくいので
システム・エンジニアが評価されにくい・・・
といった点があります。

しかし、目に見えない部分ではありますが
その役割は極めて重要。

今後は設計の詳細についても
いろいろ触れていきたいと思います。