ユースケース駆動開発実践_分析・概念設計

ユースケースモデリングにより以下のユースケース記述が作られたとして、次は分析・概念設計を進めたいと思います。

1.ログインする
 ユーザはログイン画面を表示しユーザ名、パスワードを入力してログインボタンをクリックする。
 ログインに成功したら商品一覧画面を表示する。ログインに失敗したらログイン失敗と表示する。

2.商品を検索する
 ユーザは商品一覧画面で商品名を指定して商品を検索する。
 商品名での検索結果の上位20件を一覧で返して表示する。

3.商品詳細を確認する
 商品一覧画面から商品名をクリックする。
 選んだ商品の詳細画面を表示する

4.商品をカートに追加する
 商品の詳細画面からカートに追加をクリックする。
 システムはユーザに紐づくショッピングカートに商品を追加する
 
5.ショッピングカート画面を確認する
 ユーザはショッピングカート画面にアクセスする。
 商品の品目、合計金額が表示されたショッピングカート画面を表示する。この時前回ショッピングカート画面を表示した時から金額の変更があったものはそれを通知するメッセージをだす。

6.商品を購入する
 ユーザはショッピングカート画面で購入ボタンをクリックする。
 支払い方法、届け先住所、クーポンコードの入力項目がある注文内容入力画面を表示する。この時、クレジットカードと届け先住所は個人情報から取り出して選択候補として選べるようにしておく。
 ユーザは支払い方法、届け先住所それから任意でクーポンコードを入力し、注文内容確認ボタンをクリックする。
 支払い方法と、届け先住所をチェックして問題ないことを確認する。クーポンコードの入力がある場合は、それを合計金額に反映する。それから注文内容(品目、支払い方法、届け先、クーポン入力、合計金額)が表示された注文内容確認画面を表示する。
 ユーザは注文確定ボタンをクリックする。
 システムは注文内容を確定する。この時支払い方法毎で以下の処理を行う。
  - 支払い方法がクレジットカードの場合は注文確定の際に外部システムのクレジットカードの決済処理を呼び出す。支払いが行えたら、支払い状況を支払い済みに更新する。
  - 支払い方法が銀行振込の場合は、外部システムで振込用のワンタイム口座を作成して注文確定画面に口座の情報、支払い期限を表示する
 

ロバストネス分析

それではユースケースの内容からロバストネス図を作成していきたいと思います。
まずログイン処理についてロバストネス図を作成します。 f:id:steavevaivai:20190120112906p:plain ユースケースの内容をそのまま貼り付けていってロバストネス図を作成します、例外処理をどのタイミングで行うかも把握できる様にします。

続いて商品検索のロバストネス図です。 f:id:steavevaivai:20190120115745p:plain

次に商品詳細を確認するです。 f:id:steavevaivai:20190120120421p:plain

商品をカートに追加する f:id:steavevaivai:20190120121608p:plain

ショッピングカート画面を表示する f:id:steavevaivai:20190120122228p:plain

商品を購入するのロバストネス図 f:id:steavevaivai:20190120125832p:plain

このようにロバストネス分析を行うことでユースケースモデリングでは行えなかったドメインオブジェクトと処理の関連づけとエラー処理周りの方針がたつかと思います。これをもとに紙芝居を作ることで顧客への説明もしやすくなると思います。 ロバストネス分析中に必要なドメインクラスの追加や修正がたびたび発生するので、そのつどでドメインモデルの更新を行った方が良いです。