Item type |
Journal(1) |
公開日 |
2018-04-15 |
タイトル |
|
|
タイトル |
多粒度コードクローンの検出と評価 |
タイトル |
|
|
言語 |
en |
|
タイトル |
Detection and Evaluation of Multi-grained Code Clones |
言語 |
|
|
言語 |
jpn |
キーワード |
|
|
主題Scheme |
Other |
|
主題 |
[特集:ソフトウェア工学(特選論文)] コードクローン,ソースコード解析,大規模実験 |
資源タイプ |
|
|
資源タイプ識別子 |
http://purl.org/coar/resource_type/c_6501 |
|
資源タイプ |
journal article |
著者所属 |
|
|
|
大阪大学大学院情報科学研究科コンピュータサイエンス専攻 |
著者所属 |
|
|
|
大阪大学大学院情報科学研究科コンピュータサイエンス専攻 |
著者所属 |
|
|
|
大阪大学大学院情報科学研究科コンピュータサイエンス専攻 |
著者所属(英) |
|
|
|
en |
|
|
Graduate School of Information Science and Technology, Osaka University |
著者所属(英) |
|
|
|
en |
|
|
Graduate School of Information Science and Technology, Osaka University |
著者所属(英) |
|
|
|
en |
|
|
Graduate School of Information Science and Technology, Osaka University |
著者名 |
幸, 佑亮
肥後, 芳樹
楠本, 真二
|
著者名(英) |
Yusuke, Yuki
Yoshiki, Higo
Shinji, Kusumoto
|
論文抄録 |
|
|
内容記述タイプ |
Other |
|
内容記述 |
コードクローンはソフトウェアの保守性を低下させる原因の1つとされており,コードクローンがソフトウェア中にどの程度存在しているか,およびどこに存在しているかを理解することはソフトウェア保守の観点から重要である.そのため,これまでに多くのコードクローン検出手法が提案され,自動的にコードクローンを検出するツールが開発されている.既存のコードクローン検出手法は,ファイル単位やコード片単位など単一の粒度でコードクローンを検出する.一般的に,検出の粒度が粗いほど検出時間は短くなるが,検出可能なコードクローンは少なくなる.一方,検出対象の粒度が細かいほど検出可能なコードクローンは多くなるが,検出時間は長くなる.そこで本論文では,より多くのコードクローンをより短時間で検出することを目的として,粗粒度から細粒度へ段階的にコードクローンを検出する手法を提案する.段階的にコードクローンを検出する過程において,ある粒度でコードクローンとして検出されたコードをそれよりも細粒度なコードクローンの検出対象から除外することで,細粒度な検出手法と比較してより高速に検出できる.また,粗粒度な検出手法と比較してより多くのコードクローンを検出できる.提案手法をコードクローン検出ツールDecrescendoとして実装し,複数のオープンソースソフトウェアに適用した.そして,提案手法を粗粒度な検出手法および細粒度な検出手法と比較して評価を行った.実験の結果より,細粒度な(コード片単位の)検出手法と比較して,多粒度な検出手法が約10~20倍高速にコードクローンを検出できることを示した.また,粗粒度な(メソッド単位の)検出手法と比較して,多粒度な検出手法が約10~30倍のコードクローンを検出した.この検出数は細粒度な(コード片単位の)検出手法とほぼ同数であった. |
論文抄録(英) |
|
|
内容記述タイプ |
Other |
|
内容記述 |
The presence of code clones is one of the factors that makes software maintenance more difficult. Understanding the number of code clones and their distribution is helpful for developers. Before now, various kinds of code clone detection techniques and tools have been proposed and developed. Existing techniques detect code clones with a single granularity such as file, method, or code fragment. Coarser granularity detection requires shorter time, but it finds the smaller number of code clones. In this paper, we propose a multi-grained clone detection technique, which detects a larger number of code clones with short time. In the proposed technique, firstly coarse grained detection is performed. Detected coarse-grained code clones are eliminated from the target of finer-grained clone detections. Such a multi-grained detection is effective to shorten detection time and detects a large number of code clones as well as fine-grained detection techniques. The proposed technique has been implemented by a tool, Decrescendo. Decrescendo has been applied to a large set of open source software to compare it with existing detection techniques. As a result, the proposed technique finished detection 10~ times shorter than fine-grained techniques. The proposed technique detected code clones 10~30 times more than coarse-grained techniques. The number of code clones detected by the proposed technique is approximately the same as fine-grained techniques. |
書誌レコードID |
|
|
収録物識別子タイプ |
NCID |
|
収録物識別子 |
AN00116647 |
書誌情報 |
情報処理学会論文誌
巻 59,
号 4,
p. 1192-1202,
発行日 2018-04-15
|
ISSN |
|
|
収録物識別子タイプ |
ISSN |
|
収録物識別子 |
1882-7764 |