生成AIを用いてアプリケーション開発プロセスを変革しよう(4) AI活用手法編

Microsoft

2024.07.02

進化が非常にめざましいAIを、アプリケーション開発に活用することを考えるコラムの第四弾です。
前回のコラム「生成AIを用いてアプリケーション開発プロセスを変革しよう(3) 設計書生成 ChatGPT編」では、GitHub Copilotでの設計書生成の制約と比較しつつ、ChatGPTを活用した場合の検証結果をお伝えしました。

前回まではChatGPTとGitHub Copilotで並行して検証を行ってきましたが、今回は、検証結果から本命と位置付けたGitHub Copilotのみを対象とし、設計書生成の際に活用したAI活用手法をご紹介します。

  • 本コラムの内容は、2023年8月~2024年2月までの情報をもとにしています。現在進行形で急速に技術革新が進んでおり、最新の状況を把握して活用していくことが重要です。当社でも常にキャッチアップしながら現場適用を行っています。

1. 目的

AI の活用

ソフトウェア開発の開発生産性、品質向上のためのAI活用ノウハウを蓄積します。
今回はGitHub Copilotを活用し、既存プログラムのコードからプログラム設計書の生成を検証します。

本検証では、Microsoft社がサンプルとして公開しているプログラムコードを検証対象として使用しています。

https://github.com/dotnet-architecture/eShopModernizing

2. 設計書生成の基本

チャットで設計書生成を依頼する

生成された設計書のイメージ

3. 設計書のファイルの種類(ファイル拡張子)

マークダウン書式で設計書を生成する

GitHub CopilotにはOfficeファイルを生成する能力はないため、チャット内の回答をテキストとして設計書生成してもらうことになります。装飾のある文書のフォーマットであるマークダウンファイル(拡張子:.md)の設計書を生成することが望ましいです。

マークダウン書式で設計書を生成する

マークダウンとは?

ファイルとしてはプレーンテキストのため、記述・編集が容易です。そのため文章の装飾が可能で読みやすい文章を手早く作成できます。
Visual Studio CodeやGitHubなど、ソフトウェア開発で多用されるWebサービス等が対応しており、標準フォーマットとして普及しています。

マークダウンとは?

マークダウン書式の回答をファイルに保存する

チャット内でマークダウン書式の回答を得た場合、マウス右クリックのメニューからコピーすることができます。ファイルにペーストし保存することで、マークダウン書式の設計書として保存ができます。

マークダウン書式の回答をファイルに保存する

4. 設計書のフォーマットを指定する

プロンプト内で設計書のフォーマット(記載項目)を指定してAIに依頼をする

チャットで設計書生成を依頼する際に設計書フォーマットを指定することで、AIが指定したフォーマットで設計書を書いてくれます。この際、フォーマットをマークダウン書式にすることで、期待通り、マークダウンの設計書が得られます。

プロンプト内で設計書のフォーマット (記載項目) を指定して AI に依頼をする

設計書のフォーマットの例 - クラスの設計書を生成する

設計書の粒度やフォーマットはプロジェクトにより最適なものが変わりますが、ここでは一例としてクラス (プログラムのパーツの単位)の設計書の例を挙げます。

設計書のフォーマットの例 - クラスの設計書を生成する

5. プログラムを短くする

AIが長いプログラムを読んでくれない問題への対策

AIは長いプログラムを読んでくれません(AIによって、その長さは異なります)。ただし、コメントを削除するなど、ロジックや手続きを変えずにプログラムを短くできる場合があります。プログラムを短くできれば、設計書の生成ができる場合があります。

AIが長いプログラムを読んでくれない問題への対策

6. 短く区切って設計書を生成する

AIが長いプログラムを読んでくれない問題への対策

AIは長いプログラムを読んでくれません(AIによって、その長さは異なります)。そのため、プログラムを短く区切って設計書を生成し、それらを手作業でマージします。

AIが長いプログラムを読んでくれない問題への対策

7. 必要な情報に絞って設計書を生成する

プログラムで書かれているもののすべてが、設計書に必要とは限らない

設計書に求められるものは、プロジェクトにより異なります。そのため、書かれているプログラムの中には、実装する際に必要な詳細情報など設計書への記載が不要なものがある、というプロジェクトもあります。設計書のフォーマットを指示することで、プロジェクトに合わせた設計書を生成できます。

サイズや位置は設計書に不要の場合

8. 不要な情報を設計書に記載する

不要な情報を設計書のフォーマットに組み込んだ方が良い場合がある

プログラムで書かれているが設計書に記載は不要な要素Aがある場合、AIは関連する項目Bの中に要素Aを記載する場合があります。このような場合、要素Aを記載する項目を別途用意することで、項目Bに余計な記述が含まれることを防げます。

不要な情報を設計書のフォーマットに組み込んだ方が良い場合がある

9. 入力制御は正規表現を記載する

入力制御では情報が欠落することがあるため、複数視点で生成をすることで漏れを防ぐ

高度なフレームワークでは、項目の入力制限も高度なコンポーネントが用意されている場合があります。しかし、AIはそのコンポーネントの動作を正しく書いてくれない場合があります。

入力制御では情報が欠落することがあるため、複数視点で生成をすることで漏れを防ぐ

10. まとめ

設計書生成で活用したAI活用手法

  • 1.AI活用を前提とした設計書フォーマットを採用する必要がある
  • 2.Officeファイルではなく、マークダウン書式で設計書を作成することが望ましい
  • 3.設計書の生成にも人間の操作が必要で、そこに技法といえるものがある

AIによる設計書生成はまだ万能ではありませんが、使いどころを見極めることで、役に立つことが確認できました。

  • 文中の商品名、会社名、団体名は、一般に各社の商標または登録商標です。

生成AIを用いてアプリケーション開発プロセスを変革しよう(4) AI活用手法編