人工知能(AI)
PR

【バイブコーディング手順書】素人がAIでアプリを作る手順を解説!【システムズエンジニアリング】

えりる
記事内に商品プロモーションを含む場合があります

最近の生成AIの進化により、ChatGPTやGeminiを使うことでソフトウェアエンジニアではない人もプログラミングができるようになり、何かしらのアプリを作れるようになってきました。
なので、「欲しいものを自分で作る」ことにチャレンジしたい人も多いのではないでしょうか。
しかし、高度なプログラミングの技術がなくてもプログラムが書けてしまうとはいえ、
適当にAIに指示するだけでは思ったようなアプリができないのが現状です。

そこで重要になるのがアプリを作る「工程」部分です。
AIがコーディング、すなわちアプリの製造を担うなら、人間はアプリの設計と製造手順の管理を担ないます。
設計と製造手順に力を入れることで、AIが思ったようなアプリを作ってくれるようになると思います。

この記事ではソフトウェアエンジニアではない一般人がAIでアプリを作るための「工程」について解説します。

えりる
えりる

凝ったアプリも作れるようになるのですごくおすすめです!
ぜひ最後まで読んで真似してみてね。

バイブコーディング

この記事で解説するような、人間が自然言語で指示を出してAIがコーディングを行う手法をバイブコーディング(vibe coding)といいます。
この方法では作ってほしいものをどれだけ上手にAIに伝えられるかが重要になると思います。

そこで、誰でも実践しやすいように一般的な開発の流れを
「作ってほしいものをちゃんと言葉にするためのプロセス」としてシンプルにまとめました。
この手順を踏んでバイブコーディングをすることで、初心者では到底つくれないようなアプリが作れるようになると思います。

アプリ開発工程

アプリのユースケースを考える

まず初めにやることは「アプリを誰がどのように使うか」を考えることです。
これをユースケースといいます。

ユースケースを作る目的
  • 作りたいアプリのイメージを具体的にする。
  • アプリを使う人を具体的にリストアップする
  • 使われ方を具体的に言語化する

まずは、ざっくりとアプリで何がしたいかをリストアップしてみましょう。
ユースケースリストに含めるべき情報は以下のようなものがありますが、この中でも最低限「アクター(=誰が)」、「目的(=どのように使うか/何のために使うか)」を含めるようにしてリストアップしてみてください。
ここが一番人間メインの工程なのでAIとやり取りをしながらがんばってリスト化しましょう。

  • ユースケース名:
    短く、分かりやすい名前をつけます。
  • アクター:
    ユースケースを実行する「誰か」または「何か」。
  • 目的:
    このユースケースを通じて、ユーザーが何を達成したいのか。
  • 事前条件:
    ユースケースが開始される前に満たされているべき条件。
  • 基本フロー(正常系):
    ユースケースが成功するまでの一連の手順。ユーザーとシステム間のやり取りを段階的に記述します。
  • 代替フロー(異常系/イレギュラー):
    基本フロー以外で発生しうる状況や、エラー時の処理。
  • 事後条件:
    ユースケースが終了した後にシステムの状態がどうなるか。

リストができたらAIに渡して詳細化してもらいます。
このとき、システムズエンジニアリングの観点で詳細化してもらいます。
先ほどの要素をすべて含めてユースケースを詳細化するとよいと思います。

最終的にユースケースが詳細化できたら、ユースケース番号を付与してマークダウン形式やXML形式のファイルに書き出してもらいましょう。
のちの工程でAIに渡す用でもあり、自分で確認する用でもあります。

以下の記事で、実際にStableDiffusionのモデル管理アプリを作るときのユースケース定義を解説してみました。
具体的なアプリが題材になっているので、より理解しやすいと思います。ぜひこちらもご覧ください。

あわせて読みたい
【AIでアプリ開発】StableDiffusionのモデル管理アプリを作る!ユースケース定義編【バイブコーディング】
【AIでアプリ開発】StableDiffusionのモデル管理アプリを作る!ユースケース定義編【バイブコーディング】

アプリの機能を考える

次は、先ほど考えたユースケースを実現するために必要な機能を考えます。

ユースケースから機能考える目的
  • ユースケースを実現するために必要な機能を整理する。
  • 機能の抜け漏れをなくし、手戻りを防ぐ。

前の工程で作ったユースケースファイルをAIに渡して「ユースケースを実現する機能」を定義してもらいましょう。
まずはざっくり必要な機能をリストアップしてもらい、これでよいかを確認します。
この時、ユースケース番号と機能番号を対応付けしてもらい、抜け漏れを防ぐとよいと思います。

OKなら今度は階層的に整理しつつ機能を詳細化するようにAIに指示します。
少し専門的にはなりますが、のちのアプリの保守性などを考慮して「関心分離」を意識して機能分けをするようにするとよいと思います。

「関心分離」とはシステムを設計・実装するときに「異なる種類の関心ごと(concerns)を明確に分離する」ことを目的とした考え方で、それぞれの関心をできる限り独立して分け、混ざらないように設計することです。
「何をするか」と「どうやるか」を分ける、と表現することもあります。

機能詳細化が出来上がったら確認をして、OKなら先ほどと同じようにマークダウン形式やXML形式のファイルに書き出します。

アプリの要求書を作る

次はいよいよアプリ実装の肝になるアプリの要求書を作ります。

要求書を作る目的
  • 開発のゴールを明確に文章化する。
  • AIに「作ってほしいもの」の全てを、一度で正確に伝える。

要求書にはアプリがみたすべき事を抜けもれなくすべて書きます。
要求書には以下の要素を含めるとよいと思います。

  • 機能要求(=アプリが持つべき機能)
  • 非機能要求(=アプリが満たすべき品質、制約、および全体的な信頼性)
  • 技術要求(=使用する道具)

これらを一つずつAIに作ってもらいます。

機能要求

機能要求には「アプリが持つべき機能」を抜け漏れなく記載します。ここに書かなかった機能は実装されないので、本当に自分の欲しい機能がそろっているかをしっかり考えながら進めましょう。

とはいえ、すでに機能要求の卵は出来上がっています。「アプリの機能を考える」で作成した詳細化した機能をまとめたファイルがあると思うので、それをAIに投げて「機能要求を作ってください」とお願いすればよいです。
このとき、抜け漏れを防ぐために詳細化した機能をまとめたリストの番号と機能要求番号を対応付けするように指示するとよいと思います。
最初はざっくりした案が出てくるので、いったん確認します。これでよければ、AIに詳細化してもらい再度確認します。
自分の欲しい機能がそろっていればOKです。

仮に、この時点で機能の追加が必要なことが分かった場合は、その機能に対応するユースケースから整理して詳細化まで行ったうえで追加するとよいです。

非機能要求

非機能要求には「アプリが満たすべき品質、制約、および全体的な信頼性」を書きます。
たとえば、セキュリティやアプリデータ整合性や堅牢性、保守/拡張性などの機能にはならないがアプリに求めたいことがあげられます。
また、どんなユーザインタフェースにしたいか、パスワードのマスク表示、PC・タブレット・スマートフォンなどのデバイスで表示を最適化する、なども非機能要求に書いておきましょう。
イメージがつきにくければ、「このアプリに合う一般的な非機能要求を教えてください。」とAIに指示してみるとよいと思います。

技術要求

記述要求には使用する道具、すなわち開発に使う言語やアプリで使用するソフトウェア、フレームワークなどを書きます。
たとえば、

  • Python 3.12以降を使用する
  • Djangoフレームワークを使う
  • データベースはSQLiteとする

のような感じです。
これもイメージわかなければ「このアプリに合う一般的な技術要求を教えてください。」とAIに指示してみるとよいと思います。

開発計画を立てる

出来上がった要求書をAIに投げて開発計画を立ててもらいましょう。

開発計画を立てる目的
  • 開発作業を、AIが処理しやすい小さなタスクに分解する。
  • 開発の全体像と手順を把握する。
  • 実装の抜け漏れを防ぐ

最初はラフなものが出来上がると思うので、それを確認した後に詳細化してもらうとよいと思います。
開発計画を立ててもらったら、要求との対応付け表を作ってもらい、抜け漏れがないかを確認しておきましょう。

実装、テスト、そして修正

ここからは開発計画に沿ってAIに実装してもらいます。

実装するときに意識すること
  • 一つ一つの機能を確実に完成させる。
  • 問題が起きても、原因を見つけやすくする。

AIには要求書と開発計画書を渡して、実装を進めてもらうとよいです。

開発計画はいくつかのステップに分かれていると思うので、それを順番に進めます。
このとき、各ステップごとに実装→テスト計画立案→テスト→修正 の流れで進めるとよいです。
一気に実装してしまうとテストも修正も大変なので、実装ステップごとに丁寧に行うとよいと思います。

テストをして不具合があった時の対応

軽い不具合であれば単にエラーメッセージを渡せばよい時もありますが、そ
れだけではなかなかAIには治してもらえないことが多々あります。
こういうときは、不具合修正の手順を細かく分けて、以下の手順を踏むとよいです。

  1. エラーメッセージから不具合原因を特定するテスト・実験を行う。処理のログを詳細に出力するようにしてそれをAIに渡す方式がよい。
  2. 処理のログをもとに原因調査を行う。
  3. 修正計画を立てる。計画確認と修正を行う。
  4. 修正実行。
  5. 修正箇所の文法ミスがないかを検証する。
  6. 動作テスト。
えりる
えりる

AIにできるだけ一つのタスクに集中してもらうと、パフォーマンスを上げることができるような気がする。

機能を追加するとき

AIにコーディングをしてもらうとき、
なんとなく適当に追加してほしい機能を言って、すぐに実装してもらうとバグが多くて動かなかったり、できていたことができなくなるような機能悪化が良く起こります。

それを防ぐため、以下の手順がおすすめです。

  1. ほしい機能で実現したいことを書く
  2. 必要な機能を箇条書きで並べる
  3. 箇条書きした機能を細分化する
    → 1項目1機能に細分化
  4. AIに「実現したいこと」と、「細分化した機能」を渡して実装計画を立ててもらう。
    フロントエンドとバックエンドに分けて実装計画を立てるなど、アプリの大きな構成要素ごとに実装計画を考えてもらうとよい。
  5. 実装計画をレビューする。
  6. 構成要素ごとや各ステップごとにAIに実装してもらう
  7. 静的エラー、文法ミスのチェックをAIにやってもらう
  8. 動作テストをする

実装時におすすめのAIコーディングツールは?

AIツールは好きなものを使えばよいと思いますが、主にチャット形式のAIとClaude CodeやGEMINI CLI、Cursorなどの自動でコーディングまで行ってくれるAIエージェント系の2種類から選ぶことになると思います。
えりるさんはチャット形式もAIエージェントもどちらもやってみたので、その経験を踏まえてそれぞれ特徴を書きますね。

ChatGPTのようなチャット形式のAIによる開発は、要求書と開発計画書をAIに渡してソースコードを提示してもらい、それを手動で貼り付けるような運用になると思います。
この形式では人の手が入る部分で効率が落ちますが、嫌でもAIが書いたコードを読むことになるので中身が把握しやすく、コーディングの学習にもなるメリットがあります。

一方、Claude CodeやGEMINI CLIなどの自動でコーディングまで行ってくれるAIエージェント系は自動で実装が進むので、あまりコードを読まなくてもアプリが出来上がってしまいます。
実装の効率はすごく良くなりますが、コードを読む量は少なくて済んでしまうので中身の把握がしにくく、コーディング等の学習にはなりにくいです。

金額面ではチャット形式は無料で済みますが、AIエージェントによる実装は月額3000円程度は必要です。
GEMINI CLIは無料で使えますが、無料枠だけで実装するとかなり時間がかかってしまうのであまり現実的ではないと思います。
以下の記事でGEMINI CLIの無料範囲や課金するとどうなるのかを解説しているので、こちらもぜひ読んでみてください。

あわせて読みたい
【AIエージェント】Gemini CLI無料でどこまでできる?Quota Limitと課金が必要かを解説
【AIエージェント】Gemini CLI無料でどこまでできる?Quota Limitと課金が必要かを解説

チャット形式を採用するならGoogle AI Cloud を使用するのがおすすめです。
Google AI Cloud ではGEMINIの最強モデルである GEMINI 2.5 Proをほぼ無制限(上限はあるがかなり寛大)に使用できます。

おまけ: システムズエンジニアリング

この記事で紹介した「工程」はシステムズエンジニアリングという学問をベースにしたものなので、何らかのシステム開発を行うときに使えるものだと思っています。
システムはソフトウェアに限らず、複雑な動作や様々な機能を持つもの全般を指します。
(身の回りでいうと、車や電子レンジ、洗濯機などもそうですね。)
システムズエンジニアリングを学んでみたい方はこちらの本なんかがおすすめです。

まとめ

この記事では非ソフトウェアエンジニアではない一般人がAIでアプリを作るための「工程」について解説しました。

工程をまとめると、

  1. アプリのユースケースを考える
  2. アプリの機能を考える
  3. アプリの要求書を作る
  4. 開発計画を立てる
  5. 実装、テスト、そして修正

となります。
このように「なんとなく」AIに伝えて作ってもらうのではなく、ユースケース→機能→要求書作成 の手順を踏むことで作りたいものを正確にAIに伝えることができるようになります。

えりるさんが気になっている商品紹介コーナー

UGREENの巻き取り式USB-C充電ケーブルです。巻き取り式のケーブルで100WのPD充電できるのが良いポイント。コンパクトなので持ち運びにも室内用、車内用にも便利ですし、100Wいけるので充電器を選べばスマホからノートパソコンまでなんでも充電できます。
ケーブル長さは36/60/82/100cmの4段階調整なので好きな位置で止められないのは注意ですが、ケーブルを束ねたりして管理するのはめんどくさいですし、それから解放されると考えるとえりるさん的にはかなり魅力的ですね(笑)

えりるについて
えりる
えりる
日本のどこかに生息する平成生まれの研究者。とっても理論家と思いきや気分屋さんでもある。基本的にめんどくさがり。修士(工学)を持っている。 Windows, Mac, Linuxの三刀流。
記事URLをコピーしました