機械学習によるプログラミング言語文法の推定
【研究キーワード】
プログラミング言語 / ソフトウエア工学 / 機械学習 / ソフトウェア工学 / 開発環境
【研究成果の概要】
大量のプログラム例を教師なしで機械学習することである種の文法構造をモデルが獲得することができる。この技術の応用先を研究し、不適切にモジュール化されたプログラムの部分を自動的に識別する手法を開発した。プログラムを適切にモジュール化することは、誤りのない高品質なプログラムを開発するためには重要であることは良く知られている。また現代においてはプログラムがいったん完成した後も機能拡張を続けていかなければならないことも多い。そのような機能拡張を効率よくまた高品質におこなえるようにするためにプログラムの保守性を高める必要があるが、適切なモジュール化はそのためにも必須である。しかしながら現在、プログラムの適切なモジュール化はソフトウェア技術者個人の技量によるところが大きく、とくに多人数で開発する場合にはリーダ格の技術者が他の技術者が書いたプログラムを毎回確認することとし、正しくモジュール化されていない場合には修正するように促すのが一般的である。このように経験豊富な技術者が人手によって確認する現在のやり方は効率的とは言い難く、ソフトウェア技術者のチーム全体の開発効率を下げる一因となっている。本研究の成果はこのような確認を自動化することでチーム全体の開発効率を上げることが期待される。本研究では実験によって、研究成果の手法によって実際に不適切なモジュール化を発見して指摘できることを明らかにした。適切なモジュール化とは必ずしも一般的に基準が定まるものではなく、個々のソフトウェア・プロジェクトによって異なるものである。このため単純な機械学習ではうまく目的を達成できず、いわゆる few-shot 学習・分類の技術を応用しなければならない。ソフトウェア工学の分野でも few-shot 学習・分類の技術が有用であることを示したことも本研究の成果である。
【研究代表者】
【研究種目】挑戦的研究(萌芽)
【研究期間】2019-06-28 - 2023-03-31
【配分額】6,500千円 (直接経費: 5,000千円、間接経費: 1,500千円)