[修士論文] 作業コンテキストの類似性に基づく変更支援手法

小林グループ(名古屋大学)M2の丸岡さんが修士論文の発表を行いました.

論文題目:作業コンテキストの類似性に基づく変更支援手法
論文概要:

■背景
ソフトウェアシステムの大規模化に伴い,開発者が一つのプロジェクト内で管理しなければならないソースコードの数は爆発的に増えた.それら全てのソースコード間の関係を開発者が把握することは困難である.開発者の生産性を高め,変更漏れによるバグの混入を防ぐために,開発者の変更支援手法が求められている.この問題に対し,開発者が実際に行った開発履歴を用いた手法が提案されている.過去に頻繁に起こった事象は今後も起こりやすいという考えのもと,実際に起こった開発履歴を用いることで,変更伝搬を引き起こすような依存関係を取得することが可能である.しかし多くの手法で用いられる履歴はバージョン管理システムのコミット単位のものであり,一度のコミット内でどの時刻にどれだけの間,変更が行われたかという情報は記録されない.また,変更された成果物のみに着目しており,参照された成果物を考慮していないため,変更に至るコンテキストの情報が欠落してしまっている.変更が行われた際に開発者がどの成果物を参照していたかという情報は,変更の内容に強く関係するものであると考える.

■先行研究
先行研究では開発者が行った成果物への変更に対する一つ前の変更情報と変更間の参照情報を変更のコンテキスト情報として用いた変更支援手法を提案した.しかし,先行研究の問題点として,タスク切り替えの可能性を考慮する必要があること,変更の半順序関係を考慮することが必要であることが分かった.

■提案手法
本研究では,先行研究の問題を解消するための三つの提案を行う.一つ目は,変更の波及と見なす範囲を決定する事である.先行研究では変更の波及範囲を次の変更のみに限定していたが,変更には半順序関係が発生すると考え,変更の影響度合いを時間的局所性に基いて計算する.二つ目は,変更間の結合強度を利用する事である.タスクが独立であるという仮定に基づくと,異なるタスクをまたぐ変更シーケンスにおける変更間の関連度を低く設定する必要がある.そこで,変更間の結合強度という概念を新たに導入し,時間的局所性が低い変更間には弱い結合関係があると見なす.三つ目は,影響があると見なす過去の変更の範囲を時間的局所性で決定する事である.過去の変更に対しても半順序関係が発生すると考え,変更コンテキスト情報として考慮する前変更の範囲を拡大する.

■評価
提案手法の有用性を確認するために,提案手法の一部を実装し適用実験を行った.学生15名分のログデータを用いて交差検定した結果,既存手法では時間的局所性を考慮しないために支援できない変更があること,提案手法の三つの手法により効果的に支援が行えることを確認した.