シリーズ「開発の初めから順番に書いていってみる」の続きです。
前回、要求分析の結果(ここではDFDを扱います)から、外部設計、最終的に詳細設計へ落とし込むのは、以下の手順で行うと、説明がつくということを書きました。
(1)入出力の媒体をきめる。
(2)その媒体ごとにフレームワークを決定する。
なければ、入出力方法を決定する。
(3)そのプロセスの起動方法を考える
なければ、起動モジュールを考える。
(4)起動モジュールから、(2)の呼出し手順を考える
→そうすると、処理部分だけ、のこるはず。
(5)その処理部分をどうするか、考える。
(6)そうすると、細分化された入出力、処理部分ができる。
ここで、あわせたいものは、あわせる
→特に画面を、いくつか合わせて1画面にすることが多い
(7)処理部分を、ワーカーさんに渡せるまで落とし込む。
前回はは、(1)から(5)までです、
今回は(6)を説明します。
■細分化された入出力をあわせる:画面以外
さて、(5)までで、1プロセスにたいして、入出力部分と、プロセス処理部分に分離しました。
でも、入出力にはフレームワークがあるか、それ相応のものをつくるとなると、1プロセスに対してあるのではなく、たいていは、DBなら1テーブル、帳票なら1つの画面に1つのプロセスがあって、そのプロセスを、プロセス処理部分が呼び出すっていう形になると思いますので、そうやって、書き換えましょう。
つまり、要求仕様段階で、
っていうことです。この(6)までの工程で。。
(5のとき、プロセスごとにいったんなるので、もっと細かくなるが、まとめると、結局こうなる。。まあ、面倒なので、ふつう(5)の時点の図を描くことはない)
■細分化された入出力をあわせる:画面
画面は、Action1個に対して、いろいろ操作しましたが、1アクションは1画面ではない、つまり、ボタン1個が1アクションに相当するのですが、1画面でいくつものボタンになることがあります。なので、まとめます。
たいてい、エンティティ1個に対し、それが複数あるなら、
一覧(エンティティのリスト)と、詳細画面(1エンティティ分)があって、そのエンティティに関連するアクションを1ボタンとしてまとめると、うまくいきます。
まあ、こんなかんじで、まとめた画面と、その画面の流れを、画面定義書としてまとめます。
そーすると、最終的に、こんな図に変換されると思います。。。
なお、黄色の部分が画面のプロセスになります。
Strutsだと、ActionFormとJSP、Javascriptなんかで記述するプロセスっていうことになります。
■つまり
つまり、入出力フレームワークに沿ってまとめるということです。
こうなると、結果として、入出力のものは、全部プロセスに対する値渡しになるので、
入力からプロセスをへてわたってきた値を、
なんらかの処理をして
値を渡すとプロセスを経て出力する
そうすると、処理部分の話だけになります。
で、次回は
(7)処理部分を、ワーカーさんに渡せるまで落とし込む。
の話になります。