Document

ユースケースモデル第3回(最終回)
より分かりやすい
ユースケースモデルを作る
慶應義塾大学 大岩研究室
WEBアプリケーション研究会
第4回サブゼミ
GOAL
• 複雑なイベントフローが与えられた時、
アクティビティ図を使って明らかにすること
ができるようになる
Objective
• イベントフローが与えられた時、アクティビティ図を書
けるようになる
–
–
–
–
アクティビティに適切な名前をつけられるようになる
アクティビティ図で分岐を使えるようになる
アクティビティ図で適切なときにレーンを使えるようになる
アクティビティ図で並行に仕事をすることを書けるようになる
• ユースケースとアクティビティ図の関係を説明できるよ
うになる
– ユースケースとシナリオの関係を説明できる
– ワークフロー、イベントフロー、メインフロー、サブフローの違
いを説明できる
先週の復習
• 自動販売機で「購買者」アクタが「商品を買
う」ユースケース
• イベントフロー
–
–
–
–
①利用者は、お金を投入する
②利用者は、買うジュースを確定する
③利用者は、商品を受け取る
④利用者は、おつりを受け取る
アクティビティー図
開始状態
対応している
①利用者は、お金を投入する
②利用者は、買うジュースを確定する
③利用者は、商品を受け取る
④利用者は、おつりを受け取る
お金を投入する
買う商品を確定する
アクティビティ
(アクション)
商品を受け取る
遷移
おつりを受け取る
終了状態
イベントフローで明らかでないと
ころ
買いたい商品の金額になるまで
–
–
–
–
①利用者は、お金を投入する
②利用者は、買うジュースを確定する
③利用者は、商品を受け取る
④利用者は、おつりを受け取る
これを
うまく書く方法は
ないものか?
分岐とガード条件
お金を投入する
[ 投入金額<買う商品の金額 ]
分岐点
[ 投入金額>=買う商品の金額 ]
購入ボタンを
押す
買う商品を確定する
商品を受け取る
おつりを受け取る
ガード条件
ここまでのまとめ
• アクティビティ図とは
– 仕事の流れを記述するもの
– フローチャートに似ている
– 状態遷移図とは見た目は似てるけど中身は違う
• ユースケース文書のイベントフローを分かりや
すく書くために使うことができる
– 特に、分岐や、繰り返しを明らかにするのに役に
立つ
アクティビティ図の効果的な使い方
• アクティビティ図は補助的に使う
• 典型的な使用箇所
– ビジネスの業務フロー
– ユースケースのイベントフロー
– システムのアルゴリズム
用語を整理する
•
•
•
•
•
•
ワークフロー
イベントフロー
メインフロー
サブフロー
ユースケース
シナリオ
ちがいを説明
できますか?
紛らわしいフローを整理しよう
• 一般的に使われる用語
– ワークフロー
• 何かの仕事の手順を表現したもの
• ユースケースで使われる用語
– イベントフロー
• サービスを実現するためにアクタとシステムがするやり取りを
手順として表現したもの
– メインフロー
• イベントフローの中で、一般的なフロー。特に重要なフロー。
– サブフロー
• イベントフローの中で、一般的ではないフロー。例外的なフ
ロー
フロー図解
ワークフロー
メインフロー
サブフロー
イベントフロー(ユースケース)
ユースケースとシナリオ
ユースケース
–①利用者は、お金を投入する
–②利用者は、買うジュースを確定する
–③利用者は、商品を受け取る
–④利用者は、おつりを受け取る
具体化
商品を買う
シナリオ
抽象化
Bさんは、夏のある日、テニスを
2時間して、のどが渇いたので、
受付の横にある自動販売機に
ポカリスエットを買いに出かけました。…
Aさんは、のどが渇いたので、近くの
コンビニの前にある自動販売機に
コーラを買いに出かけました。…
アクタの仕事とシステムの仕事
先ほどの例
–
–
–
–
①利用者は、お金を投入する
②利用者は、買う商品を確定する
③利用者は、商品を受け取る
④利用者は、おつりを受け取る
システムを入れた例
–
–
–
–
–
–
–
①利用者は、お金を投入する
②システムは、投入金額を表示する
③利用者は、買う商品を確定する
④システムは、商品を出す
⑤利用者は、商品を受け取る
⑥システムは、おつりを出す。
⑦利用者は、おつりを受け取る
アクタの仕事とシステムの仕事
お金を投入する
投入金額を表示する
買う商品を確定する
商品を出す
商品を受け取る
おつりを出す
おつりを受け取る
アクタの仕事と
システムの仕事が
明らかでない。
複数の人が仕事をする
• 自動販売機システムの「商品を買う」イベントフ
ロー
利用者
システム
レーン
お金を投入する
投入金額を表示する
買う商品を確定する
商品を出す
商品を受け取る
おつりをだす
おつりを受け取る
レーンを使うと、
複数のアクタの仕事を明らかにできる
(この場合、システム全体は
アクタとして捉えることができる)
複数の人が仕事をする、まとめ
• 複数のアクタが仕事をするときに、誰の仕
事かを明らかにするために、「レーン」を使
う。
– レーンはいくつでも書ける。
– 今は、アクタごとにレーンにしています。
• 将来は、オブジェクトごとにレーンにしたりします。
並列に仕事をする
顧客
書籍 販売 システ ム
注文する
在庫を確認す
る
注文を配送シ
ステムに送る
クレジット番
号を入力する
受注して、確認
画面を提示する
受理された注
文を確認する
注文を配送システムに
送っている間に、
クレジット番号を入力
できればいいのに!
顧客
並列に仕事をする
書籍 販売 システ ム
注文する
在庫を確認す
る
フォーク
同期バー
クレジット番
号を入力する
注文を配送シ
ステムに送る
ジョイン
受注して、確認
画面を提示する
受理された注
文を確認する
並列に仕事をする、まとめ
• アクティビティー図において、基本的には、
手順を明らかにするために使われるが、同
時に行いたい時には、「同期バー」を利用
して、並列に行われることを明らかにする。
– 2人が一緒に同時に仕事をする場合。
– 2人が同時に仕事をし始めると、同期を取る必
要がある。(先に終わったほうは、後に終わる
人を待つ。)→必ずジョインすること!