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
分類
識別モデル
.
順番を調整した入力
..
.
..
.
..
.
. . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.