はじめに
最近、AIを使用したシステム開発が盛んになってきています。個人的にもGithub Copilotを使っており、コーディングするときはとても便利だなと感じています。
コーディング時の補助的な役割でAIを利用しているのですが、要件定義や設計時など開発のすべてのフェーズにおいて、生成系AIやLLMを使用する開発手法・思想「AI駆動開発」というものが出てきています。
今回は、AI駆動開発について調べた内容をアウトプットしていきたいと思います。
参考サイト
AI-Driven Developmentとは
概要
- 開発のすべてのフェーズで生成系AIやLLMを利用
- プロダクトの企画からリリースまでの速度を上げる
自律型人工知能ツール
Devin
- 自律型AIソフトウェアエンジニア
- 機能の実装からバグ修正に至るまで実行できる
- サポート役ではなく、自ら判断して実行する
- GPT-4や他の生成系AIとは一線を隠す機能
- 人間はDevinにチャットのようにプロンプト(指示文)を送るのみ
- 大規模言語モデル(LLM)の微調整も可能
- フリーランス向けの仕事をすることもできるみたい
- 開発効率化、コストダウン、システム提供の速度向上ができる
- Open Devinでオープンソース版もある
Devin
AutoDev
- Microsoftが開発している自立形AIエージェント
- 自動化された開発フレームワーク
- 自立、汎用性、拡張性
- 開発環境やリソースに直接アクセスして操作する
- 業務知識は必要で、フィードバックを求められる
- 幅広いプログラミング言語に対応
- 特定の環境内で動くのセキュリティとプライバシーを保証する
- 用途
- コード生成
- リファクタリング
- ドキュメンテーションの自動化
- テスト自動化、品質向上
- バージョン管理
AutoDev(論文)
フェーズごとに使用するツール
要件定義
LLMを使用して要件を洗い出す
- ChatGPT
- Bard
- Copilot
UI設計
AIとの対話によりUIを設計していく
- create.xyz
- AIにプロンプトで指示するだけでアプリを作れる
- コードを生成してくれる
- vo
- 開発元はVercel。(Next.jsの開発元)
- ウェブサイトのUIのデザインとコード生成を対話しながら行う
- Reactコードで生成
- uizard
- UIデザインツールで、経験がなくても美しいデザインを作成できる
- テキストプロンプトや手書きのワイヤーフレームから作れる
- Visily
- スクリーンショットやテキスト、スケッチからデザインを作成できる
- テンプレートもある
- tldraw
- オープンソースのホワイトボードアプリ(無料)
- 手書きのラフスケッチや画像からサイトやアプリのデザインが作れる
- コード生成も可能
ソフトウェア設計
要件から基本設計や詳細設計をドキュメントで作成する
エンジニアはレビューして、LLMと会話して更新する
- ChatGPT
- Bard
- Phind
- 開発者向け
コーディング
LLMがソフトウェア設計、UI設計を元にコードを生成する
言語やフレームワーク、コーディングスタイルを指定する
エンジニアはレビューする
- GitHub Copilot
- Cursor
- VScodeをもとにしたエディター
- AI機能を活用できる
- Amazon Q Developer
テスト
LLMがテストのベースを作成する
エンジニアはレビューしてテスト観点をLLMに伝える
- GitHub Copilot
- Cursor
- ghostest
- ローカルPCで動くテストコード自動生成LLMエージェントツール
まとめ
今回はAI駆動設計について簡単に調べてアウトプットしました。
これまであまりAI関連はちゃんと調べていなかったので、調査したり、実際に使用していきたいと思います。