• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2021 Fiscal Year Research-status Report

Supporting program change understanding based on source code edit history

Research Project

Project/Area Number 20K11762
Research InstitutionRitsumeikan University

Principal Investigator

大森 隆行  立命館大学, 情報理工学部, 准教授 (90532903)

Project Period (FY) 2020-04-01 – 2023-03-31
Keywords操作履歴グラフ / ソフトウェア進化 / プログラム変更理解 / 視覚化 / 統合開発環境 / 細粒度変更 / プログラム理解 / ソフトウェア開発支援
Outline of Annual Research Achievements

2022年度は、統合開発環境上で開発者が行ったソースコード編集操作の履歴を活用した操作履歴グラフの実装を中心に進めた。これに基づき、操作パターン(特にリファクタリング)の検出を試みた。
【操作履歴グラフの実装とリファクタリング検出】操作履歴グラフOHG (Operation History Graph) を、構文木 (AST) 全体の情報を保持できるように拡張したfOHG (Full-version OHG) についての研究を進めた。fOHGによって、OHGでは表現できなかったメソッド内部の編集を表現可能となった。また、fOHGでは、将来の拡張のためにノードに属性を追加する仕組みを導入した。fOHGにより、開発中に適用されたリファクタリング操作に関して、どこにどのような編集が行われたのかを漏れなく理解することができるようになった。fOHGを用いたリファクタリング検出の評価実験により、Rename、Move、Extract等の代表的なリファクタリングに関して、正確な検出が可能であることを確認した。特に、自動リファクタリング適用の検出に関しては、既存の編集履歴に基づく手法よりも多くの種類のリファクタリングを検出可能であることを確認した。
【編集履歴視覚化によるタスク理解支援】ソースコード編集操作履歴の概略把握を支援する手法について研究を進めた。編集履歴から得られる編集対象 (クラス・メソッド) の変遷や、特定の種類の操作 (デバッグ操作・コミット操作) がいつ行われたのかを把握することを支援する視覚化ツールEMH (Edited Method Highlight) に関して、国際会議での発表を行った。

Current Status of Research Progress
Current Status of Research Progress

3: Progress in research has been slightly delayed.

Reason

2021年度終了時点でfOHGの実装の大部分が完成しており、今年度は実装の完了、リファクタリング検出実験と進めてきたが、この過程で、特定の編集パターンが入力として与えられた時にグラフを正しく生成できないことが判明したため、再実装が必要となった。fOHGでは、入力する編集操作履歴に含まれる操作の種類等によって出力するべき変更情報が変わるため、従来のプログラム変更検出手法より複雑な実装となり、実装に要する時間の見積もりを大幅に超過することとなった。
しかしながら、すでに多くのリファクタリングに関して、問題なく検出可能であることを確認済みであり、さらに、2022年度に取り組むことを予定していた柔軟な視覚化機構を備えたコード変更再生器の構築にもEMHの実装・実験を通して部分的に取り掛かっていることから、大きな遅れではないと考える。

Strategy for Future Research Activity

まず、これまでに進めてきたfOHGの実装と、自動リファクタリング検出、手動リファクタリング検出に関する評価実験を完了させる。fOHGの実装上の課題により遅れが拡大する場合には、入力となる編集履歴に制約を設け、可能な部分について先行して成果発表を行うことも考えられる。
その後、当初の予定通り、理解性の高い変更履歴要約の生成、柔軟な視覚化機構を備えたコード変更再生器の構築に取り組む。fOHGを用いることで、プログラム変更の過程で各構文要素がどのように変化してきたのかを容易に把握することができるようになるため、様々な変更履歴理解の目的に応じたクエリを生成し、理解支援する手法を考えている。

Causes of Carryover

当初予定より論文投稿が遅れたこと、新型コロナウイルス感染症の影響により会議参加費用(旅費)が不要となったため、次年度使用額が生じた。
国際会議への参加、業績発表を増やすことで使用する予定である。

  • Research Products

    (2 results)

All 2021

All Presentation (2 results) (of which Int'l Joint Research: 1 results)

  • [Presentation] Supporting Software Development Task Understanding by Visualizing Operation History2021

    • Author(s)
      Omori Takayuki, Ohnishi Atsushi
    • Organizer
      Proceedings of the 18th IEEE/ACIS International Virtual Conference on Software Engineering, Management and Applications
    • Int'l Joint Research
  • [Presentation] リファクタリング検出のための拡張操作履歴グラフ2021

    • Author(s)
      大森隆行、大西淳
    • Organizer
      ソフトウェア工学の基礎XXVIII 日本ソフトウェア科学会FOSE2021

URL: 

Published: 2022-12-28  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi