ChatGPTをソフトウェア開発(要件定義)に応用する
2023年3月14日にChatGPT (GTP-4) がリリースされてから、その威力に全世界が注目するようになりました。
まだ多くの人が手さぐりで使い方を模索しているChatGPTですが、アカデミックの世界ではChatGPTの活用方法について既に研究が進んでいます。
このブログでは、論文などのエビデンスに基づいた知識をもとに、ChatGPTの応用方法を解説したいと思います。
今回は以下の論文から、ChatGPTをソフトウェア開発における要件定義に応用する方法についてまとめます。
WHITE, Jules, et al. ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design. arXiv preprint arXiv:2303.07839, 2023.
この論文では、ChatGPTを要件定義フェーズに応用するにあたって、以下3つのプロンプトパターンが使用できると述べられています。
- 要求シミュレータパターン
- 仕様の曖昧さ解消パターン
- 変更要求シミュレーションパターン
この3つを、以下に解説していきます。
要件シミュレータパターン
どんな場合に使用するパターンか?
プロンプトパターン
- システムとして振る舞ってください
- 要件に基づいてあなたの行動を決定してください。
- 私があなたにXをするよう求めたら、あなたは要件に基づいてXが可能かどうか教えてください
- もしXが可能なら、要件を使って説明してください
- 要件に基づいてXができない場合は、Yの形式で必要な要件を記述してください
実装例
以下の例では、社員管理システムを設計する際の要件を洗い出そうとしています。
社員管理システムの一般的な要件として、社員情報のCRUD操作、出退勤管理、有給休暇管理、給与管理、評価・昇進管理の機能があることをChatGPTが示してくれています。
メリットとデメリット
メリット | デメリット |
|
|
仕様の曖昧さ解消パターン
どんな場合に使用するパターンか?
プロンプトパターン
- (要件や仕様を列挙する)
- これらの要件や仕様を検討してください
- 曖昧さや潜在的な意図しない結果がある箇所を指摘してください
実装例
例えば、顧客から以下4つの要件が与えられたとします。
1) WebブラウザーでファイルアップロードができるUIを作成する。
2) ファイルを安全に保管する。
3) ファイルがムービーファイルタイプであることを確認する。
4) ファイルのサイズは100MB以下とする。
このとき、ChatGPTに仕様の曖昧さを指摘してもらっている例が以下です。
メリットとデメリット
メリット | デメリット |
|
|
変更要求シミュレーションパターン
どんな場合に使用するパターンか?
プロンプトパターン
- 私のソフトウェアシステムアーキテクチャはXです。
- システムはこれらの制約に従わなければなりません。
- システムへの変更をシミュレートしてください。
- Qの観点からその変更の影響を説明してください。
- これが私のシステムへの変更です。
実装例
![](https://it-worldmap.com/wp-content/uploads/4ccf80bb34c4cb783ad96ecdeb53dcd6.jpg)
メリットとデメリット
メリット | デメリット |
|
|