【チュートリアル】 - 分析編

bn_seq

3. モデル・図の作成
3.3 シーケンス図(sequence diagram)
chen それでは、作成したシナリオをもとに、注文を受けた「チョコレート」が、指定配送センターの「大阪配送センター」で扱われている場合についてのシーケンス図を作成してみます。

23_TIT_1

 

図3.3.1 Chen君が作成したシーケンス図(その1):注文商品が指定配送センターで扱われている場合
seq1

 

chen この図では、シーケンス番号も描いておきました。このシナリオに登場するのは、「顧客係」、顧客情報を確認するための「顧客情報管理システム」、在庫情報を確認するための「在庫情報管理システム」という3つのアクターと、ある注文を表す「注文A」、注文商品である「チョコレートの注文」、指定配送センターの「大阪配送センター」、顧客情報を持った「顧客情報」の4つのオブジェクトです。
jun では、それらの間でのメッセージのやりとりはどうなっているのかな?
chen 「顧客係」は注文メニューを選択し(1.新規注文の作成)、顧客情報と指定配送センターを確認します(2.顧客情報の確認)。この場合、指定配送センターとして「大阪配送センター」が指定されています。その後、お客様から注文商品(チョコレート)と注文数を聞いて(6.注文商品の受け付け)入力していきます(7.注文商品の入力)。このとき、チョコレートが「大阪配送センター」で扱われているかどうかや(9.取り扱い商品か)、予約可能かどうか(11.予約可能か)を調べます。
jun なるほど。ちゃんとシナリオと対応させて考えたようだね。ところで、予約可能な在庫数を調べるときに、「在庫情報管理システム」から在庫数を取得して(13.在庫数の取得)、既に予約されている数の合計を取得する(14.既に予約されている数の合計の取得)ようになっているが、これはどういうことをしているのかな?
chen はい。「在庫情報管理システム」で管理している在庫数は、配送センターの実在庫数なので、予約可能な在庫数とは限りません。注文受け付け時の予約可能な在庫数を知るためには、その日に既に予約されている数を取得する必要があると考えました。そうすれば、実在庫数から既に予約されている数の合計を減算することによって、予約可能な在庫数が分かるからです。
jun よく考えたね。そして、在庫があることを確認したら予約をするんだね(16.予約)。
chen そうです。そして、顧客係はお客様に配送予定日を伝えます(19.受け付け終了の確認)。注文が完了すると(20.注文の完了)、大阪配送センターに注文情報がデータとして送られます(21.注文情報の送信)。
jun 現時点で作成するシーケンス図としては、この程度の情報が記述されていればいいだろう。では、注文を受けた「キャンディー」が指定配送センターの「大阪配送センター」ではなく、「神戸配送センター」で扱われている場合のシーケンス図はどうなるか考えてみよう。

 

図3.3.2 Chen君が作成したシーケンス図(その2):注文商品が別の配送センターで扱われている場合

seq2

 

ill_24

chen このシーケンス図では、指定配送センターとは別の「神戸配送センター」というオブジェクトが登場します。「キャンディー」は指定配送センターである「大阪配送センター」では扱われていないので(9.取り扱い商品か、10.いいえ)、どこの配送センターで扱われているかを調べます(11.配送センターの取得)。そして、その商品を扱っている「神戸配送センター」に対して在庫数の確認(13.予約可能な在庫数の取得)や予約(19.予約)をします。また、指定配送センター以外の配送センター扱いの注文商品には配送票が必要なので、顧客係が注文を完了すると(21.注文の完了)、「大阪配送センター」には注文情報のデータを送信し(22.注文情報の送信)、「神戸配送センター」には配送情報のデータを送信することになります(23.配送情報の送信)。
jun そうだね。それからこれは補足だが、分析段階では特に、シーケンス図の左に、メッセージ送信と対応させてシナリオの各ステップをテキストで記述することがあるんだよ。これはスクリプトと呼ばれて、自然言語または疑似コードで書くことができるんだ。例えば、図3.3.3のようになるよ。

 

図3.3.3 スクリプト記述の例
wd_05

 

chen スクリプトは、メッセージに対するコメントのようなものですね。
jun そうだよ。これを記述することよって、ユースケースの実例である1本のシナリオとシーケンス図を対応付けることができるから、複雑なシナリオの場合や、お客様に見せる場合などに便利なんだよ。

 

 

 

 

bn_note05

jun では次に、クラス図について考えてみよう。

 

Prev. Next Home Top