TOP
|
特許
|
意匠
|
商標
特許ウォッチ
Twitter
他の特許を見る
10個以上の画像は省略されています。
公開番号
2025097364
公報種別
公開特許公報(A)
公開日
2025-07-01
出願番号
2023213515
出願日
2023-12-19
発明の名称
計算機システム及びソースコードの不具合の修正支援方法
出願人
株式会社日立製作所
代理人
藤央弁理士法人
主分類
G06F
8/70 20180101AFI20250624BHJP(計算;計数)
要約
【課題】トークン数の上限を考慮しつつ、生成AIを用いてソースコードのバグを高精度に修正する。
【解決手段】計算機システムは、プログラムを構成する複数のソースコードを格納するデータベース及びテキスト生成システムと接続し、不具合が疑われるターゲットソースコード及び不具合位置を特定し、複数のソースコードからコード片を抽出し、不具合位置に含まれるコード片であるターゲットコード片を特定し、ターゲットコード片と、コード片であって、不具合を修正するために用いることができる修正素材コード片との関係性を解析し、解析の結果に基づいてプロンプトに含める修正素材コード片の選択順を規定する優先度を算出し、優先度に基づいて、トークン数の上限値の範囲内で修正素材コード片を選択し、選択された修正素材コード片を含むプロンプトを生成し、テキスト生成システムに送信する。
【選択図】図4
特許請求の範囲
【請求項1】
ソースコードの不具合の修正を支援する計算機システムであって、
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を備え、
プログラムを構成する複数のソースコードを格納するデータベース及び大規模言語モデルを用いてテキストを生成するテキスト生成システムとアクセス可能に接続し、
前記テキスト生成システムは、前記ソースコードの不具合を修正するためのパッチの生成を指示するテキストであるプロンプトの入力を受け付け可能であって、
前記プロンプトには、含めることが可能な情報量であるトークン数の上限値があり、
前記プロセッサは、
不具合が疑われるターゲットソースコード及び前記ターゲットソースコードの不具合位置を特定し、前記記憶装置に、前記ターゲットソースコード及び前記不具合位置の情報を記録し、
前記複数のソースコードからコード片を抽出し、前記記憶装置に前記コード片の情報を記録し、
前記不具合位置に含まれる前記コード片であるターゲットコード片を特定し、
前記ターゲットコード片と、前記コード片であって、不具合を修正するために用いることができる修正素材コード片との関係性を解析し、前記解析の結果に基づいて前記プロンプトに含める前記修正素材コード片の選択順を規定する優先度を算出し、
前記優先度に基づいて、前記トークン数の上限値の範囲内で前記修正素材コード片を選択し、
選択された前記修正素材コード片を含む前記プロンプトを生成し、前記テキスト生成システムに送信することを特徴とする計算機システム。
続きを表示(約 2,700 文字)
【請求項2】
請求項1に記載の計算機システムであって、
前記プロセッサは、前記ターゲットコード片及び前記修正素材コード片の処理の関係性、並びに、前記ターゲットコード片及び前記修正素材コード片の位置の関係性の少なくともいずれかを解析することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
前記プロセッサは、前記プログラムのテストの結果と、前記ターゲットコード片と、前記不具合位置周辺の前記ソースコードの一部と、選択された前記修正素材コード片と、を含む前記プロンプトを生成することを特徴とする計算機システム。
【請求項4】
請求項3に記載の計算機システムであって、
前記プロセッサは、
前記テキスト生成システムが生成した前記パッチを取得し、
前記パッチを適用した前記ターゲットソースコードから構成される前記プログラムのテストを実行し、
前記テストの結果が失敗である場合、前記プロンプトに含めた前記修正素材コード片を選択対象から除外して、再度、前記修正素材コード片を選択し、
前記プログラムのテストの結果と、前記ターゲットコード片と、前記不具合位置周辺の前記ソースコードの一部と、選択された前記修正素材コード片と、前回の前記プロンプトに含めた前記修正素材コード片と、を含む前記プロンプトを生成することを特徴とする計算機システム。
【請求項5】
請求項4に記載の計算機システムであって、
前記ターゲットソースコードから構成される前記プログラムを使用するシステムと接続し、
前記テストの結果が成功である場合、前記プロセッサは、前記システムに、前記パッチが適用された前記ターゲットソースコードから構成される前記プログラムをアップロードすることを特徴とする計算機システム。
【請求項6】
計算機システムが実行する、ソースコードの不具合の修正支援方法であって、
前記計算機システムは、
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を含み、
プログラムを構成する複数のソースコードを格納するデータベース及び大規模言語モデルを用いてテキストを生成するテキスト生成システムとアクセス可能に接続し、
前記テキスト生成システムは、前記ソースコードの不具合を修正するためのパッチの生成を指示するテキストであるプロンプトの入力を受け付け可能であって、
前記プロンプトには、含めることが可能な情報量であるトークン数の上限値があり、
前記ソースコードの不具合の修正支援方法は、
前記プロセッサが、不具合が疑われるターゲットソースコード及び前記ターゲットソースコードの不具合位置を特定し、前記記憶装置に、前記ターゲットソースコード及び前記不具合位置の情報を記録する第1のステップと、
前記プロセッサが、前記複数のソースコードからコード片を抽出し、前記記憶装置に前記コード片の情報を記録する第2のステップと、
前記プロセッサが、前記不具合位置に含まれる前記コード片であるターゲットコード片を特定する第3のステップと、
前記プロセッサが、前記ターゲットコード片と、前記コード片であって、不具合を修正するために用いることができる修正素材コード片との関係性を解析し、前記解析の結果に基づいて前記プロンプトに含める前記修正素材コード片の選択順を規定する優先度を算出する第4のステップと、
前記プロセッサが、前記優先度に基づいて、前記トークン数の上限値の範囲内で前記修正素材コード片を選択する第5のステップと、
前記プロセッサが、選択された前記修正素材コード片を含む前記プロンプトを生成し、前記テキスト生成システムに送信する第6のステップと、を含むことを特徴とするソースコードの不具合の修正支援方法。
【請求項7】
請求項6に記載のソースコードの不具合の修正支援方法であって、
前記第4のステップは、前記プロセッサが、前記ターゲットコード片及び前記修正素材コード片の処理の関係性、並びに、前記ターゲットコード片及び前記修正素材コード片の位置の関係性の少なくともいずれかを解析するステップを含むことを特徴とするソースコードの不具合の修正支援方法。
【請求項8】
請求項7に記載のソースコードの不具合の修正支援方法であって、
前記第6のステップは、前記プロセッサが、前記プログラムのテストの結果と、前記ターゲットコード片と、前記不具合位置周辺の前記ソースコードの一部と、選択された前記修正素材コード片と、を含む前記プロンプトを生成するステップを含むことを特徴とするソースコードの不具合の修正支援方法。
【請求項9】
請求項8に記載のソースコードの不具合の修正支援方法であって、
前記プロセッサが、前記テキスト生成システムが生成した前記パッチを取得するステップと、
前記プロセッサが、前記パッチを適用した前記ターゲットソースコードから構成される前記プログラムのテストを実行するステップと、
前記テストの結果が失敗である場合、前記プロセッサが、前記プロンプトに含めた前記修正素材コード片を選択対象から除外して、再度、前記修正素材コード片を選択するステップと、
前記プロセッサが、前記プログラムのテストの結果と、前記ターゲットコード片と、前記不具合位置周辺の前記ソースコードの一部と、選択された前記修正素材コード片と、前回の前記プロンプトに含めた前記修正素材コード片と、を含む前記プロンプトを生成するステップと、を含むことを特徴とするソースコードの不具合の修正支援方法。
【請求項10】
請求項9に記載のソースコードの不具合の修正支援方法であって、
前記計算機システムは、前記ターゲットソースコードから構成される前記プログラムを使用するシステムと接続し、
前記テストの結果が成功である場合、前記プロセッサが、前記システムに、前記パッチが適用された前記ターゲットソースコードから構成される前記プログラムをアップロードするステップを含むことを特徴とするソースコードの不具合の修正支援方法。
発明の詳細な説明
【技術分野】
【0001】
本発明は、生成AIを用いたソースコードのバグ修正技術に関する。
続きを表示(約 2,400 文字)
【背景技術】
【0002】
ソフトウェア開発におけるデバック作業においてAPR(Automated Program Repair)という技術が知られている。
【0003】
近年、大規模言語モデルを搭載した生成AIを用いてプログラムの不具合(バグ)を修正する技術が登場している。当該技術はAPRより精度が高いことが報告されている。
【先行技術文献】
【非特許文献】
【0004】
K. Liu et al., “TBar: Revisiting Template-based Automated Program Repair”, ISSTA2019, 2019, pp. 31-42.
L. Gazzola et al., “Automatic Software Repair: A Survey”, IEEE Trans. Softw. Eng., vol. 45, no. 1, pp. 34-67, 2019.
Hiralal Agrawal, Joseph R.Horgan, “Dynamic Program Slicing”, ACM SIGPLAN’90, 1990
【発明の概要】
【発明が解決しようとする課題】
【0005】
生成AIは、プログラムのソースコード及び修正方針等を含むテキスト(プロンプト)を受け付け、バグを解消するためのパッチを生成する。生成AIに入力するプロンプトにはトークン(文字又は単語)の数に制限がある。そのため、ソースコードをプロンプトに含めることができない場合がある。
【0006】
非特許文献2等に記載のバグ箇所を特定する技術を用いて、バグ箇所を特定し、バグ箇所のコード片をプロンプトに含める方法が考えられる。しかし、この方法では、メソッド等、バグ箇所のコード片の修正に必要な情報が含まれないため、ソースコードを正しく修正できない可能性がある。
【0007】
本発明は、生成AIを用いてソースコードのバグを修正するパッチを生成する場合に、トークン数の上限を考慮しつつ、高い精度でバグを修正可能なシステム及び方法を提供する。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ソースコードの不具合の修正を支援する計算機システムであって、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を備え、プログラムを構成する複数のソースコードを格納するデータベース及び大規模言語モデルを用いてテキストを生成するテキスト生成システムとアクセス可能に接続し、前記テキスト生成システムは、前記ソースコードの不具合を修正するためのパッチの生成を指示するテキストであるプロンプトの入力を受け付け可能であって、前記プロンプトには、含めることが可能な情報量であるトークン数の上限値があり、前記プロセッサは、不具合が疑われるターゲットソースコード及び前記ターゲットソースコードの不具合位置を特定し、前記記憶装置に、前記ターゲットソースコード及び前記不具合位置の情報を記録し、前記複数のソースコードからコード片を抽出し、前記記憶装置に前記コード片の情報を記録し、前記不具合位置に含まれる前記コード片であるターゲットコード片を特定し、前記ターゲットコード片と、前記コード片であって、不具合を修正するために用いることができる修正素材コード片との関係性を解析し、前記解析の結果に基づいて前記プロンプトに含める前記修正素材コード片の選択順を規定する優先度を算出し、前記優先度に基づいて、前記トークン数の上限値の範囲内で前記修正素材コード片を選択し、選択された前記修正素材コード片を含む前記プロンプトを生成し、前記テキスト生成システムに送信する。
【発明の効果】
【0009】
本発明によれば、テキスト生成システム(生成AI)を用いてソースコードのバグを修正するパッチを生成する場合に、トークン数の上限を考慮しつつ、高い精度でバグを修正するためのパッチを生成できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
実施例1のシステムの構成の一例を示す図である。
実施例1のバグ修正支援システムを構成する計算機のハードウェア構成の一例を示す図である。
実施例1のコード片情報のデータ構造の一例を示す図である。
実施例1のコード片情報のデータ構造の一例を示す図である。
実施例1のバグ修正支援システムが実行する処理の一例を説明するフローチャートである。
実施例1のソースコードの一例を示す図である。
実施例1のコード片抽出部が実行するコード片抽出処理の一例を説明するフローチャートである。
実施例1のコード片抽出部が生成する修正素材コード片リストのデータ構造の一例を示す図である。
実施例1のプロンプト生成部が実行するプロンプト生成処理の一例を説明するフローチャートである。
実施例1のバグ修正支援システムが管理するプロンプトテンプレートの一例を示す図である。
実施例1のプロンプト生成部が生成するプロンプトの一例を示す図である。
実施例1のプロンプト生成部が生成するプロンプトの一例を示す図である。
【発明を実施するための形態】
(【0011】以降は省略されています)
この特許をJ-PlatPatで参照する
関連特許
株式会社日立製作所
電力変換装置
5日前
株式会社日立製作所
電力変換装置
10日前
株式会社日立製作所
候補生成システム
10日前
株式会社日立製作所
制御方法、演算装置
10日前
株式会社日立製作所
製造工程管理システム
11日前
株式会社日立製作所
調速機及びエレベーター
4日前
株式会社日立製作所
垂直離着陸機用エアポート
12日前
株式会社日立製作所
経路探索方法及び配送計画装置
11日前
株式会社日立製作所
振動解析装置および振動解析方法
3日前
株式会社日立製作所
埋設物検出装置、埋設物検出方法
12日前
株式会社日立製作所
プリント配線基板、電力変換装置
5日前
株式会社日立製作所
計測装置及びエレベーターシステム
10日前
株式会社日立製作所
習熟度を判定するシステム及び方法
10日前
株式会社日立製作所
状態診断システム及び状態診断方法
10日前
株式会社日立製作所
脱レール検出装置及びエレベーター
3日前
株式会社日立製作所
多重系制御システム及び周期管理方法
4日前
株式会社日立製作所
劣化要因推定装置、劣化要因診断方法
4日前
株式会社日立製作所
飛行体制御装置および飛行体制御方法
11日前
株式会社日立製作所
計算機システム及び教育資料の生成方法
6日前
株式会社日立製作所
材料検索・配合設計装置及び配合設計方法
11日前
株式会社日立製作所
電力変換装置及び電力変換装置の診断方法
10日前
株式会社日立製作所
支援装置、支援方法、及び支援プログラム
10日前
株式会社日立製作所
運転計画支援装置、及び運転計画支援方法
3日前
株式会社日立製作所
物体姿勢算出装置および物体姿勢算出方法
11日前
株式会社日立製作所
システム、システムが実行する方法、プログラム
10日前
株式会社日立製作所
物品をピッキングするためのシステムおよび方法
12日前
株式会社日立製作所
業務プロセス管理装置及び業務プロセス管理方法
5日前
株式会社日立製作所
業務影響範囲提示装置及び業務影響範囲提示方法
12日前
株式会社日立製作所
電力調整システム及び電力調整システムの制御方法
10日前
株式会社日立製作所
作業管理装置、作業管理システム及び作業管理方法
4日前
株式会社日立製作所
計算機システム及び制御対象システムの制御支援方法
10日前
株式会社日立製作所
容量策定支援装置、容量策定支援方法、及びプログラム
10日前
株式会社日立製作所
エレベーター制御システムおよびエレベーター制御方法
3日前
株式会社日立製作所
計算機システム及びソースコードの不具合の修正支援方法
5日前
株式会社日立製作所
情報処理装置、サーバ、及びそれらを含む情報処理システム
3日前
株式会社日立製作所
店舗販売促進装置、店舗販売システムおよび店舗販売促進方法
10日前
続きを見る
他の特許を見る