2020 Fiscal Year Annual Research Report
Fluid programming style optimization technology
Project/Area Number |
20J15163
|
Research Institution | Nara Institute of Science and Technology |
Principal Investigator |
上田 裕己 奈良先端科学技術大学院大学, 先端科学技術研究科, 特別研究員(DC2)
|
Project Period (FY) |
2020-04-24 – 2022-03-31
|
Keywords | ソフトウェア工学 / プログラミング作法 / プログラム解析 |
Outline of Annual Research Achievements |
本研究はソフトウェア開発の中で変化するプログラミング作法を開発組織や技術に合わせて継続的に最適化する技術を提案することが目的である.
初年度は「開発者がドキュメントで明示し,自動化しているプログラミング作法の最適化」および「開発者がドキュメントで明示していないプログラミング作法の発見」のそれぞれを実現するシステム提案し,評価した. まず,ソースコードの内容に基づき既に開発者が明示し,自動検証を実現しているプログラミング作法について,事前分析として開発者が明示したプログラミング作法と実際に開発者が守っているプログラミング作法の差異を調査し,開発者が行う修正のうち13%がプログラミング作法によって自動検出可能であるにも関わらず明示されていないことを確認した.この結果は国内論文誌コンピュータソフトウェアに採択されている. この結果に基づき,開発者が明示した誤ったプログラミング作法を最適化するシステム「LinterMaintainer」を提案した.本システムを利用することにより開発者が手作業で設定したプログラミング作法に含まれる誤検出のうち47%を削減可能であることを確認した.
次に,ソフトウェアの開発履歴を用いて開発者が明示していないプログラミング作法を抽出し,ソースコードの不具合を指摘,自動修正するシステム「DevReplay」を開発した.システムの有用性を測るため,公開されているバグデータセットを用いて修正可能な不具合の数を比較した結果,既存ツールでは5-18%の不具合しか修正できなかった問題を22%修正可能であることを確認した.この結果は現在,国際論文誌であるScience of Computer Programmingとして論文を執筆中である.
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
初年度では関連研究として,本研究の提案手法よりも高精度かつ可用性の高い手法が提案された.そのため本研究の方針を変更し,これまでの開発履歴からプログラミング作法の自動生成を行う手法から,既存のプログラミング作法に基づいたプログラム静的解析ツールの精度を改善する手法に切り替えた.具体的にはソースコードに対して静的解析ツールを実行し,遵守されているプログラミング作法を検出・推薦する.本手法に関しては進捗があった.そのため当初予定より進捗がやや遅れているとした.
|
Strategy for Future Research Activity |
進捗状況でも述べたとおり,本研究の手法では既存手法ほどの精度を確保することが困難である.そこで,システムとしての可用性の向上を目指し,軽量な正規表現を用いたプログラミング作法の抽出を行う.また,現在の研究成果ではJavaScriptのみを対象に提案手法の評価を実施している.今後の課題として,提案手法の一般性を確保するために複数のプログラミング言語およびプロジェクトにおいて提案手法の評価を実施する.
|