見出し画像

CursorのComposer 機能を使った要件定義・設計の方法:生成AI活用

はじめに - Cursorについて

システム開発に携わっている皆さんはCursorはご存知ですか?また利用していますか?Cursorは、VSCodeを基に作られたエディタです。特徴としてはChatGPTはじめとする生成AIがエディタに統合されており、ファイル内やターミナル内で自然言語で依頼することで、コードを自動生成してくれます。

これを使うことで、プログラムやフレームワークの理屈さえ頭に入っていれば、実際のコーディングレベルに頭を使う必要はなくなります。プログラム言語が異なれば、ループ分のやり方が異なったりしますが、それらを意識せずにただ自然言語でループ処理をしてと言えば書いてくれます。

また、ターミナルについても pwd , ls, cdぐらいであれば誰でもすぐにわかりますが、ちょっと凝ったことをする際にこれまでだといちいちGoogle検索していたかと思いますが、それも自然言語で依頼すればコマンドを生成してくれます。


Cursorを使っているか使っていないかで開発の効率は劇的に差が生まれます。無料プランもありますが、有料プランも20USD/月なのでぜひ有料登録を勧めます。


Cursorによる要件定義、設計

さて、生成AIを使ってコーディングができるといったことは有名です。しかし、ここでは要件定義、設計について紹介します。すでに要件定義や設計の文書も生成AIで非常に高い精度で作ることができます。

例えば、以下指示で要件定義書を作成してみました。



以下の要件定義書を作成して。
- メルカリのようなctocサービス
- 決済ができる
- スマホアプリ
- 個人間で取引ができ、管理者がチェックする

Cursor

生成された要件定義書

# メルカリ風C2Cサービス要件定義書

## 1. サービス概要
個人間で商品の売買ができるスマートフォンアプリケーションを開発する。ユーザーは簡単に商品を出品し、購入することができ、決済機能も統合されている。取引の安全性を確保するため、管理者による取引のチェック機能も実装する。

## 2. 主要機能

### 2.1 ユーザー管理
- ユーザー登録・ログイン機能
- プロフィール編集機能
- 評価システム

### 2.2 商品管理
- 商品出品機能(写真アップロード、説明文入力、価格設定)
- 商品検索機能(カテゴリ別、キーワード検索)
- 商品詳細表示機能

### 2.3 取引機能
- 購入申請機能
- メッセージ機能(取引者間のコミュニケーション)
- 決済機能(クレジットカード、銀行振込等)

### 2.4 管理者機能
- 取引チェック機能
- 不適切な商品・ユーザーの管理機能
- 売上レポート生成機能

## 3. 技術要件
- iOS/Android両対応のスマートフォンアプリケーション
- バックエンドサーバー(API提供)
- セキュアな決済システムの統合
- 画像ストレージシステム
- プッシュ通知機能

## 4. セキュリティ要件
- ユーザー認証・認可システム
- 個人情報の暗号化
- 決済情報のセキュリティ対策
- 不正利用検知システム

## 5. パフォーマンス要件
- 同時接続ユーザー数: 最大100万人
- レスポンス時間: 平均2秒以内
- アップタイム: 99.9%

## 6. 今後の拡張性
- 国際展開対応(多言語・多通貨対応)
- AIを活用した商品推薦システム
- ライブストリーミング販売機能

## 7. 法的要件
- 個人情報保護法の遵守
- 特定商取引法の遵守
- 資金決済法の遵守

この要件定義書は、プロジェクトの進行に伴い、適宜更新・詳細化されるものとする。

今回はデモのため、簡単な命令文としています。実際にプロダクトを開発する際はユーザーリサーチや業務部からの依頼や背景など様々な情報が付加されます。それを全てプロンプトに入れることでより詳細な要件定義書を作成することができます。

今回のポイントは次のCursorのコンポーネント機能にあります。

CursorのComposer 機能とは?

Composer機能は複数ファイルにまたがって生成AIによるファイル出力、書き込みを行なってくれる機能です。かなりひっそりとリリースされましたが凄まじい機能です。

具体的には上で作った要件定義書をベースに、各種設計書を作成を依頼できます。クラス図、シーケンス図、DB設計、ER図、状態遷移図など設計に必要な内容を要件定義をベースに一気に作成してくれます。

私もSIer時代はExcelで各種設計を行った経験はありますが、今後は必ずCursorで設計すると断言できるほど生産性に差があります。

またExcelとの違いは全て.mdファイルのテキストで作成し、それをGithubに入れておくことで差分がわかりやすくなります。Excelはファイル数が増えたり、サイズが重くなり更新の手間がかかったり、チェックすることが億劫になります。

Composer機能で依頼
左の設計フォルダに各種設計ファイルが生成
マークダウン,mermaid記法で出力するため、図式される
データベース設計

まとめ

このようにステップバイステップでシステム開発に必要な文書を作成することができます。今回は設計までですが、この内容を人間がレビューし、あっている場合はこのデータベース設計からマイグレーションファイルを作成したり、テストのためのseedデータを作成したり、さらにはテストケースを作成したりなどができます。

そこまで設計ドキュメントを充実させてから、そのドキュメントをベースにプログラムを作成します。そこからできるコードはこれまでのChatGPTブラウザから依頼していたコードとはレベルが異なります。

生成AIはすでに人間の大部分のIQを超えていますが、必要な情報を十分に渡さなければ期待したパフォーマンスを出してくれません。必要な情報とは要件定義書や設計書を指します。これらの情報も生成AIで作り、人がレビューし、それらの情報を渡してコードを依頼することがこれからの開発スタンダードになると確信しています。



最後まで読んでいただきありがとうございました。
生成AIをベースにしたシステム開発全般を請け負っております。お気軽に問合せしてください。


この記事が気に入ったらサポートをしてみませんか?