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

gooブログ「ウィリアムのいたずらの、まちあるき、たべあるき」がお引越ししてきました

開発の初めから順番に書いていってみる その29:外部設計(6)フレームワークで速度が決まる


シリーズ「開発の初めから順番に書いていってみる」の続きです。
(なんか、最近シリーズ化している話がやたら多いですね!一番最後にまとめときました)

今、外部設計の段階で、要求仕様から、詳細設計までの間(ここを外部設計と、ここでは読んでいるわけですが)の手順は、以下の手順で行うと、流れに飛躍がなく説明がつくということを書きました。

(1)入出力の媒体をきめる。
(2)その媒体ごとにフレームワークを決定する。
   なければ、入出力方法を決定する。
(3)そのプロセスの起動方法を考える
   なければ、起動モジュールを考える。
(4)起動モジュールから、(2)の呼出し手順を考える
(5)その処理部分をどうするか、考える。
(6)そうすると、細分化された入出力、処理部分ができる。
   ここで、あわせたいものは、あわせる
(7)処理部分を、ワーカーさんに渡せるまで落とし込む。


だけど、実際にやられるのは、こんなかんじだと書きました。

(あ)フレームワークの確認から、全体的なプログラムの書き方を決める
(い)画面の設計をする
(う)DBの設計をする、(その他外部の設計をする)
(え)プログラムを適当に詳細化し、詳細設計に持っていく


今日は、「(あ)」の部分のフレームワークについて、書きたいと思います。




■はじめに、フレームワークを決定するのですが。。
 外部設計に入る一番初めの作業は、フレームワークの決定。。と書きたいところなのですが、実は、外部設計に入る前に、何をハードで使うかとか、フレームワークは何をつかうかっていうのは、たいてい決まっています。

 要求仕様の段階っていうか、そもそも、こー言うハードを使ってっていうかんじで、見積もりをかいてしまい、さらに、この会社で受注すると、開発標準がこれなので、フレームワークはこれ!って決まってしまいます。

 ってことで、その内容を確認する程度の話になります。

 そして、プロジェクトごとにフレームワークをカスタマイズするところがあればカスタマイズ、入出力に関して共通処理をする部分があれば、そこの部分の内容を決定するという作業をおこないます。

 その結果、全体的なプログラムの書き方がきまります(というか、決めます)。

 そして、その「全体的なプログラムの書き方」を、
   コーディング規約か
   雛形作成
 で示します。




■でも、フレームワークや、ハードなどで、処理スピードは、きまってしまう

 フレームワークを決定するということは、この段階で、ハード、ミドルウエアそしてフレームワークが決まってしまうことになります。
 実は、これがそろってしまうと、大まかな処理スピードやユーザーインターフェースはきまります。

 ブラウザをつかって行う場合、なんとなくユーザーインターフェースはきまりますし、
 J2EEで開発する場合、ハードが決まると、ある程度の処理スピードの限界って言うものが決まってしまいます。ハードを変えない限り。。

 ということで、ここで、選択を誤ると、あとあと、たいへんなことになります。
 というのは、前に開発マシンの話をかきましたけど、
 開発環境≒実行環境のときはいいんです。

 開発環境の性能がいいと、実行環境で起動したら遅いのに、開発環境では問題なしだと。。

 ずーっと開発が進んできてしまい、最後STで、

   だめじゃん、おそいじゃん(>_<!)

 ってなったら。。。

 フレームワークで骨格が決まってしまいますので、この外部設計のフレーム決定までもどってきてしまうことになります。開発のかなり多くの部分がむだになります(実際には、それはできないので、この場合、ハードの性能を上げる。その費用負担は。。)。

 ってことで、フレームワークのこの作業は重要。。。といいたいのですが

 さっきも書いたように、ここに来る前に、もう、フレームワーク、ハード、ミドルウエアはきまっているので、この時点ですら、もうおそいのかもしれません。




■つまり、副詞的環境の一部と、非機能要件は、ここできまる

 つまり、非機能要件のルック&フィールとか、副詞的世界の「どのくらい」などは、ここできまります。(いつ、どこでというのは、ここでなく、もちょっとすすんだところになりますが。。)




 ということで、フレームワークが決まり、だいたいのやり方が決まったところで、次回は「(い)画面の設計をする」になります。




P.S 初めに書いた、つづきもののまとめ(一番最新のエントリ)

開発の初めから順番に書いていってみる
=このエントリが最新

オブジェクト指向分析(開発)の存在理由
http://blog.goo.ne.jp/xmldtp/e/cc66277f9476fa272f0ff63b032be9d1

画面定義をHTMLで行い、呼び出しをWebAPIでやる設計手順の試案 その4 APIからER図へ
http://blog.goo.ne.jp/xmldtp/e/42e53e86aa37cca498930fc9461d0e63

生物の構造と、要求から、プログラムまでの階層を比較すると、わかりやすいかも!
http://blog.goo.ne.jp/xmldtp/e/f7861ca7db024bb6a2994d56c1f42812

<<土日シリーズ>>
土曜日
DTPの構造を考える-その3:組版規則など。
http://blog.goo.ne.jp/xmldtp/e/8f5d0e3f454ff68e110c3da2a26cbc88

日曜日
Hello World程度のデータベース(その15:内部スキーマ(3)データ置き場)
http://blog.goo.ne.jp/xmldtp/e/04e95852ec320210abd56720c84ba2b4