2020 Fiscal Year Research-status Report
Supporting program change understanding based on source code edit history
Project/Area Number |
20K11762
|
Research Institution | Ritsumeikan University |
Principal Investigator |
大森 隆行 立命館大学, 情報理工学部, 准教授 (90532903)
|
Project Period (FY) |
2020-04-01 – 2023-03-31
|
Keywords | 操作履歴グラフ / ソフトウェア進化 / プログラム変更理解 / 視覚化 / 統合開発環境 |
Outline of Annual Research Achievements |
本研究では、過去に行われたプログラムの変更を効率的に分析・理解するため、ソースコード編集履歴のグラフ化に関する研究を進めている。 本年度は、当初の計画通り、我々が構築してきた操作履歴グラフの実装を改善した。改善したグラフをOHG(Operation History Graph)と呼ぶ。OHGの主たる実装目的は、過去のソースコードの構文解析結果を解析せずとも得られるようにすること、および、ソースコード編集の適用前後で同一のプログラムの構成要素を識別できるようにすることである。これにより、あるプログラムの構成要素がどのように変更されてきたかを容易に追跡できるようになる。OHGを用いた評価実験を行い、ソースコード編集の適用前後で構文要素(クラス・メソッド)の追跡性を既存手法に劣らない精度で保持できること、および、一般的に普及しているコンピュータ上でも現実的な計算時間・計算機資源でグラフを構築できることを示した。これらの成果を論文誌で発表した。 現在のOHGは、メソッド内部の構文情報を保持しないため、応用が限定される。これを解消するため、すべての構文情報を保持するよう、OHGの拡張に取り組んでいる。 さらに、ソースコード編集操作履歴の概略把握を支援する手法について研究を進めた。編集履歴から得られる編集対象(クラス・メソッド)の変遷や、特定の種類の操作(デバッグ操作・コミット操作)がいつ行われたのかを把握することを支援する視覚化ツールEMH(Edited Method Highlight)を実装し、これを用いた被験者実験を行った。この実験により、特に開発作業の種類について、被験者が容易に把握できることが確認できた。EMHに関する研究成果について、国内会議、国際会議に論文を投稿した。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
拡張可能かつ要素追跡可能性の高い操作履歴グラフの実現、および、編集操作の再構成に関して、当初予定の大部分を実現した。さらに、操作履歴を視覚化することによる履歴理解支援手法についての研究を進めることができた。 OHGの現時点の実装では、グラフの拡張を、各要素の属性を追加すること、および、新しいリンクを追加することで行うことができるが、拡張した属性やリンクを容易に扱うための手段が未提供である。また、グラフ構築の前処理として編集操作の再構成を行っているが、現時点では単純な操作の併合にとどまっており、より理解容易性の高いグラフ表現に向けて検討の余地がある。なお、論文発表時点でのOHGの実装ではメソッド内部の構文情報を保持できなかったが、すでに改善版の実装の大部分が完了しており、本年度末現在、動作確認と実装改善を進めている。 一方で、本年度実現したEMHは、次年度以降に計画していた理解性の高い変更履歴要約の生成、柔軟な視覚化機構を備えた変更履歴再生器の構築の初期段階として捉えることができる。 以上より、現在までの進捗状況は、当初計画を上回るほどではないが、おおむね順調に進展していると考える。
|
Strategy for Future Research Activity |
まず、今年度進めてきた、プログラム全体の構文情報を保持可能な操作履歴グラフの実装を完了する。さらに、グラフの拡張容易性の向上、編集操作の構成の改善を行う。 その後、編集操作履歴に基づく抽象操作検出の研究を進める。履歴の理解性を高めるため、抽象操作(リファクタリング・タスク・編集パターンを想定)を検出して操作群の意味・意図を解明する。通常、1つの抽象操作は集中して行われるため、編集操作の時刻情報により、検出精度改善、新種パターン検出が可能だと考える。評価実験において、検出結果の適合率・再現率を調べ、先行研究との比較を行う。仮に高精度にならない場合、既存のコード差分を対象とした検出手法を、編集履歴を用いてコード状態数を増やした履歴に適用することで精度の向上を目指すことも考えている。
|
Causes of Carryover |
新型コロナウイルス流行による国内会議・国際会議オンライン化により、旅費が発生しなかったため。当該金額は、今後の成果発表や操作履歴記録・理解等の被験者実験に使用する。
|
Research Products
(2 results)