Project/Area Number |
21K11839
|
Research Category |
Grant-in-Aid for Scientific Research (C)
|
Allocation Type | Multi-year Fund |
Section | 一般 |
Review Section |
Basic Section 60050:Software-related
|
Research Institution | Ryukoku University |
Principal Investigator |
山本 哲男 龍谷大学, 先端理工学部, 准教授 (40388129)
|
Project Period (FY) |
2021-04-01 – 2024-03-31
|
Project Status |
Completed (Fiscal Year 2023)
|
Budget Amount *help |
¥4,160,000 (Direct Cost: ¥3,200,000、Indirect Cost: ¥960,000)
Fiscal Year 2023: ¥1,300,000 (Direct Cost: ¥1,000,000、Indirect Cost: ¥300,000)
Fiscal Year 2022: ¥1,820,000 (Direct Cost: ¥1,400,000、Indirect Cost: ¥420,000)
Fiscal Year 2021: ¥1,040,000 (Direct Cost: ¥800,000、Indirect Cost: ¥240,000)
|
Keywords | ソースコード / コード補完 / 不具合予測 / ソースコード推薦 / ソースコード補完 / ソースコードマイニング |
Outline of Research at the Start |
開発者が自発的に行動して開発(コーディング)を進めていくのではなく、受動的に開発を進めていく統合開発環境を提案し、提案したシステムを構築する。従来の開発者が明示的に作業を指示していく開発環境ではなく、現在の開発状況に応じて適切な行動を促す開発環境を目指す。この開発環境を実現するために、多くの質の高いテストケースとソースコードの組から知識を抽出し、統合開発環境を通じてその知識を提供することで質の高いソフトウェア開発が可能となる。この環境を利用することで、開発時の生産性を上げ、不具合の少ないソースコードを短期間で記述できる効果が期待できる。
|
Outline of Annual Research Achievements |
ソフトウェア開発においてプログラミング工程は開発者の知識が問われる作業である。あるプログラミング言語でソフトウェアを開発する際に、その言語の文法などを知っている必要がある。さらに、その文法に従い要求通りのソースコードを記述する必要がある。しかし、要求通りのソースコードを実現するためには、複数の方法があるため、正解を導き出すことは難しい。また、プログラミング工程では、開発者自身の間違った思い込みや知識不足により、ソースコード中に欠陥を埋め込む可能性が大きい。知識を補うためにソースコードの推薦や補完などの機能を備えた統合開発環境が存在するが、部分的な補完に留まっており、開発全体の作業を補うには至っていない。本研究では、単純なコード補完にとどまらず、ソースコード全体に広げて補完する仕組みを提案する。 まずは,単純なコード補完について実施した。本研究ではメソッド呼び出し文の順序を用いてAPIの推薦に限定した手法を提案する。既存のソースコードからメソッド呼び出し文を抽出し、メソッド呼び出し文の並びを作成する。これを深層学習モデルの1つであるMasked Language Modelに学習させ、ある指定した場所に適切なメソッド呼び出し文を予測し開発者に候補を提示する。 さらに、ソフトウェアの品質を確保するために不具合の含まれる可能性の高いソースコードを予測する手法を提案した。そのための手法として、深層学習を用いてソースコード内に含まれる不具合を予測した。本研究では、実験のためGitリポジトリのオープンソースソフトウェアからソースコード片を収集し,それらに対して深層学習を用いて不具合が含まれるか否かを予測した。事前学習ありのモデルはソースコード片の不具合予測において有効であること、事前学習に使用されたプログラミング言語のソースコード片においても有効であることを示した。
|
Report
(3 results)
Research Products
(4 results)