Edited at

ユースケースをモデリングする

More than 1 year has passed since last update.


ユースケースとは


  • システムの外側の要求と、対する内側の応答を示すもの


    • eg. "ユーザーの操作" に対する "一連の処理"



  • 正常系(基本コース)と異常系(代替コース)からなる

これをモデリングする。



なんのためにやるの?


  • ユーザーがシステムで何をしたいのか、何を得たいのかを明確にする

  • システムができること、できないことを明確にする



ほかにもいいことが


  • エンジニア以外でも読めるので、システムイメージを共有しやすい

  • 単体テストのケースを考える助けとなる

  • 各ドメインの処理や流れがわかり、ドメインモデルの漏れや誤りに気づける



具体的には何をやるの?


  1. ユースケース記述を書く

  2. ユースケース図(UML)を書く



ユースケース記述


  • ユースケースを表や文章で示したもの

  • 1つのユースケースについて詳しく書ける



例.1 めっちゃ詳しく書く場合の表

ユースケース記述の作成より

image.png



例.2 簡易版の表

初歩のUML:顧客の要求をユースケースに反映させるより

image.png



例.3 文章版

ユースケース駆動開発実践ガイドより

ユーザーガイドを書くのに似ている、とのこと。


システムは「検索」ページを表示する。ユーザーは「著者」フィールドをクリックし、著者名(フレッド・スミスなど)を入力する。ユーザーは「検索」ボタンをクリックする。システムは検索フォームを読み取って著者名が一致する書籍を探し出し、「検索結果」ページで 検索結果の書籍一覧を表示する。




ユースケース図


  • アクターとユースケース同士の関係を表した図

  • 粒度の大きい版と小さい版を作るとなお良い


    • eg.大きい:商品を管理する

    • eg.小さい:商品を追加する、商品価格を変更する、商品登録を削除する

    • 大きすぎると -> 認識漏れが出る

    • 小さすぎると -> "ユースケース"から"機能"になりがち





部品

次の部品を組み合わせて書く



  • オブジェクト


    • アクター(棒人間)

    • ユースケース(楕円)






    • 関連(ただの線)


      • アクターとユースケースを結ぶ



    • 呼び出し(invokes, 破線+<<invoke>>)



      • A --invokes--> B = BはAから実行される



    • 先行(precedes, 破線+<<precedes>>)



      • A --precedes--> B = Bの実行前にAが完了している





他にもあるが、上記でほぼ足りるとのこと。



  • その他


    • サブジェクト(四角い枠)


      • システムの境界を表す



    • パッケージ(フォルダみたいなやつ)


      • グループを表す







image.png



書く際の注意


  1. ユビキタス言語(ドメイン名)を使う

  2. UI部品名も使って書く


    • ユーザーとシステムの境界(バウンダリー)を明確にする



  3. 「"名詞" は "名詞" を "動詞" する」という短い文の集まりで書く

  4. ユーザー視点でまとめる(機能分割しない)


    • eg. 入力、バリデート、登録処理と分けずに「登録する」とする





まとめ


  • ユースケースの概要とモデリングするメリデメを紹介

  • 手法としてユースケース記述とユースケース図がある

  • ユースケースモデリングをして、システムを整理しよう!



参考資料



リンク