Domestic Journal Peer-reviewed

変更履歴解析に基づくリファクタリング検出技術の調査

A Survey of Refactoring Detection Techniques Based on Change History Analysis

崔 恩瀞, 藤原 賢二, 吉田 則裕, 林 晋平

Eunjong Choi, Kenji Fujiwara, Norihiro Yoshida, Shinpei Hayashi

コンピュータソフトウェア, vol. 32, no. 1, pp. 47–59, February 2015.

Abstract

リファクタリングとは,ソフトウェアの外部的振る舞いを変化させることなく,内部の構造を改善するプロセスを指す.研究者・実務者ともに,開発プロジェクトにおいて過去に実施されたリファクタリングを知りたいという要求がある.そこで,リファクタリングの実施を自動的に検出する手法(リファクタリング検出手法)が数多く提案されている.これらの手法は,多様な国際会議や論文誌において発表されており,研究者や実務者にとって研究成果を概観することは容易ではない.本稿では,リファクタリング検出手法の中でも,盛んに研究が行われている成果物の変更履歴解析に基づく手法を中心に紹介を行う.まず,本稿におけるリファクタリング検出の定義および分類について述べる.その後,成果物の変更履歴解析に基づく手法を紹介し,今後行われる研究の方向性について考察を行う.

Abstract (English)

Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. Not only researchers but also practitioners need to know past instances of refactoring performed in a software development project. So far, a number of techniques have been proposed on the automatic detection of refactoring instances. Those techniques have been presented in various international conferences and journals, and it is difficult for researchers and practitioners to grasp the current status of studies on refactoring detection techniques. In this survey paper, we introduce refactoring detection techniques, especially in techniques based on change history analysis. At first, we give the definition and the categorization of refactoring detection in this paper, and then introduce refactoring detection techniques based on change history analysis. Finally, we discuss possible future research directions on refactoring detection.

BibTeX

@article{choi-jssst201502,
    author = {崔 恩瀞 and 藤原 賢二 and 吉田 則裕 and 林 晋平},
    title = {変更履歴解析に基づくリファクタリング検出技術の調査},
    journal = {コンピュータソフトウェア},
    volume = 32,
    number = 1,
    pages = {47--59},
    doi = {10.11309/jssst.32.1_47},
    year = 2015,
}
Type
Domestic Journal
Published
February 2015
Volume / Pages
vol. 32, no. 1, pp. 47–59
DOI
10.11309/jssst.32.1_47