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

ユースケースモデリングにより以下のようにソフトウェア要件が具体化されている状態から、分析・概念設計を進めたいと思います。

1.ログイン
 ユーザはログイン画面を表示しユーザ名、パスワードを入力してログインボタンをクリックする。
 システムはユーザ名から対象のユーザアカウントを取得してパスワードが一致しているかチェックする。
 パスワードの一致が確認できたらセッションにユーザアカウントの情報を保存し、TOP画面を表示する。

2.商品をカートに入れる
 ユーザはTOP画面にアクセスする。
 システムは商品カタログに登録されている商品リストの一覧を取得してTOP画面に表示する。
 ユーザは商品一覧にある商品のカートに入れるボタンをクリックする。
 システムはセッションからユーザアカウントを取り出して、それに紐づくショッピングカートを取得して商品を追加する。
 

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

ロバストネス分析

それではユースケースの内容からロバストネス図を作成していきたいと思います。
まずログイン処理についてロバストネス図を作成します。 f:id:steavevaivai:20180503121152p:plain ユースケースの内容をそのまま貼り付けていってロバストネス図を作成するのですが、ここではユースケースの際に注目していなかった例外処理についてをどのように扱うのかをわかるようにします。

続いて商品をカートに入れるユースケースロバストネス図を作成します。
f:id:steavevaivai:20180503121204p:plain

それから、商品の購入のロバストネス図を作成します。
f:id:steavevaivai:20180503121222p:plain このようにロバストネス分析を行うことでユースケースモデリングでは行えなかったドメインオブジェクトと処理を関連づけとエラー処理周りの方針がたつかと思います。それから実際顧客を踏まえてのレビューを行う際はロバストネス図ではなく実際の画面に近い紙芝居を作ると思うのですが、その為の雛形としても使えそうです。

ロバストネス分析によりユースケースよりも具体化が行えるので、ここでユースケースドメインモデルの漏れに気づいて更新が行えるらしいです。