【初心者向けに実演】AIで軽めの開発をやってみよう!ユースケース定義編【システムズエンジニアリング】

えりる研究室初の長期企画、「AIで軽めの開発をやってみよう!」です。
この企画では、システムズエンジニアリングや開発初心者向けに、
実際の小規模なソフトウェアの個人開発を例にして以下の2点のテーマ
- システムズエンジニアリングを活用した開発プロセスを軽めに理解する
(ガチガチにやると小規模場個人開発には重装備すぎてハードルが高いです) - ライトな開発にAIを組み込む
について実演を交えて書いていきたいと思います。
作るアプリは
「生成AIのモデルを自動でダウンロードするアプリ」
です。
第一回はアプリのユースケースを定義をやってみましょう。
ユースケース定義について
ユースケースとは何か?
システム開発において、「ユースケース」は非常に重要な概念です。
簡単に言うと、ユースケースとは「ユーザーがシステムを使って達成したいこと」を記述したものです。
例えば、オンラインストアを開発するとしましょう。このシステムを使うユーザー(顧客)は、どんなことをしたいでしょうか?
- ユーザーが商品を検索する
- ユーザーが商品をカートに入れる
- ユーザーが購入する
- ユーザーが注文履歴を確認する
これらの「システムを使う人がしたいこと」が、それぞれのユースケースになります。
ここではユーザーとしましたが、より広い意味では人だけではなくほかのシステムなども考えられます。このように、作りたいものにかかわる人・もののことをシステムズエンジニアリングの世界では「アクター」と呼びます。
なぜユースケース定義が必要なのか?
ユースケースを定義することには、以下のようなメリットがあります。
- ユーザー視点の理解促進: システムが誰のために、何をするものなのかを明確にできます。開発者がユーザーのニーズを理解する上で非常に役立ちます。
- 機能の明確化: システムが提供すべき機能が具体的に洗い出されます。これによって、「何を作るべきか」が明確になります。
どこにAIを使うといい?
ユースケース定義では、可能な限り網羅的にアプリの使い道を洗い出す必要があります。
そのため、AIとブレインストーミング的な感覚で会話をしながら ユースケースを考えていくのが効果的です。
AIにユースケースを考えてもらうときは「アクター」と「使い方」をセットで聞いてみてください。
実際にユースケースのリストアップをしてみる
やること
では、Civitai自動ダウンロードアプリのユースケースをAIに考えてもらいましょう。
ここでは、GEMINIの2.5 Flashを使いますが、AIの種類は何でもよいです。
無料のもので十分ですね。
AIに渡したプロンプトはこんな感じです。
civitaiという生成AIのモデルを共有しているウェブサイトからAPIを使ってモデルや画像を自動でダウンロードするアプリを作りたいです。サービス提供ではなく個人用です。ユースケースを考えてください。このとき、アクターが何なのかを明確にしてください。
ユースケースの一例ですが、以下のような感じでまとめてくれました。
特定の条件に合致する画像の自動ダウンロード
- 目的: 特定のタグが付与された画像、高評価の画像、または特定のモデルで生成された画像を自動的に収集する。
- アクター: 利用者
- シナリオ:
- 利用者はアプリに、ダウンロードしたい画像の条件(例: タグ “masterpiece”, “best quality”、特定のモデルID、評価数〇以上、特定のユーザーが投稿した画像)を設定する。
- 利用者はダウンロード先のフォルダを指定する。
- アプリは定期的にCivitai APIをポーリングし、設定された条件に合致する画像がないか確認する。
- 新しい画像が見つかった場合、アプリは指定されたフォルダに自動的にダウンロードする。
- ダウンロード完了後、アプリは利用者に通知する(オプション)。
- 例外:
- ネットワーク接続がない場合、ダウンロードは失敗する。
- Civitai APIのレートリミットに達した場合、一時的にダウンロードが中断される。
- ディスク容量が不足している場合、ダウンロードは失敗する。
初心者が自分で考えるには重い印象ですが、この詳細度で具体化できるとこのあとユースケースを実現する機能を考えていくときにかなり役立ちます。
自分でユースケースを考える場合はここまで具体化する必要はなく、もっと簡潔でよいと思います。
簡潔に書いたユースケースをリストにしてから、AIに詳細化してまとめてもらいましょう。
たとえば、
「”特定の検索条件(タグ、ユーザーネーム、ベースモデルの種類、モデルの種類)に合致するものをダウンロードする”というユースケースを同じようにまとめてください。」
とお願いすればOKです。
ユースケースが出そろったら最後に、これまでのユースケースをファイルに書き出してもらいましょう。そのファイルを次のステップである機能定義で使います。
形式はマークダウンやXML、jsonがおすすめです。情報を構造化して保存でき、AIにそのまま渡した際にも情報構造込みでAIに共有することができます。
たとえば、以下のように指示すればいいですね。
これまで出たユースケースをマークダウン形式でまとめて、.mdファイルにしてください。
GEMINIの場合はAIによる応答の一番下に以下の画像のような「Copy response」というボタンが表示されるので、これをクリックするとマークダウン形式のテキストがクリップボード保存されるので、メモ帳やVS CODEなどのエディタにペーストしてファイルとして保存しましょう。

ユースケース一覧
最終的にえりるさんが書き出したユースケースを以下にまとめます。
下記のアクターはすべて「利用者」です。
- 新規モデルの自動監視とダウンロード
- 特定の検索条件に合致するモデル・画像の自動ダウンロード
- ダウンロード済みコンテンツのバージョン管理と更新
- ダウンロードスケジュール設定
- ダウンロード履歴の閲覧と管理
- 特定のプロンプト・ネガティブプロンプトを持つ画像のダウンロード
- サムネイル画像および関連情報の同時ダウンロード
- 未ダウンロードコンテンツの追跡と通知
- ダウンロード先フォルダの自動整理
- APIキーの登録
詳しく見たい方は詳細を以下の記事に書いたのでこちらをご覧ください。

まとめ
この記事では「AIで軽めの開発をやってみよう!」の第一回として、アプリのユースケースの考え方とAIの活用方法についての解説と実演をしてみました。
次回は考えたユースケースを実現するアプリの機能を定義していきます。