研究課題/領域番号 |
18H04097
|
研究機関 | 九州大学 |
研究代表者 |
鵜林 尚靖 九州大学, システム情報科学研究院, 教授 (80372762)
|
研究分担者 |
趙 建軍 九州大学, システム情報科学研究院, 教授 (20299580)
亀井 靖高 九州大学, システム情報科学研究院, 准教授 (10610222)
佐藤 亮介 九州大学, システム情報科学研究院, 助教 (10804677)
|
研究期間 (年度) |
2018-04-01 – 2022-03-31
|
キーワード | 人工知能 / 群衆知 / 自動バグ修正 / デバッグ / 深層学習 |
研究実績の概要 |
ソフトウェア工学における重要研究課題の一つに、人工知能に基づいたソフトウェア開発の自動化がある。その中でも自動バグ修正は近年最も注目されている研究分野である。一方、現状の自動バグ修正技術は発展途上にあり、決定打となる手法はまだ確立されていない。現時点では様々なアプローチから可能性を探る必要がある。そのため、本年度も昨年度に引き続き、広くテーマを設定し研究に取り組んだ。
1) 群衆知ベースの自動バグ修正機構: 昨年度までにOSSリポジトリからバグ混入時コードとバグ修正後コードの差分を抽出し、Q&A形式の群衆知(バグ修正ノウハウ)に変換する仕組みを開発したが、本年度は、深層学習を用いて、群衆知から自動バグ修正モデルを生成すると共にその初期評価を実施した。 2) テンプレートベースの自動バグ修正機構: 群衆知ベースとは異なるアプローチとしてテンプレートベースの自動バグ修正ツールを開発することにした。対象言語はJavaで、現在、試作版が完成している。このツールを利用し、静的解析ツールエラーの自動修正、フォールトローカライゼーションのアルゴリズム改善などに取り組んだ。 3) ニューラルネットワークモデルに対する自動バグ修正機構: ニューラルネットワークモデルは様々なシステムに取り入れられているが、多くのモデルは誤認識を起こすというバグを含んでおり、特に敵対的サンプルと呼ばれるノイズをもつデータに対して誤認識しやすいことが判明している。本年度は、敵対的サンプルに対して自動的にモデルを修正する(バグを修正する)方式を考案すると共に初期的な評価を行った。 4) 実証評価: 自動バグ修正ツールがプログラミング教育の現場や企業の開発現場でどの程度有効かについて、初期的な実証評価を行った。前者については九州大学におけるプログラミング演習の実データを用いて分析した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
本研究では特に「群衆知ベースの自動バグ修正機構」の開発に主軸を置いており、これについては研究実績の概要で示したように順調に研究が進んでいる。一方、自動バグ修正技術の可能性を探索・開拓するため、必ずしも「群衆知」に捉われずに研究範囲を広げている。その代表が「ニューラルネットワークモデルに対する自動バグ修正機構」である。従来、ニューラルネットワークモデルに対する自動バグ修正は難しい、あるいは出来ないと言われていたが、我々はこの研究にも取り組むことにした。初期的な研究成果を、2019年日本ソフトウェア科学会大会で発表し、学生奨励賞を受賞した(学生が第一著者)。現在、国際会議への論文投稿に向けて準備を進めている。
|
今後の研究の推進方策 |
本年度に引き続き、自動バグ修正技術全般について幅広く研究して行く予定である。特に、「ニューラルネットワークモデルに対する自動バグ修正機構」については、それが実現できた場合のインパクトが非常に大きい。
|