goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

開発の初めから順番に書いていってみる その34:詳細設計(1)外部設計との相違

2007-04-23 15:54:35 | Weblog

シリーズ「開発の初めから順番に書いていってみる」の続きです。

 設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
 前回までで、要求分析と、外部設計がおわりました

 いままでのは、
 ここ 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は、今後どうなるかわかりませんね。。)、外部設計は、言語に依存しないほうが、後々のためにいいような気がします(といっても、まったく依存しないで書くのはむずかしいんだけどね。。)




 次回は、詳細設計のドキュメントについてです。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« アジャイルは、「修正すると... | トップ | 「ビル・ゲイツ会長の講演にL... »
最新の画像もっと見る

Weblog」カテゴリの最新記事