0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プラモデルWebアプリ製作記: 4. ユースケース編

0
Posted at

 黒輔と申します。2025年にエンジニア職として復帰し1年が経ちました。この間にポートフォリオとなるようなWebアプリケーションを作成しております(継続中)。

 これまでサービス企画、ドメインのコンテキスト分割、ドメインモデリングを行いました。今回はユースケースを1本書いてみようと思います。

1. ユースケース一覧

 今回はすべてのユースケースを記事に載せませんが、以下のようなユースケースを設定しています。

ID タイトル 説明
UC-U-01 塗料検索(フィルタリング) ユーザーが特定の条件(色、ブランドなど)で塗料を検索できるようにする。
UC-U-02 塗料検索(カラーピッカー) ユーザーがカラーピッカーを使用して、希望の色に近い塗料を見つけられるようにする。
UC-U-03 塗料検索(画像アップロード) ユーザーが画像をアップロードして、その画像に基づいて塗料を検索できるようにする。
UC-U-04 塗料詳細表示 ユーザーが選択した塗料の詳細情報を閲覧できるようにする。

2. ユースケース文書に記述する項目

 『はじめての設計をやり抜くための本』(翔泳社)によると、ユースケースを記述するのに必要な項目は以下です。UC-U-01.mdというファイルをリポジトリ内に作成し、そのファイル内に記述していきます。

 1. アクター
 2. 事前条件
 3. 主シナリオ
 4. 代替シナリオ
 5. 例外シナリオ

3. 出来上がった文書

 それぞれ、先述の文献をもとに記述していきます。

# UC-U-01: 塗料検索(フィルタリング)

ユーザーが特定の条件(色、ブランド、価格帯など)で塗料を検索できるようにすることで、目的の塗料を迅速かつ効率的に見つけられるようにする。

## 1. アクター

- 一般ユーザー(ログイン/非ログイン)※以下、「ユーザー」とする。

## 2. 事前条件

- ユーザーがアプリケーションにアクセスできる状態であること。

## 3. 主シナリオ

1. ユーザーが塗料検索ページにアクセスする。
2. ユーザーが検索条件を選択する。
3. ユーザーが「検索」ボタンをクリックする。
4. システムが検索結果を表示する。
5. ユーザーは任意で、「次へ」「前へ」ボタンでページ移動ができる。

1ページの表示件数:

- 30件

## 4. 代替シナリオ

### 4.1. 検索条件が未選択の場合

1. ユーザーが塗料検索ページにアクセスする。
2. ユーザーが検索条件を選択しない。
3. ユーザーが「検索」ボタンをクリックする。
4. システムがデフォルトの順序で検索結果を表示する。

デフォルトの順序: 塗料の型番の昇順。

### 4.2. 検索結果が0件の場合

1. ユーザーが塗料検索ページにアクセスする。
2. ユーザーが検索条件を選択する。
3. ユーザーが「検索」ボタンをクリックする。
4. システムは「該当する塗料が見つかりませんでした」というメッセージを表示する。

## 5. 例外シナリオ

1. ユーザーが塗料検索ページにアクセスする。
2. ユーザーが検索条件を選択する。
3. ユーザーが「検索」ボタンをクリックする。
4. システムはエラーメッセージを表示する。

エラーハンドリング:

- ユーザーが無効な検索条件を送信した場合
- システムの内部エラーが発生した場合

## 6. その他の仕様

### 6.1. 検索条件の詳細

- フィルタ条件は、同一キー内はOR条件で結合され、異なるキー間はAND条件で結合されます。
 - 例: `TagIds=red,blue&GlossIds=flat``(tag=red OR tag=blue) AND (gloss=flat)` と解釈されます。

 ※ 6. その他の仕様 は先述した項目リストにありませんが、この時点で(自分の中で)決定している要件であるため、ここに記述しておきました。

4. その他のユースケース

 以下のパブリックリポジトリに公開しているため、興味のある方はご覧ください。

5. まとめ

 以上の通り、Webアプリケーションのユースケースを定義しました。ここが設計の骨組みとなるので、しっかりと組み立てていくことが大事だなと思いました。「あれ、この仕様ってどうだっけ?」と手が止まってしまった場合にも、参照したい文書ですね。

 次回はアプリケーション設計(画面、API、DB)に入っていきたいと思います。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?