まえに、ここで書いたシートをもとに、
分析のアクティビティ図、ユースケース図、
実装のクラス図、シーケンス図、
要求のスノーカード
データ定義のER図
に展開できるって言うことを、ここに書いた。
今日は、さらにそれを深堀りして、なにをヒアリングで聞き出せば、DOAの図やオブジェクト指向の図に展開できるか?ということについて、書きたい。
■聞き出すのは5W1Hのうち。。。
先に結論を書いてしまおう。
まず、5W1Hを全部ききだしてもいいんだけど、
以下の●をついている項目を、とりあえず聞き出せば展開できる。
●いつ
どこで
●だれが
●なにを
なぜ
●どのように
このうち、「どこで」は、必要ないこともあるけど、分かるんだったら聞き出したほうがいい。
なぜは、無理にききださなくてもいい。
「なんで、そんなことをしているんですか?」
って聞くと、これは、疑問なんだけど、聞き方によっては(というか、受け取り方によって)「なぜそんなことをしているのか?する必要はない」と反語表現に聞こえてしまい、ユーザーとのラポート関係が解けてしまうことがある。
さらに、もっというと、なぜやっているか、自分では分からないこともある
(前任者から引き継いだ)。ところが、全体から見ると、そこで、それをしないと困るという
こともある。この場合、どんなにその人を問い詰めても答えは出ない。
なので、これは、書かなくてもいい。
なお、なぜというのは、「なんのためにするのか?」というより、「これをしなかったらどうなるのか」という立場で聞いたほうがいい。
で、問題は、上記の●のついたやつ。
これを、単純に聞いても、システムはできないのだ。
つまり、聞くポイントがちょっとちがう。
■「いつ」とは、タイミングで、「時間」、「順番」、「条件」のきまりを聞く
いつというのは、
何年何月何日何曜日何時何分何秒地球が何回、回ったとき
というのを聞くという意味では「ない」
「どのように」つまり、ある作業をする(=アクティビティ、ユースケース)とき、
(1)いつでもやってOKなのか
(2)何時何分とか、月何回とか、決まった時間があるのか?
(3)ある作業の前とか、この作業が終わったらとかいう、順番があるのか?
(4)何かがないときとかいう、条件があるのか?
というのを聞きます。
つまり、いつでもOKでない場合は、
時間、順番、条件のきまり
についてききます。これが、「いつ」にあたります。
前の図では、前のアクティビティ、あとのアクティビティで表現します。
■「なにを」とは、入出力のこと
「何を」という、「何」は、もの、エンティティ(のうち、リソース)を指します。
なので、「なにを」とは 「どのように」つまり、ある作業をする(=アクティビティ、ユースケース)ときの、
・入力
・出力
・入出力
について、聞きます。これは、まず、エンティティとして、つまり、モノレベルで抑えた後、どのようにを具体的に書いていく中で、モノの属性値レベルにまで落として考えます。
前の図では、入出力で表現します。
■「どのように」というのは、手順内容になります
これは、上記の「なにを」にかかれたものを利用して、どのように処理するのか、
その結果、なにができるのか?ということを書きます。
ここで、入力から出力が導き出せることが確認できないといけません。
前の図では、内容で表現します。
■とりあえず、「いつ」、「なにを」、「どのように」でプログラムには落とせる
これだけあると、
オブジェクト指向だと、クラス図とシーケンス図、
DOAだとERとDFD
はかけるので、プログラムには、落とし込めます。
あとは、トップの「システム全体」から、プログラム可能レベルまで、この「いつ」、「なにを」、「どのように」を順番に落としこめるかという話になります。
なお、落とし込みのレベルについては、前の図では、上位レベルを「親アクティビティ名」で表現します。
そのシートのアクティビティ名は「アクティビティ名」に書きます。
下位レベルを、内容の「子アクティビティ名」で書きます。
これによって、落とし込みの関係がつながっています。
■「だれが」は、アクターやスィムレーンに関係
でも、分析するときには、アクティビティ図やユースケース図なわけで、そこには、スィムレーンやアクターが必要です。
これらが、「だれが」に相当します。実際に行う人、担当者です。
前の図では、「担当者」で表現します。
ということで、前の図は、結局、「いつ」、「だれが」、「なにを」、「どのように」を聞き出しているということになります。ここから、DOAの図やオブジェクト指向の図がかかるということは、それらの図が、結局「いつ」、「だれが」、「なにを」、「どのように」のどれか一部を表現している図であるということです。
しかし、実際の業務をとらえるには、これら全部ないと、捕らえられないので、そこで図にすると、情報が欠落し、問題になります(2つ以上の図を使っても、分かれてしまってつながらなかったり、矛盾していたりする)。
てなわけです。。