SlideShare a Scribd company logo
1 of 78
Download to read offline
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

Active Refinement of Clone
Anomaly Reports
MD 輪講
修士課程 1 年 楊 嘉晨
大阪大学大学院コンピュータサイエンス専攻楠本研究室

2012 年 7 月 4 日(火)

2012 年 7 月 4 日(火)

1/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い

出典 Publication

実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

2/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

出典
Publication

Active Refinement of Clone Anomaly Reports
• ICSE 2012
• Similarity and Classification
Lucia, David Lo, Lingxiao Jiang, and Aditya Budi
• Singapore Management University

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

3/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い

背景 Introduction

実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

4/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

5/40

背景
Introduction

コードクローンはソフトウェア保守に対して悪い影響

?
.

不具合 (anomaly)があるコードクローンに バグを含
む可能性が高い
バグが含む不具合があるクローンを

正解 (True Positive)
.
バグがない不具合があるクローンを

誤検出 (False Positive)
.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

5/40

背景
Introduction

コードクローンはソフトウェア保守に対して悪い影響

?
.

不具合 (anomaly)があるコードクローンに バグを含
む可能性が高い
バグが含む不具合があるクローンを

正解 (True Positive)
.
バグがない不具合があるクローンを

誤検出 (False Positive)
.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

5/40

背景
Introduction

コードクローンはソフトウェア保守に対して悪い影響

?
.

不具合 (anomaly)があるコードクローンに バグを含
む可能性が高い
バグが含む不具合があるクローンを

正解 (True Positive)
.
バグがない不具合があるクローンを

誤検出 (False Positive)
.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

5/40

背景
Introduction

コードクローンはソフトウェア保守に対して悪い影響

?
.

不具合 (anomaly)があるコードクローンに バグを含
む可能性が高い
バグが含む不具合があるクローンを

正解 (True Positive)
.
バグがない不具合があるクローンを

誤検出 (False Positive)
.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

既存研究:クローンに基づく不具合検出
Related Researches: Clone-based Anomaly Detection

クローン間の識別子 (Identifier) の不一致
(Juergens et al., 2009)

E. Juergens, F. Deissenboeck, B. Hummel, and S. Wagner, ``Do code clones matter?'' in Proceedings of the 31st
International Conference on Software Engineering. IEEE Computer Society, 2009, pp. 485--495.

クローン周りのコード片の差異(Jiang et al., 2007a)
L. Jiang, Z. Su, and E. Chiu, ``Context-based detection of clone-related bugs,'' in ESEC/FSE, vol. 2007, 2007.

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

6/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

正解の例
Example of True Positive

Linux-2.6.19 から見つけたクローン
fs/sysfs/inode.c
219 struct dentry * dentry = sd−>s_dentry;
220 .
221 if (dentry) {
. /* the fol . lowing parts are detected as clones */
222
223
spin_lock(&dcache_lock);
224
spin_lock(&dentry−>d_lock);
225
if (!( d_unhashed(dentry) && dentry−>d_inode)) {
226
dget_locked(dentry);
227
__d_drop(dentry);
228
spin_unlock(&dentry−>d_lock);
229
spin_unlock(&dcache_lock);
.
.
230
......

drivers/infiniband/hw/ipath/ipath_fs.c
456
457
458
459
460
461
462
463
464
465
466
467

struct dentry *tmp;
tmp = lookup_one_len(name, parent, strlen(name));
.
spin_lock(&dcache_lock);
spin_lock(&tmp−>d_lock);
if (!( d_unhashed(tmp) && tmp−>d_inode)) {
dget_locked(tmp);
__d_drop(tmp);
spin_unlock(&tmp−>d_lock);
spin_unlock(&dcache_lock);
.
.
......

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

7/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

正解の例
Example of True Positive

Linux-2.6.19 から見つけたクローン
fs/sysfs/inode.c

drivers/infiniband/hw/ipath/ipath_fs.c

219 struct dentry * dentry = sd−>s_dentry;
220 .
221 if (dentry) {
. /* the fol . lowing parts are detected as clones */
222
223
spin_lock(&dcache_lock);
224
spin_lock(&dentry−>d_lock);
225
if (!( d_unhashed(dentry) && dentry−>d_inode)) {
226
dget_locked(dentry);
227
__d_drop(dentry);
228
spin_unlock(&dentry−>d_lock);
229
spin_unlock(&dcache_lock);
.
.
230
......

456
457
458
459
460
461
462
463
464
465
466
467

struct dentry *tmp;
tmp = lookup_one_len(name, parent, strlen(name));
.
spin_lock(&dcache_lock);
spin_lock(&tmp−>d_lock);
if (!( d_unhashed(tmp) && tmp−>d_inode)) {
dget_locked(tmp);
__d_drop(tmp);
spin_unlock(&tmp−>d_lock);
spin_unlock(&dcache_lock);
.
.
......

. Type-2 クローン .

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

7/40

.

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

正解の例
Example of True Positive

Linux-2.6.19 から見つけたクローン
fs/sysfs/inode.c

drivers/infiniband/hw/ipath/ipath_fs.c

219 struct dentry * dentry = sd−>s_dentry;
220 .
221 if (dentry) {
. /* the fol . lowing parts are detected as clones */
222
223
spin_lock(&dcache_lock);
224
spin_lock(&dentry−>d_lock);
225
if (!( d_unhashed(dentry) && dentry−>d_inode)) {
226
dget_locked(dentry);
227
__d_drop(dentry);
228
spin_unlock(&dentry−>d_lock);
229
spin_unlock(&dcache_lock);
.
.
230
......

456
457
458
459
460
461
462
463
464
465
466
467

struct dentry *tmp;
tmp = lookup_one_len(name, parent, strlen(name));
.
spin_lock(&dcache_lock);
spin_lock(&tmp−>d_lock);
if (!( d_unhashed(tmp) && tmp−>d_inode)) {
dget_locked(tmp);
__d_drop(tmp);
spin_unlock(&tmp−>d_lock);
spin_unlock(&dcache_lock);
.
.
......

. 片方に Null であるかの判断 .

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

7/40

.

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

誤検出の例
Example of False Positive
fs/nfsd/nfs3xdr.c
423 if (!( p = decode_fh(p, &args−>fh))
424 ||!(p=decode_filename(p,&args−>name,&args−>len))
425 ||!(p=decode_sattr3(p,&args−>attrs)))
426
return 0;

drivers/hwmon/lm87.c
688 if (( err = device_create_file (&new_client−>dev,
689
&dev_attr_in6_input))
690
|| (err = device_create_file (&new_client−>dev,
691
&dev_attr_in6_min))
692
|| (err = device_create_file (&new_client−>dev,
693
&dev_attr_in6_max)))
694
goto exit_remove;

fs/nfsd/nfsxdr.c
344 if (!( p = decode_fh(p, &args−>ffh))
345 ||!(p=decode_fh(p,&args−>tfh))
346 ||!(p=decode_filename(p,&args−>tname,&args−>tlen)))
347
return 0;

drivers/hwmon/gl520sm.c
615 if (( err = device_create_file (&new_client−>dev,
616
&dev_attr_in4_input))
617
|| (err = device_create_file (&new_client−>dev,
618
&dev_attr_in4_min))
619
|| (err = device_create_file (&new_client−>dev,
620
&dev_attr_in4_max)))
621
goto exit_remove_files;

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

8/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

不具合があるクローンの誤検出率
False Positives in Anomaly Clones

Eclipse
.

Linux Kernel
.

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

17 悪い習慣

>800
.
クローン

17 悪い習慣

>400
.
クローン
41 正解

21 正解

2012 年 7 月 4 日(火)

9/40

L. Jiang, Z. Su, and E. Chiu, ``Context-based detection of clone-related bugs,'' in ESEC/FSE,. vol. 2007, 2007.
.
. .
. . . . . . . .
..

..

..

.. .. .. ..

.. .. .. ..

. . . . . .
.. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

不具合があるクローンの誤検出率
False Positives in Anomaly Clones

Eclipse
.

Linux Kernel
.

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

17 悪い習慣

>800
.
クローン

17 悪い習慣

>400
.
クローン
41 正解

21 正解

2012 年 7 月 4 日(火)

9/40

L. Jiang, Z. Su, and E. Chiu, ``Context-based detection of clone-related bugs,'' in ESEC/FSE,. vol. 2007, 2007.
.
. .
. . . . . . . .
..

..

..

.. .. .. ..

.. .. .. ..

. . . . . .
.. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication

不具合があるクローンの誤検出率 II
False Positives in Anomaly Clones II

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

商用ソフトウェア(Gabel et al., 2010)
. (Gabel et al., 2010)

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ

149 バグがある
109 Code Smells

洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

不明

.
500 確かめた

8103 不具合 クローン

2012 年 7 月 4 日(火)

10/40

M. Gabel, J. Yang, Y. Yu, M. Goldszmidt, and Z. Su, ``Scalable and systematic detection of buggy inconsistencies in source
.
. . . . . . . . . . . . . . . . . .
code,'' in ACM Sigplan Notices, vol. 45, no. 10. ACM, 2010, pp. 175--190.
..

..

..

.. .. .. ..

.. .. .. ..

.. .. .. ..

.. .. .. ..

..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication

コードクローンの四つの象限
4 Quadrants of Code Clone Group

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出

一貫性
Inconsistent Consistant

動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い

可変性

厳格 (Rigid)
柔軟 (Flexible)

実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

11/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication

コードクローンの四つの象限
4 Quadrants of Code Clone Group

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い

一貫性
Inconsistent Consistant
✓
.
厳格 (Rigid)
可変性
柔軟 (Flexible)
✓
.

実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

11/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication

コードクローンの四つの象限
4 Quadrants of Code Clone Group

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い

一貫性
Inconsistent Consistant
✓
.
厳格 (Rigid)
可変性
柔軟 (Flexible)
✓
.

実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

11/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い

クローンに基づく不具
合検出

実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

12/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

クローンに基づく不具合検出
Clone-based Anomaly Detection

Deckard(Jiang et al., 2007b)
A

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ

B

洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

13/40

C
D

E

O
B

.
.

.

F D

C
E

L. Jiang, G. Misherghi, Z. Su, and S. Glondu, ``Deckard: Scalable and accurate tree-based detection of code clones,'' in
Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 2007, pp. 96--105.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

クローンに基づく不具合検出
Clone-based Anomaly Detection

Deckard(Jiang et al., 2007b)
A

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ

B

洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

13/40

C
D

E

O
B

.
.

.

F D

C
E

L. Jiang, G. Misherghi, Z. Su, and S. Glondu, ``Deckard: Scalable and accurate tree-based detection of code clones,'' in
Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 2007, pp. 96--105.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

クローンに基づく不具合検出
Clone-based Anomaly Detection

Deckard(Jiang et al., 2007b)
A

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ

B

洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

13/40

C
D

E

O
B

.
.

.

F D

C
E

L. Jiang, G. Misherghi, Z. Su, and S. Glondu, ``Deckard: Scalable and accurate tree-based detection of code clones,'' in
Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 2007, pp. 96--105.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

クローンに基づく不具合検出
Clone-based Anomaly Detection

Deckard(Jiang et al., 2007b)
A

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ

B

洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

13/40

C
D

E

O
B

.
.

.

F D

C
E

L. Jiang, G. Misherghi, Z. Su, and S. Glondu, ``Deckard: Scalable and accurate tree-based detection of code clones,'' in
Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 2007, pp. 96--105.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い

動的洗練法 Dynamic
Refinement

実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

14/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

従来のクローンレポート静的洗練法
Static Refinement of Clone Report in Other Researches

ID
1
2
3
4
5
6
7
…

内容 Bug?
AAA
BBB
CCC
DDD
EEE
FFF
III
…
…

2012 年 7 月 4 日(火)

15/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

従来のクローンレポート静的洗練法
Static Refinement of Clone Report in Other Researches

ID
1
2
3
4
5
6
7
…

内容 Bug?
AAA
?
.
BBB
?
.
CCC
X
.
DDD
?
.
EEE
?
.
FFF
?
.
III
X
.
…
…

2012 年 7 月 4 日(火)

15/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

従来のクローンレポート静的洗練法
Static Refinement of Clone Report in Other Researches

ID
1
2
3
4
5
6
7
…

内容 Bug?
AAA
?
.
BBB
?
.
CCC
X
.
DDD
?
.
EEE
?
.
FFF
?
.
III
X
.
…
…

ID 内容 Bug?
1 AAA
✓
.
2 BBB
X
.
4
5
6
…

✓
.
X
.
X
.

DDD
EEE
FFF
…

2012 年 7 月 4 日(火)

15/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

クローンレポートの動的洗練法
Dynamic Refinement of Clone Report

ID
1
2
3
4
5
6
7
…

内容 Bug?
.
AAA
.
BBB
.
CCC
.
DDD
.
EEE
.
FFF
.
III
…
…

2012 年 7 月 4 日(火)

16/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

クローンレポートの動的洗練法
Dynamic Refinement of Clone Report

ID
1
2
3
4
5
6
7
…
.

内容 Bug?
.
AAA
.
BBB
.
CCC
.
DDD
.
EEE
.
FFF
.
III
…
…

ID
.1
.2
.7
.5
.3
.6
.4
…

内容
AAA
BBB
III
EEE
CCC
FFF
DDD
…

Bug?
✓
.
X
90%
70%
50%
30%
10%
…

2012 年 7 月 4 日(火)

16/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

動的洗練法の流れ
Active Refinement Process

不具合検出
システム

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

ソートした
バグレポート

洗練エンジン
« 洗練の輪 »

最初の
.
バグレポート

ユーザからの
フィードバック

2012 年 7 月 4 日(火)

17/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

動的洗練法の流れ
Active Refinement Process

不具合検出
システム

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

ソートした
バグレポート

洗練エンジン
« 洗練の輪 »

最初の
.
バグレポート

ユーザからの
フィードバック

2012 年 7 月 4 日(火)

17/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い

洗練エンジン
Refinement Engine

実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

18/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

19/40

洗練エンジンの流れ
Process of Refinement Engine

入力: バグレポートリスト
ソースコードから特徴抽出
前処理
特徴を選択 Re-balancing
分類
識別モデル
.
順番を調整した入力
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

19/40

洗練エンジンの流れ
Process of Refinement Engine

入力: バグレポートリスト
ソースコードから特徴抽出
前処理
特徴を選択 Re-balancing
分類
識別モデル
.
順番を調整した入力
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
特徴抽出: 構文木を構築

Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨

Feature Extraction: Tree Constraction

出典 Publication
出典 Publication

.

programm

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出

class A

動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

method f

.

...

global func ...

class B

method g

init

return

method h

init

call

return

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

name

expr-list

2012 年 7 月 4 日(火)

20/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
特徴抽出: 構文木を構築

Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨

Feature Extraction: Tree Constraction

出典 Publication
出典 Publication

.

programm

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出

class A

動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

method f

.

...

global func ...

class B

method g

init

return

method h

init

call

return

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

name

expr-list

2012 年 7 月 4 日(火)

20/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
特徴抽出: 構文木を構築

Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨

Feature Extraction: Tree Constraction

出典 Publication
出典 Publication

.

programm

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出

class A

動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering

method f

.

...

global func ...

class B

method g

init

return

method h

init

call

return

考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

name

expr-list

2012 年 7 月 4 日(火)

20/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

特徴抽出: 五つの特徴
Feature Extraction: 5 features

.

class B

基本的な特徴
Basic Features

対の特徴

method g

method h

Pair Features

基本的な特徴の割合

init

return

init

call

return

Proportional FeaturesーBasic

対の特徴の割合
name

Proportional FeaturesーPair

expr-list

他の特徴
Other Features

2012 年 7 月 4 日(火)

21/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

特徴抽出: 五つの特徴
Feature Extraction: 5 features

.

class B

基本的な特徴
Basic Features

対の特徴

method g

method h

Pair Features

基本的な特徴の割合

init

return

init

call

return

Proportional FeaturesーBasic

対の特徴の割合
name

Proportional FeaturesーPair

expr-list

他の特徴
Other Features

2012 年 7 月 4 日(火)

21/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

特徴抽出: 五つの特徴
Feature Extraction: 5 features

.

class B

基本的な特徴
Basic Features

対の特徴

method g

method h

Pair Features

基本的な特徴の割合

init

return

init

call

return

Proportional FeaturesーBasic

対の特徴の割合
name

Proportional FeaturesーPair

expr-list

他の特徴
Other Features

2012 年 7 月 4 日(火)

21/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

特徴抽出: 五つの特徴
Feature Extraction: 5 features

.

class B

基本的な特徴
Basic Features

対の特徴

method g

method h

Pair Features

基本的な特徴の割合

init

return

init

call

return

Proportional FeaturesーBasic

対の特徴の割合
name

Proportional FeaturesーPair

expr-list

他の特徴
Other Features

2012 年 7 月 4 日(火)

21/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

特徴抽出: 五つの特徴
Feature Extraction: 5 features

.

class B

基本的な特徴
Basic Features

対の特徴

method g

method h

Pair Features

基本的な特徴の割合

init

return

init

call

return

Proportional FeaturesーBasic

対の特徴の割合
name

Proportional FeaturesーPair

expr-list

他の特徴
Other Features

2012 年 7 月 4 日(火)

21/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

21/40

特徴抽出: 五つの特徴
Feature Extraction: 5 features

.

class B

基本的な特徴
Basic Features

対の特徴

method g

method h

Pair Features

基本的な特徴の割合

init

return

init

call

return

Proportional FeaturesーBasic

対の特徴の割合
name

Proportional FeaturesーPair

他の特徴
Other Features

expr-list

クローンの数 |CG|, クローン
∑
|C|
の平均サイズ c∈CG
|CG|
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

特徴抽出: 五つの特徴の例
Feature Extraction: Example of 5 features
1

decode_sattr3(p, &args−>attrs)

1 decode_filename(p, &args−>tname, &args−>tlen)

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

22/40

Expr

Expr
Expr-list

.

数
2
2

Expr-list

2

Expr

2

対
タイプ
Call/Name
Call/ Exprlist
Expr-list/
Expr

Expr

Name

Expr

Call

Name

基本
タイプ
Call
Name

Expr-list

.

Expr

Call

数
2
2

基本割合
タイプ
割合
Call
100%
Name
100%

2

Expr-list

100%

Expr

対割合
タイプ
Call/Name
Call/ Exprlist
Expr-list/
Expr

100%
..

.
..

.
..

.

割合
100%
100%

他
タイプ
値
Num
2
Avg
5.5

100%

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

特徴抽出: 五つの特徴の例
Feature Extraction: Example of 5 features
1

decode_sattr3(p, &args−>attrs)

1 decode_filename(p, &args−>tname, &args−>tlen)

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

22/40

Expr

Expr
Expr-list

.

数
2
2

Expr-list

2

Expr

2

対
タイプ
Call/Name
Call/ Exprlist
Expr-list/
Expr

Expr

Name

Expr

Call

Name

基本
タイプ
Call
Name

Expr-list

.

Expr

Call

数
2
2

基本割合
タイプ
割合
Call
100%
Name
100%

2

Expr-list

100%

Expr

対割合
タイプ
Call/Name
Call/ Exprlist
Expr-list/
Expr

100%
..

.
..

.
..

.

割合
100%
100%

他
タイプ
値
Num
2
Avg
5.5

100%

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

特徴抽出: 五つの特徴の例
Feature Extraction: Example of 5 features
1

decode_sattr3(p, &args−>attrs)

1 decode_filename(p, &args−>tname, &args−>tlen)

クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

22/40

Expr

Expr
Expr-list

.

数
2
2

Expr-list

2

Expr

2

対
タイプ
Call/Name
Call/ Exprlist
Expr-list/
Expr

Expr

Name

Expr

Call

Name

基本
タイプ
Call
Name

Expr-list

.

Expr

Call

数
2
2

基本割合
タイプ
割合
Call
100%
Name
100%

2

Expr-list

100%

Expr

対割合
タイプ
Call/Name
Call/ Exprlist
Expr-list/
Expr

100%
..

.
..

.
..

.

割合
100%
100%

他
タイプ
値
Num
2
Avg
5.5

100%

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

23/40

洗練エンジンの流れ (再掲)
Process of Refinement Engine (Again)

入力: バグレポートリスト
ソースコードから特徴抽出
前処理
.
特徴を選択 Re-balancing
分類
識別モデル
.
順番を調整した入力
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

24/40

前処理: 特徴選択
.
Preprocessing: Feature Selection

• c はクローンのクラスラベル, f. は一つの特徴
.
• 正解は ve クラス, 誤検出は −ve クラス
.
.

情報利得 (Information Gain) は:
IG(c|f) = H(c) − H(c|f)
∑
H(c) = −
P(ci ) log P(ci )
ci ∈{±ve}

H(c|f) = −

∑

P(f)

∑

(1)
(2)

P(ci |f) log P(ci |f)

(3)

ci ∈{±ve}

情報利得を基づいて Weka(Holmes et al., 1994) を用いて特徴選択
G. Holmes, A. Donkin, and I. Witten, ``Weka: A machine learning workbench,'' in Intelligent Information Systems, 1994. Proceedings of the 1994
Second Australian and New Zealand Conference on. Ieee, 1994, pp. 357--361.
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication

前処理: Data Re-balancing
Preprocessing: Data Re-balancing

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

Cosine-similarity
(Kantardzic, 2011)

クローンに基づく不具合検出
クローンに基づく不具合検出

M. Kantardzic, Data mining: concepts, models,
methods, and algorithms. Wiley-IEEE Press,
2011.

動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

.

nearest neighbor
approach
(Renieres and Reiss, 2003)
M. Renieres and S. Reiss, ``Fault localization with
nearest neighbor queries,'' in Automated
Software Engineering, 2003. Proceedings. 18th
IEEE International Conference on. IEEE, 2003,
pp. 30--39.

2012 年 7 月 4 日(火)

25/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication

前処理: Data Re-balancing
Preprocessing: Data Re-balancing

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

Cosine-similarity
(Kantardzic, 2011)

クローンに基づく不具合検出
クローンに基づく不具合検出

M. Kantardzic, Data mining: concepts, models,
methods, and algorithms. Wiley-IEEE Press,
2011.

動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

.

nearest neighbor
approach
(Renieres and Reiss, 2003)
M. Renieres and S. Reiss, ``Fault localization with
nearest neighbor queries,'' in Automated
Software Engineering, 2003. Proceedings. 18th
IEEE International Conference on. IEEE, 2003,
pp. 30--39.

2012 年 7 月 4 日(火)

25/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication

前処理: Data Re-balancing
Preprocessing: Data Re-balancing

背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限

Cosine-similarity
(Kantardzic, 2011)

クローンに基づく不具合検出
クローンに基づく不具合検出

M. Kantardzic, Data mining: concepts, models,
methods, and algorithms. Wiley-IEEE Press,
2011.

動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

.

nearest neighbor
approach
(Renieres and Reiss, 2003)
M. Renieres and S. Reiss, ``Fault localization with
nearest neighbor queries,'' in Automated
Software Engineering, 2003. Proceedings. 18th
IEEE International Conference on. IEEE, 2003,
pp. 30--39.

2012 年 7 月 4 日(火)

25/40

..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone
Anomaly Reports
大阪大学大学院 CS 専攻 楊 嘉晨
出典 Publication
出典 Publication
背景 Introduction
背景 Introduction
既存研究 Related Researches
正解の例 Example of True Positive
誤検出の例 Example of False Positive
不具合があるクローンの誤検出率
コードクローンの四つの象限
クローンに基づく不具合検出
クローンに基づく不具合検出
動的洗練法 Dynamic Refinement
従来のクローンレポートの静的洗練法
クローンレポートの動的洗練法
動的洗練法の流れ
洗練エンジン Refinement Engine
洗練エンジンの流れ Process of Refinement Engine
特徴抽出: 構文木を構築
特徴抽出: 五つの特徴
特徴抽出: 五つの特徴の例
前処理: 特徴選択
前処理: Data Re-balancing
非ネスト汎化された最も近隣分類法
分類法: 類似度の計算
具体的な洗練の振舞い
実験評価 Experiment and Evaluation
評価方法: 平均正解発見率 APPF
実験の対象と設定 Settings of Empirical Evaluation
実験の結果 Results of the Empirical Evaluation
Top-3 情報利得 Top-3 Information Gain
順番を調整した例 Example of Re-ordering
考察, 結論及び今後の課題
妥当性の考察 Threats to Validity
結論と今後の課題 Conclusion and Future Work

2012 年 7 月 4 日(火)

26/40

洗練エンジンの流れ (再掲)
Process of Refinement Engine (Again)

入力: バグレポートリスト
ソースコードから特徴抽出
前処理
特徴を選択 Re-balancing
分類
識別モデル
.
順番を調整した入力
..

.
..

.
..

.

. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

.
..

.
..

.
..

.
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports
Active Refinement of Clone Anomaly Reports

More Related Content

Recently uploaded

プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (8)

プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Active Refinement of Clone Anomaly Reports

  • 1. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work Active Refinement of Clone Anomaly Reports MD 輪講 修士課程 1 年 楊 嘉晨 大阪大学大学院コンピュータサイエンス専攻楠本研究室 2012 年 7 月 4 日(火) 2012 年 7 月 4 日(火) 1/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 2. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 出典 Publication 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 2/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 3. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 出典 Publication Active Refinement of Clone Anomaly Reports • ICSE 2012 • Similarity and Classification Lucia, David Lo, Lingxiao Jiang, and Aditya Budi • Singapore Management University 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 3/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 4. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 背景 Introduction 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 4/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 5. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 5/40 背景 Introduction コードクローンはソフトウェア保守に対して悪い影響 ? . 不具合 (anomaly)があるコードクローンに バグを含 む可能性が高い バグが含む不具合があるクローンを 正解 (True Positive) . バグがない不具合があるクローンを 誤検出 (False Positive) . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 6. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 5/40 背景 Introduction コードクローンはソフトウェア保守に対して悪い影響 ? . 不具合 (anomaly)があるコードクローンに バグを含 む可能性が高い バグが含む不具合があるクローンを 正解 (True Positive) . バグがない不具合があるクローンを 誤検出 (False Positive) . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 7. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 5/40 背景 Introduction コードクローンはソフトウェア保守に対して悪い影響 ? . 不具合 (anomaly)があるコードクローンに バグを含 む可能性が高い バグが含む不具合があるクローンを 正解 (True Positive) . バグがない不具合があるクローンを 誤検出 (False Positive) . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 8. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 5/40 背景 Introduction コードクローンはソフトウェア保守に対して悪い影響 ? . 不具合 (anomaly)があるコードクローンに バグを含 む可能性が高い バグが含む不具合があるクローンを 正解 (True Positive) . バグがない不具合があるクローンを 誤検出 (False Positive) . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 9. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 既存研究:クローンに基づく不具合検出 Related Researches: Clone-based Anomaly Detection クローン間の識別子 (Identifier) の不一致 (Juergens et al., 2009) E. Juergens, F. Deissenboeck, B. Hummel, and S. Wagner, ``Do code clones matter?'' in Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, 2009, pp. 485--495. クローン周りのコード片の差異(Jiang et al., 2007a) L. Jiang, Z. Su, and E. Chiu, ``Context-based detection of clone-related bugs,'' in ESEC/FSE, vol. 2007, 2007. 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 6/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 10. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 正解の例 Example of True Positive Linux-2.6.19 から見つけたクローン fs/sysfs/inode.c 219 struct dentry * dentry = sd−>s_dentry; 220 . 221 if (dentry) { . /* the fol . lowing parts are detected as clones */ 222 223 spin_lock(&dcache_lock); 224 spin_lock(&dentry−>d_lock); 225 if (!( d_unhashed(dentry) && dentry−>d_inode)) { 226 dget_locked(dentry); 227 __d_drop(dentry); 228 spin_unlock(&dentry−>d_lock); 229 spin_unlock(&dcache_lock); . . 230 ...... drivers/infiniband/hw/ipath/ipath_fs.c 456 457 458 459 460 461 462 463 464 465 466 467 struct dentry *tmp; tmp = lookup_one_len(name, parent, strlen(name)); . spin_lock(&dcache_lock); spin_lock(&tmp−>d_lock); if (!( d_unhashed(tmp) && tmp−>d_inode)) { dget_locked(tmp); __d_drop(tmp); spin_unlock(&tmp−>d_lock); spin_unlock(&dcache_lock); . . ...... 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 7/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 11. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 正解の例 Example of True Positive Linux-2.6.19 から見つけたクローン fs/sysfs/inode.c drivers/infiniband/hw/ipath/ipath_fs.c 219 struct dentry * dentry = sd−>s_dentry; 220 . 221 if (dentry) { . /* the fol . lowing parts are detected as clones */ 222 223 spin_lock(&dcache_lock); 224 spin_lock(&dentry−>d_lock); 225 if (!( d_unhashed(dentry) && dentry−>d_inode)) { 226 dget_locked(dentry); 227 __d_drop(dentry); 228 spin_unlock(&dentry−>d_lock); 229 spin_unlock(&dcache_lock); . . 230 ...... 456 457 458 459 460 461 462 463 464 465 466 467 struct dentry *tmp; tmp = lookup_one_len(name, parent, strlen(name)); . spin_lock(&dcache_lock); spin_lock(&tmp−>d_lock); if (!( d_unhashed(tmp) && tmp−>d_inode)) { dget_locked(tmp); __d_drop(tmp); spin_unlock(&tmp−>d_lock); spin_unlock(&dcache_lock); . . ...... . Type-2 クローン . 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 7/40 . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 12. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 正解の例 Example of True Positive Linux-2.6.19 から見つけたクローン fs/sysfs/inode.c drivers/infiniband/hw/ipath/ipath_fs.c 219 struct dentry * dentry = sd−>s_dentry; 220 . 221 if (dentry) { . /* the fol . lowing parts are detected as clones */ 222 223 spin_lock(&dcache_lock); 224 spin_lock(&dentry−>d_lock); 225 if (!( d_unhashed(dentry) && dentry−>d_inode)) { 226 dget_locked(dentry); 227 __d_drop(dentry); 228 spin_unlock(&dentry−>d_lock); 229 spin_unlock(&dcache_lock); . . 230 ...... 456 457 458 459 460 461 462 463 464 465 466 467 struct dentry *tmp; tmp = lookup_one_len(name, parent, strlen(name)); . spin_lock(&dcache_lock); spin_lock(&tmp−>d_lock); if (!( d_unhashed(tmp) && tmp−>d_inode)) { dget_locked(tmp); __d_drop(tmp); spin_unlock(&tmp−>d_lock); spin_unlock(&dcache_lock); . . ...... . 片方に Null であるかの判断 . 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 7/40 . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 13. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 誤検出の例 Example of False Positive fs/nfsd/nfs3xdr.c 423 if (!( p = decode_fh(p, &args−>fh)) 424 ||!(p=decode_filename(p,&args−>name,&args−>len)) 425 ||!(p=decode_sattr3(p,&args−>attrs))) 426 return 0; drivers/hwmon/lm87.c 688 if (( err = device_create_file (&new_client−>dev, 689 &dev_attr_in6_input)) 690 || (err = device_create_file (&new_client−>dev, 691 &dev_attr_in6_min)) 692 || (err = device_create_file (&new_client−>dev, 693 &dev_attr_in6_max))) 694 goto exit_remove; fs/nfsd/nfsxdr.c 344 if (!( p = decode_fh(p, &args−>ffh)) 345 ||!(p=decode_fh(p,&args−>tfh)) 346 ||!(p=decode_filename(p,&args−>tname,&args−>tlen))) 347 return 0; drivers/hwmon/gl520sm.c 615 if (( err = device_create_file (&new_client−>dev, 616 &dev_attr_in4_input)) 617 || (err = device_create_file (&new_client−>dev, 618 &dev_attr_in4_min)) 619 || (err = device_create_file (&new_client−>dev, 620 &dev_attr_in4_max))) 621 goto exit_remove_files; 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 8/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 14. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 不具合があるクローンの誤検出率 False Positives in Anomaly Clones Eclipse . Linux Kernel . クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 17 悪い習慣 >800 . クローン 17 悪い習慣 >400 . クローン 41 正解 21 正解 2012 年 7 月 4 日(火) 9/40 L. Jiang, Z. Su, and E. Chiu, ``Context-based detection of clone-related bugs,'' in ESEC/FSE,. vol. 2007, 2007. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. . . . . . . .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 15. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 不具合があるクローンの誤検出率 False Positives in Anomaly Clones Eclipse . Linux Kernel . クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 17 悪い習慣 >800 . クローン 17 悪い習慣 >400 . クローン 41 正解 21 正解 2012 年 7 月 4 日(火) 9/40 L. Jiang, Z. Su, and E. Chiu, ``Context-based detection of clone-related bugs,'' in ESEC/FSE,. vol. 2007, 2007. . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. . . . . . . .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 16. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 不具合があるクローンの誤検出率 II False Positives in Anomaly Clones II 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 商用ソフトウェア(Gabel et al., 2010) . (Gabel et al., 2010) クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 149 バグがある 109 Code Smells 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 不明 . 500 確かめた 8103 不具合 クローン 2012 年 7 月 4 日(火) 10/40 M. Gabel, J. Yang, Y. Yu, M. Goldszmidt, and Z. Su, ``Scalable and systematic detection of buggy inconsistencies in source . . . . . . . . . . . . . . . . . . . code,'' in ACM Sigplan Notices, vol. 45, no. 10. ACM, 2010, pp. 175--190. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. .
  • 17. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication コードクローンの四つの象限 4 Quadrants of Code Clone Group 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 一貫性 Inconsistent Consistant 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 可変性 厳格 (Rigid) 柔軟 (Flexible) 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 11/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 18. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication コードクローンの四つの象限 4 Quadrants of Code Clone Group 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 一貫性 Inconsistent Consistant ✓ . 厳格 (Rigid) 可変性 柔軟 (Flexible) ✓ . 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 11/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 19. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication コードクローンの四つの象限 4 Quadrants of Code Clone Group 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 一貫性 Inconsistent Consistant ✓ . 厳格 (Rigid) 可変性 柔軟 (Flexible) ✓ . 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 11/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 20. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い クローンに基づく不具 合検出 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 12/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 21. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 Clone-based Anomaly Detection Deckard(Jiang et al., 2007b) A クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ B 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 13/40 C D E O B . . . F D C E L. Jiang, G. Misherghi, Z. Su, and S. Glondu, ``Deckard: Scalable and accurate tree-based detection of code clones,'' in Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 2007, pp. 96--105. .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 22. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 Clone-based Anomaly Detection Deckard(Jiang et al., 2007b) A クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ B 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 13/40 C D E O B . . . F D C E L. Jiang, G. Misherghi, Z. Su, and S. Glondu, ``Deckard: Scalable and accurate tree-based detection of code clones,'' in Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 2007, pp. 96--105. .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 23. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 Clone-based Anomaly Detection Deckard(Jiang et al., 2007b) A クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ B 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 13/40 C D E O B . . . F D C E L. Jiang, G. Misherghi, Z. Su, and S. Glondu, ``Deckard: Scalable and accurate tree-based detection of code clones,'' in Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 2007, pp. 96--105. .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 24. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 Clone-based Anomaly Detection Deckard(Jiang et al., 2007b) A クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ B 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 13/40 C D E O B . . . F D C E L. Jiang, G. Misherghi, Z. Su, and S. Glondu, ``Deckard: Scalable and accurate tree-based detection of code clones,'' in Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 2007, pp. 96--105. .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 25. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 動的洗練法 Dynamic Refinement 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 14/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 26. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 従来のクローンレポート静的洗練法 Static Refinement of Clone Report in Other Researches ID 1 2 3 4 5 6 7 … 内容 Bug? AAA BBB CCC DDD EEE FFF III … … 2012 年 7 月 4 日(火) 15/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 27. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 従来のクローンレポート静的洗練法 Static Refinement of Clone Report in Other Researches ID 1 2 3 4 5 6 7 … 内容 Bug? AAA ? . BBB ? . CCC X . DDD ? . EEE ? . FFF ? . III X . … … 2012 年 7 月 4 日(火) 15/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 28. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 従来のクローンレポート静的洗練法 Static Refinement of Clone Report in Other Researches ID 1 2 3 4 5 6 7 … 内容 Bug? AAA ? . BBB ? . CCC X . DDD ? . EEE ? . FFF ? . III X . … … ID 内容 Bug? 1 AAA ✓ . 2 BBB X . 4 5 6 … ✓ . X . X . DDD EEE FFF … 2012 年 7 月 4 日(火) 15/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 29. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work クローンレポートの動的洗練法 Dynamic Refinement of Clone Report ID 1 2 3 4 5 6 7 … 内容 Bug? . AAA . BBB . CCC . DDD . EEE . FFF . III … … 2012 年 7 月 4 日(火) 16/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 30. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work クローンレポートの動的洗練法 Dynamic Refinement of Clone Report ID 1 2 3 4 5 6 7 … . 内容 Bug? . AAA . BBB . CCC . DDD . EEE . FFF . III … … ID .1 .2 .7 .5 .3 .6 .4 … 内容 AAA BBB III EEE CCC FFF DDD … Bug? ✓ . X 90% 70% 50% 30% 10% … 2012 年 7 月 4 日(火) 16/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 31. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 動的洗練法の流れ Active Refinement Process 不具合検出 システム クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work ソートした バグレポート 洗練エンジン « 洗練の輪 » 最初の . バグレポート ユーザからの フィードバック 2012 年 7 月 4 日(火) 17/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 32. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 動的洗練法の流れ Active Refinement Process 不具合検出 システム クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work ソートした バグレポート 洗練エンジン « 洗練の輪 » 最初の . バグレポート ユーザからの フィードバック 2012 年 7 月 4 日(火) 17/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 33. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 洗練エンジン Refinement Engine 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 18/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 34. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 19/40 洗練エンジンの流れ Process of Refinement Engine 入力: バグレポートリスト ソースコードから特徴抽出 前処理 特徴を選択 Re-balancing 分類 識別モデル . 順番を調整した入力 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 35. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 19/40 洗練エンジンの流れ Process of Refinement Engine 入力: バグレポートリスト ソースコードから特徴抽出 前処理 特徴を選択 Re-balancing 分類 識別モデル . 順番を調整した入力 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 36. 特徴抽出: 構文木を構築 Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 Feature Extraction: Tree Constraction 出典 Publication 出典 Publication . programm 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 class A 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering method f . ... global func ... class B method g init return method h init call return 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work name expr-list 2012 年 7 月 4 日(火) 20/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 37. 特徴抽出: 構文木を構築 Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 Feature Extraction: Tree Constraction 出典 Publication 出典 Publication . programm 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 class A 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering method f . ... global func ... class B method g init return method h init call return 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work name expr-list 2012 年 7 月 4 日(火) 20/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 38. 特徴抽出: 構文木を構築 Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 Feature Extraction: Tree Constraction 出典 Publication 出典 Publication . programm 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 class A 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering method f . ... global func ... class B method g init return method h init call return 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work name expr-list 2012 年 7 月 4 日(火) 20/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 39. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 特徴抽出: 五つの特徴 Feature Extraction: 5 features . class B 基本的な特徴 Basic Features 対の特徴 method g method h Pair Features 基本的な特徴の割合 init return init call return Proportional FeaturesーBasic 対の特徴の割合 name Proportional FeaturesーPair expr-list 他の特徴 Other Features 2012 年 7 月 4 日(火) 21/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 40. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 特徴抽出: 五つの特徴 Feature Extraction: 5 features . class B 基本的な特徴 Basic Features 対の特徴 method g method h Pair Features 基本的な特徴の割合 init return init call return Proportional FeaturesーBasic 対の特徴の割合 name Proportional FeaturesーPair expr-list 他の特徴 Other Features 2012 年 7 月 4 日(火) 21/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 41. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 特徴抽出: 五つの特徴 Feature Extraction: 5 features . class B 基本的な特徴 Basic Features 対の特徴 method g method h Pair Features 基本的な特徴の割合 init return init call return Proportional FeaturesーBasic 対の特徴の割合 name Proportional FeaturesーPair expr-list 他の特徴 Other Features 2012 年 7 月 4 日(火) 21/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 42. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 特徴抽出: 五つの特徴 Feature Extraction: 5 features . class B 基本的な特徴 Basic Features 対の特徴 method g method h Pair Features 基本的な特徴の割合 init return init call return Proportional FeaturesーBasic 対の特徴の割合 name Proportional FeaturesーPair expr-list 他の特徴 Other Features 2012 年 7 月 4 日(火) 21/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 43. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 特徴抽出: 五つの特徴 Feature Extraction: 5 features . class B 基本的な特徴 Basic Features 対の特徴 method g method h Pair Features 基本的な特徴の割合 init return init call return Proportional FeaturesーBasic 対の特徴の割合 name Proportional FeaturesーPair expr-list 他の特徴 Other Features 2012 年 7 月 4 日(火) 21/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 44. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 21/40 特徴抽出: 五つの特徴 Feature Extraction: 5 features . class B 基本的な特徴 Basic Features 対の特徴 method g method h Pair Features 基本的な特徴の割合 init return init call return Proportional FeaturesーBasic 対の特徴の割合 name Proportional FeaturesーPair 他の特徴 Other Features expr-list クローンの数 |CG|, クローン ∑ |C| の平均サイズ c∈CG |CG| .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 45. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 特徴抽出: 五つの特徴の例 Feature Extraction: Example of 5 features 1 decode_sattr3(p, &args−>attrs) 1 decode_filename(p, &args−>tname, &args−>tlen) クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 22/40 Expr Expr Expr-list . 数 2 2 Expr-list 2 Expr 2 対 タイプ Call/Name Call/ Exprlist Expr-list/ Expr Expr Name Expr Call Name 基本 タイプ Call Name Expr-list . Expr Call 数 2 2 基本割合 タイプ 割合 Call 100% Name 100% 2 Expr-list 100% Expr 対割合 タイプ Call/Name Call/ Exprlist Expr-list/ Expr 100% .. . .. . .. . 割合 100% 100% 他 タイプ 値 Num 2 Avg 5.5 100% . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 46. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 特徴抽出: 五つの特徴の例 Feature Extraction: Example of 5 features 1 decode_sattr3(p, &args−>attrs) 1 decode_filename(p, &args−>tname, &args−>tlen) クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 22/40 Expr Expr Expr-list . 数 2 2 Expr-list 2 Expr 2 対 タイプ Call/Name Call/ Exprlist Expr-list/ Expr Expr Name Expr Call Name 基本 タイプ Call Name Expr-list . Expr Call 数 2 2 基本割合 タイプ 割合 Call 100% Name 100% 2 Expr-list 100% Expr 対割合 タイプ Call/Name Call/ Exprlist Expr-list/ Expr 100% .. . .. . .. . 割合 100% 100% 他 タイプ 値 Num 2 Avg 5.5 100% . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 47. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 特徴抽出: 五つの特徴の例 Feature Extraction: Example of 5 features 1 decode_sattr3(p, &args−>attrs) 1 decode_filename(p, &args−>tname, &args−>tlen) クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 22/40 Expr Expr Expr-list . 数 2 2 Expr-list 2 Expr 2 対 タイプ Call/Name Call/ Exprlist Expr-list/ Expr Expr Name Expr Call Name 基本 タイプ Call Name Expr-list . Expr Call 数 2 2 基本割合 タイプ 割合 Call 100% Name 100% 2 Expr-list 100% Expr 対割合 タイプ Call/Name Call/ Exprlist Expr-list/ Expr 100% .. . .. . .. . 割合 100% 100% 他 タイプ 値 Num 2 Avg 5.5 100% . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 48. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 23/40 洗練エンジンの流れ (再掲) Process of Refinement Engine (Again) 入力: バグレポートリスト ソースコードから特徴抽出 前処理 . 特徴を選択 Re-balancing 分類 識別モデル . 順番を調整した入力 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 49. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 24/40 前処理: 特徴選択 . Preprocessing: Feature Selection • c はクローンのクラスラベル, f. は一つの特徴 . • 正解は ve クラス, 誤検出は −ve クラス . . 情報利得 (Information Gain) は: IG(c|f) = H(c) − H(c|f) ∑ H(c) = − P(ci ) log P(ci ) ci ∈{±ve} H(c|f) = − ∑ P(f) ∑ (1) (2) P(ci |f) log P(ci |f) (3) ci ∈{±ve} 情報利得を基づいて Weka(Holmes et al., 1994) を用いて特徴選択 G. Holmes, A. Donkin, and I. Witten, ``Weka: A machine learning workbench,'' in Intelligent Information Systems, 1994. Proceedings of the 1994 Second Australian and New Zealand Conference on. Ieee, 1994, pp. 357--361. .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 50. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 前処理: Data Re-balancing Preprocessing: Data Re-balancing 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 Cosine-similarity (Kantardzic, 2011) クローンに基づく不具合検出 クローンに基づく不具合検出 M. Kantardzic, Data mining: concepts, models, methods, and algorithms. Wiley-IEEE Press, 2011. 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work . nearest neighbor approach (Renieres and Reiss, 2003) M. Renieres and S. Reiss, ``Fault localization with nearest neighbor queries,'' in Automated Software Engineering, 2003. Proceedings. 18th IEEE International Conference on. IEEE, 2003, pp. 30--39. 2012 年 7 月 4 日(火) 25/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 51. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 前処理: Data Re-balancing Preprocessing: Data Re-balancing 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 Cosine-similarity (Kantardzic, 2011) クローンに基づく不具合検出 クローンに基づく不具合検出 M. Kantardzic, Data mining: concepts, models, methods, and algorithms. Wiley-IEEE Press, 2011. 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work . nearest neighbor approach (Renieres and Reiss, 2003) M. Renieres and S. Reiss, ``Fault localization with nearest neighbor queries,'' in Automated Software Engineering, 2003. Proceedings. 18th IEEE International Conference on. IEEE, 2003, pp. 30--39. 2012 年 7 月 4 日(火) 25/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 52. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 前処理: Data Re-balancing Preprocessing: Data Re-balancing 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 Cosine-similarity (Kantardzic, 2011) クローンに基づく不具合検出 クローンに基づく不具合検出 M. Kantardzic, Data mining: concepts, models, methods, and algorithms. Wiley-IEEE Press, 2011. 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work . nearest neighbor approach (Renieres and Reiss, 2003) M. Renieres and S. Reiss, ``Fault localization with nearest neighbor queries,'' in Automated Software Engineering, 2003. Proceedings. 18th IEEE International Conference on. IEEE, 2003, pp. 30--39. 2012 年 7 月 4 日(火) 25/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 53. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 実験評価 Experiment and Evaluation 評価方法: 平均正解発見率 APPF 実験の対象と設定 Settings of Empirical Evaluation 実験の結果 Results of the Empirical Evaluation Top-3 情報利得 Top-3 Information Gain 順番を調整した例 Example of Re-ordering 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 26/40 洗練エンジンの流れ (再掲) Process of Refinement Engine (Again) 入力: バグレポートリスト ソースコードから特徴抽出 前処理 特徴を選択 Re-balancing 分類 識別モデル . 順番を調整した入力 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .