[学士論文] 抽象構文木構造に基づく変更チャンク間関係の学習による複合コミットの分割
- 02 /
-
01 2020
小林研B4の眞田さんが学士特別課題研究論文(旧学士論文)を提出しました.
題目:抽象構文木構造に基づく変更チャンク間関係の学習による複合コミットの分割
内容梗概:
ソフトウェアは継続的な修正や機能追加によって進化する.チームの共同開発における変更管理のために,ソフトウェアの進化は,ソースコード変更の履歴として版管理システムによって保存される.近年では,これらの変更履歴,すなわちコミットを解析することにより,バグ予測や変更漏れの通知などといった支援手法が多く提案されている.
これらの研究において,例えばバグ修正とリファクタリングが同時に行われたコミットのように,複数のタスクを含んだコミット,すなわち複合コミットは開発に悪影響を与える存在である.コミットのレビューを行う時やソースコードを過去のパージョンに戻したい時などに,複合コミットが存在していると,見るつもりではなかった或いは戻すつもりではなかった変更までもが同時に現れるため,問題を複雑化させてしまう.
この問題に対処する為に,自動で複合コミットを分割する様々な研究が行われてきたが,いずれも,ヒューリスティックな特徴量や依存関係に基づいた手法がほとんどであり,複雑な特徴を認識しきれない可能性がある.機能追加,バグ修正,リファクタリングなど,コミットの意図は様々であり,含まれる変更の特徴はその意図ごとに異なる.様々な意図が含まれたコミットにおいても,変更部分ごとの意図を認識,分類できるような手法が求められる.
本研究では,ヒューリスティックな方法ではなく,ニューラルネットワークを用いた学習モデルにより,複雑な特徴を持つ変更チャン変更チャンク同士の距離を計算する手法を提案する.
本手法を評価するために, 先行研究と同様の手法で実験を行なった.実験の結果として,分離すべき変更チャンクの組み合わせなど一部の特徴量については学習できたが,結合すべき変更チャンクの判定精度が低いなどのように,コミット分割するために十分な特徴量の学習には至れなかった.また,変更されたファイル情報および追加か削除かという情報に基づいてモデルを別々に学習させると,精度が向上することがわかった.