2016 Fiscal Year Annual Research Report
検索をベースとした大規模ソフトウェアの変更解析に関する研究
Project/Area Number |
26280025
|
Research Institution | National Institute of Advanced Industrial Science and Technology |
Principal Investigator |
森 彰 国立研究開発法人産業技術総合研究所, 情報技術研究部門, 研究グループ長 (30311682)
|
Co-Investigator(Kenkyū-buntansha) |
橋本 政朋 国立研究開発法人理化学研究所, 計算科学研究機構, 研究員 (60357770)
|
Project Period (FY) |
2014-04-01 – 2018-03-31
|
Keywords | 差分デバッギング / 木差分計算 / ソースコード変更解析 / 構文解析木 |
Outline of Annual Research Achievements |
本年度は、木差分計算により得られるバージョンごとの構文解析木の間の木編集系列を、違いに独立なグループに分割した上で二分探索を行うことにより、回帰バグの原因となったソースコード編集箇所を、ピンポイントで同定する差分デバッギングの開発に取り組んだ。分割された変更グループを選択的に適用して、仮想的な中間バージョンを構成して実行し、問題となっているテストの結果を確認していくことが必要になるが、オブジェクト指向プログラミング言語であるJavaを対象としたため、変更の依存関係を考慮したグループ化を行わなければ、生成された中間バージョンがビルド・実行可能なものにならないという状況が頻発した。この問題を回避するために、オブジェクト指向言語に特有のさまざまな依存性を考慮した分割ルールを定義した。およそ100個に登るこうしたルールを適用することで、高い頻度でビルド・実行可能な中間バージョンを生成できるようになり、結果として、ソースコード行数10万行を超えるような実用規模のプロジェクトに対して、回帰バグの発生箇所を正確に同定できることがわかった。並行して、本技術の他言語への応用を試みる過程で、ハードウェア記述言語HDLの構文解析器を開発し、その類似コード検知への応用を試みた。また、構文解析木をベースとした畳み込みニューラルネットによる学習アルゴリズムの調査を行い、教師なし学習によって、構文解析木のノードにある記号のベクトル表現を自動抽出する技術の再現実験を行なった。
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
差分デバッギング技術の研究については、変更の依存関係を考慮した木編集系列のグループ化を可能にするルールの定義に時間を要したため、成果をとりまとめて学会等へ投稿する時間がなくなった。同様に、自動バグ予測技術の研究についても、既存研究の差再現実験に止まっている。これらについては、期間を延長して次年度に取り組むこととした。
|
Strategy for Future Research Activity |
差分デバッギング技術については、他の複数の事例について実験を行い、開発ツールの性能向上を図るとともに、実験結果の評価をまとめて国際会議への投稿を行う。自動バグ予測や変更予測の技術については、木構造を対象にした機械学習技術の応用をもとに研究を進める。
|
Causes of Carryover |
技術開発に時間を要し、年度内に成果をとりまとめて発表することができなかったため、予定していた旅費を使用することができなかったた。
|
Expenditure Plan for Carryover Budget |
成果をとりまとめて、国内の研究会(2件)と国外の国際会議(2件)で発表するための旅費として使用する。
|
-
[Presentation] Detecting and Analyzing Code Clones in HDL2017
Author(s)
Kyohei Uemura, Akira Mori, Kenji Fujiwara, Eunjong Choi, Hajimu Iida
Organizer
2017 IEEE 11th International Workshop on Software Clones (IWSC)
Place of Presentation
アルペン・アドリア大学、クラーゲンフルト、オーストリア
Year and Date
2017-02-21 – 2017-02-21
Int'l Joint Research