シリーズ「開発の初めから順番に書いていってみる」の続きです。
設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
前回までで、要求分析と、外部設計がおわりました
いままでのは、
ここ http://www.geocities.jp/xmldtp/index_kaihatsu.htm
にまとめてあります。
今回から、内部詳細設計に入ります
■内部詳細設計とは
内部設計、あるいは詳細設計といわれる部分は、どのようなプログラムを書くかということになります。つまり、プログラムに即した設計になります。
一方、外部設計の段階は、入出力と、プログラムの外側からみたかんじ(書式とインターフェース)になってきます。プログラムに即しているとは限りません。
具体的に言うと、外部設計の一番下の段階では、
出荷一覧出力
受注マスタデータに、本日分データをマージし、出荷日順にソートし、明日の出荷一覧を出力する。
となっていたとします。
このとき、やることは
1.マージ(受注データ、本日分データ)
2.出荷日順ソート
3.出荷一覧出力
になります。ここで、マージの方法は、言語によって違います。
1.COBOLなどでは、一回ソートして、キーをマッチングしながら出力します。
2.DBにアップデートするなら、
データ検索してあれば更新
なかったら挿入します
3.Javaなら、受注データ、本日分データのキーとレコードを
ハッシュマップにいれ、putします。
4.perlの場合は、Javaのハッシュマップが連想配列になります。
5.ExcelVBAなら、キーと値のシートをつくって作業するとしやすいかも。。
6.Fortranでやるやつはいないと思うけど、Cobolと同じ
7.Cでやる場合も、COBOLに似てるけど、ソートに関しては関数がある
→ただし、qsortは、同じ値のとき、順番が保たれるか?
:
:
このままかきつづけると、SmallTalkでは、Pascalでは、Lispでは。。と永遠と続きそうなのでやめますけど、とにかく、言語によってやり方は違います。
詳細設計では、その辺の使用言語への落とし込みが必要になってきます。
■逆に言うと外部設計では、言語に依存しないほうがいい
っていうことは、逆に言うと外部設計は言語に依存しないほうがいいです。
依存してしまうと、その言語がわかんないと?になってしまいます。
仮にCobolよりの外部設計を書いてしまうと、COBOLからJavaへの移行で、COBOLがわかんないと、外部設計がわかんない・・詳細設計はもちろんわかんない・・書いてあるソースコードもわかんない・・ってなると、要求分析から、操作している画面までの中身が、まったくわかんなくなっちゃいます。
言語は永遠でないというより、10年もしないで流行すたりがあるので(昔はCOBOL全盛だったんですよ。。Cも、今よりもずっとはやってたし。。VBは、今後どうなるかわかりませんね。。)、外部設計は、言語に依存しないほうが、後々のためにいいような気がします(といっても、まったく依存しないで書くのはむずかしいんだけどね。。)
次回は、詳細設計のドキュメントについてです。