シリーズ「開発の初めから順番に書いていってみる」の続きです。
今、外部設計の段階で、要求仕様から、詳細設計までの間(ここを外部設計と、ここでは読んでいるわけですが)の手順は、以下の手順で行うと、流れに飛躍がなく説明がつくということを書きました。
(1)入出力の媒体をきめる。
(2)その媒体ごとにフレームワークを決定する。
なければ、入出力方法を決定する。
(3)そのプロセスの起動方法を考える
なければ、起動モジュールを考える。
(4)起動モジュールから、(2)の呼出し手順を考える
→そうすると、処理部分だけ、のこるはず。
(5)その処理部分をどうするか、考える。
(6)そうすると、細分化された入出力、処理部分ができる。
ここで、あわせたいものは、あわせる
→特に画面を、いくつか合わせて1画面にすることが多い
(7)処理部分を、ワーカーさんに渡せるまで落とし込む。
で、前回までで、(6)まできたので、今日は、この「(7)処理部分を、ワーカーさんに渡せるまで落とし込む。」について考えます。
■今までの操作のまとめ
で、(1)から(6)までの操作で、どうなったかというと、
大きく処理は、外部入出力と、処理に分解でき、
(あ)外部入力を、プログラム内のメモリに展開する
(い)プログラム内のメモリの内容を元に処理を行う
(う)処理結果を、外部出力に書き出す
で、(あ)、(う)は、フレームワークなどを利用するなりして、プログラムを作成すると、結局、(い)の部分をどうするか、という話になることになります。
この、(い)の部分が、ワーカーさんに渡せるまで詳細化できれば、詳細設計までいけそうです。
■ワーカーさんに渡せるレベルとは
ここで、この業界で言うワーカーさんというのは、「教えていないことは、なにもやってくれない」ということが前提になります。
教えてもできないというケースも多いのですが、逆に、「教えてないことをやってくれる」っていうことは、期待できないと思います。
ということは、ここの(い)の部分は、
・すでに、教えているデータの変換方法である
→いいかえると、教えることが可能で、
理解しているかどうか、こちらが判断できることである
っていうことだとおもいます。
■つまり、処理部分の詳細化は
そうすると、あらかじめ、ワーカーさんに教えている処理方法にまで、
落としこむ作業ということになります。
つまり、「受注する」ではわからないので、
画面入力データ項目●●を、出力データ●●に、うつす
とか、計算する、とかです。。
あらかじめ、教えていれば、ソート、マージ、リスティングその他もろもろというのも考えられます。
逆に教えていないものや、定義していないものは、あとあとの品質低下につながります。
データをチェックしろ:どーやって??
受注に関しても、受注とは、こういうものだ(すでに決められている処理で定義しておいて)って言うのが分かっていれば、受注するでOKっていうことになります。
■で、これは一般的に言えることで。。
これっていうのは、別にワーカーさんの話ではなく、一般的にプログラム可能かどうかで、言えることです。
データの変換方法がわからないものは作れません
たとえば、「指紋認証する」とあったとします。
指紋のイメージは入力できるかもしれません
その人の登録してある指紋のイメージもとることができるでしょう。
出力はOK,NGです
入出力はOKです。
でも、指紋のイメージと、登録イメージから、OK,NGへ、どうやって変換するか(判断するか)がわからなければ、このプログラムは作れません。
学会でのソフト研究は、主にこの変換可能性を広げているといえるかもしれません。
業界知識も、ここの変換方法にかかわってくる話です。
■実は、これは、要求分析のところにつながっている。
で、この変換内容って言うのは、いままで、要求仕様からずーと触ってきてないことからも分かるように、要求仕様そのままです。つまり、要求仕様の要求(動詞部分)が、既存のプログラミング方法で分かっている方法で説明されていれば、それは開発可能で、説明できなければ、説明できるまで落とし込まないと、そのシステムは作れないということです。
っていうことで、そのワーカーさんがわかる変換方法で書けば、これで詳細設計まで落とし込めるので、外部設計は完了!ということになります。
これで、説明はついたわけですが、実際は、このように行われていません。
っていうことについて、次回は書いてみたいと思います。