楠本研究室

業績一覧

ホーム業績一覧

事前構文定義を必要としないリファクタリング検出手法の提案

事前構文定義を必要としないリファクタリング検出手法の提案
電子情報通信学会技術報告, vol.122, no.432, pp.67-72 (2023)
概要: リファクタリングとは,ソフトウェアの外部的な振る舞いを保ちつつ内部構造を変更する作業である.リファクタリングはソフトウェアの保守性を向上させるための重要な技術であり,これまでに様々な研究が行われている.その中の一つにリファクタリング検出がある.リファクタリング検出とは,異なる二つのバージョンのソースコードを入力として,バージョン間の差分情報からリファクタリングを検出する技術である.リファクタリング検出はソフトウェアの改善に関する実証研究等でも活用されている.しかし,これまでのリファクタリング検出の手法では,あらかじめ定義した構文パターンと一致するリファクタリングしか検出できないため,定義されていないリファクタリングの検出は不可能であった.そこで,本研究では事前定義を必要としないリファクタリング検出の手法を提案する.具体的には,二つのバージョンのソースコードそれぞれからテストを自動生成し,生成テストをもう片方のソースコードに対して実行する.どちらのテストも通過した場合はリファクタリングが行われたとして検出する.本手法を適用することで,事前に構文定義できないリファクタリングの検出において,従来手法を大幅に上回る80%以上の再現率を発揮した.また,リファクタリングが検出されたコミットのメッセージを解析し,リファクタリングの実施を示唆する新たな単語のパターンとして,``use``,``stream``,``reimplement``を発見した.
@inproceedings{古藤寛大2023a,
  author = {古藤 寛大 and 肥後 芳樹 and 楠本 真二},
  title = {事前構文定義を必要としないリファクタリング検出手法の提案},
  booktitle = {電子情報通信学会技術報告},
  volume = {122},
  number = {432},
  pages = {67--72},
  year = {2023},
  month = {mar},
  url = {https://ken.ieice.org/ken/paper/202303144CSj/}
}