LoginSignup
71
75

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-06-06
1 / 19

ユースケースとは

  • システムの外側の要求と、対する内側の応答を示すもの
    • 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. 入力、バリデート、登録処理と分けずに「登録する」とする

まとめ

  • ユースケースの概要とモデリングするメリデメを紹介
  • 手法としてユースケース記述とユースケース図がある
  • ユースケースモデリングをして、システムを整理しよう!

参考資料


リンク

71
75
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
71
75