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で参照する

関連特許

株式会社日立製作所
回転電機
14日前
株式会社日立製作所
制御基板
1日前
株式会社日立製作所
電力変換器
1か月前
株式会社日立製作所
電力変換装置
1か月前
株式会社日立製作所
電力変換装置
1か月前
株式会社日立製作所
エレベーター
8日前
株式会社日立製作所
コントローラー
22日前
株式会社日立製作所
動作指令生成装置
1か月前
株式会社日立製作所
候補生成システム
1か月前
株式会社日立製作所
制御方法、演算装置
1か月前
株式会社日立製作所
回転子および回転電機
24日前
株式会社日立製作所
対策計画作成支援装置
1か月前
株式会社日立製作所
製造工程管理システム
1か月前
株式会社日立製作所
調速機及びエレベーター
29日前
株式会社日立製作所
巻上機及びエレベーター
1日前
株式会社日立製作所
垂直離着陸機用エアポート
1か月前
株式会社日立製作所
分析システム及び分析方法
8日前
株式会社日立製作所
乗りかご及びエレベーター
1か月前
株式会社日立製作所
認可システム及び認可方法
1か月前
株式会社日立製作所
エレベーター及び保護カバー
6日前
株式会社日立製作所
現新比較テスト支援システム
今日
株式会社日立製作所
釣合いおもり及びエレベーター
2日前
株式会社日立製作所
情報提供装置及び情報提供方法
24日前
株式会社日立製作所
接点浄化装置及び風力発電装置
今日
株式会社日立製作所
情報処理装置及び情報処理方法
1か月前
株式会社日立製作所
めっき装置及びめっき形成方法
14日前
株式会社日立製作所
知識抽出装置及び知識抽出方法
1か月前
株式会社日立製作所
経路探索方法及び配送計画装置
1か月前
株式会社日立製作所
生産計画立案支援装置及び方法
24日前
株式会社日立製作所
電力融通システム、電力システム
今日
株式会社日立製作所
埋設物検出装置、埋設物検出方法
1か月前
株式会社日立製作所
振動解析装置および振動解析方法
28日前
株式会社日立製作所
営業支援装置、及び営業支援方法
1か月前
株式会社日立製作所
補修指示装置および補修指示方法
7日前
株式会社日立製作所
プリント配線基板、電力変換装置
1か月前
株式会社日立製作所
計画分析方法及び計画分析システム
1か月前
続きを見る