2023 Fiscal Year Annual Research Report
Project/Area Number |
21K11839
|
Research Institution | Ryukoku University |
Principal Investigator |
山本 哲男 龍谷大学, 先端理工学部, 准教授 (40388129)
|
Project Period (FY) |
2021-04-01 – 2024-03-31
|
Keywords | ソースコード / コード補完 / 不具合予測 |
Outline of Annual Research Achievements |
ソフトウェア開発においてプログラミング工程は開発者の知識が問われる作業である。あるプログラミング言語でソフトウェアを開発する際に、その言語の文法などを知っている必要がある。さらに、その文法に従い要求通りのソースコードを記述する必要がある。しかし、要求通りのソースコードを実現するためには、複数の方法があるため、正解を導き出すことは難しい。また、プログラミング工程では、開発者自身の間違った思い込みや知識不足により、ソースコード中に欠陥を埋め込む可能性が大きい。知識を補うためにソースコードの推薦や補完などの機能を備えた統合開発環境が存在するが、部分的な補完に留まっており、開発全体の作業を補うには至っていない。本研究では、単純なコード補完にとどまらず、ソースコード全体に広げて補完する仕組みを提案する。 まずは,単純なコード補完について実施した。本研究ではメソッド呼び出し文の順序を用いてAPIの推薦に限定した手法を提案する。既存のソースコードからメソッド呼び出し文を抽出し、メソッド呼び出し文の並びを作成する。これを深層学習モデルの1つであるMasked Language Modelに学習させ、ある指定した場所に適切なメソッド呼び出し文を予測し開発者に候補を提示する。 さらに、ソフトウェアの品質を確保するために不具合の含まれる可能性の高いソースコードを予測する手法を提案した。そのための手法として、深層学習を用いてソースコード内に含まれる不具合を予測した。本研究では、実験のためGitリポジトリのオープンソースソフトウェアからソースコード片を収集し,それらに対して深層学習を用いて不具合が含まれるか否かを予測した。事前学習ありのモデルはソースコード片の不具合予測において有効であること、事前学習に使用されたプログラミング言語のソースコード片においても有効であることを示した。
|