Your SlideShare is downloading. ×
Active Refinement of Clone Anomaly Reports
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Active Refinement of Clone Anomaly Reports

332
views

Published on

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
332
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 分類 識別モデル . 順番を調整した入力 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 54. 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 日(火) 27/40 非ネスト汎化された最も近隣分類法 NNGe: Nearest Neighbor Classification with Non-Nested Generalization 非ネスト (Wettschereck and Dietterich, 1995) 汎化された (Salzberg, 1991) 最も近隣 (Tan, 2006) 分類法 (NNGe) (Martin, 1995) D. Wettschereck and T. Dietterich, ``An experimental comparison of the nearest-neighbor and nearest-hyperrectangle algorithms,'' Machine Learning, vol. 19, no. 1, pp. 5--27, 1995. S. Salzberg, ``A nearest hyperrectangle learning method,'' Machine learning, vol. 6, no. 3, pp. 251--276, 1991. S. Tan, ``An effective refinement strategy for knn text classifier,'' Expert Systems with Applications, vol. 30, no. 2, pp. 290--298, 2006. B. Martin, ``Instance-based learning: nearest neighbour with generalisation,'' Ph.D. dissertation, University of Waikato, 1995. . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 55. 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 日(火) 27/40 非ネスト汎化された最も近隣分類法 NNGe: Nearest Neighbor Classification with Non-Nested Generalization 非ネスト (Wettschereck and Dietterich, 1995) 汎化された (Salzberg, 1991) 最も近隣 (Tan, 2006) 分類法 (NNGe) (Martin, 1995) D. Wettschereck and T. Dietterich, ``An experimental comparison of the nearest-neighbor and nearest-hyperrectangle algorithms,'' Machine Learning, vol. 19, no. 1, pp. 5--27, 1995. S. Salzberg, ``A nearest hyperrectangle learning method,'' Machine learning, vol. 6, no. 3, pp. 251--276, 1991. S. Tan, ``An effective refinement strategy for knn text classifier,'' Expert Systems with Applications, vol. 30, no. 2, pp. 290--298, 2006. B. Martin, ``Instance-based learning: nearest neighbour with generalisation,'' Ph.D. dissertation, University of Waikato, 1995. . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 56. 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 日(火) 27/40 非ネスト汎化された最も近隣分類法 NNGe: Nearest Neighbor Classification with Non-Nested Generalization 非ネスト (Wettschereck and Dietterich, 1995) 汎化された (Salzberg, 1991) 最も近隣 (Tan, 2006) 分類法 (NNGe) (Martin, 1995) D. Wettschereck and T. Dietterich, ``An experimental comparison of the nearest-neighbor and nearest-hyperrectangle algorithms,'' Machine Learning, vol. 19, no. 1, pp. 5--27, 1995. S. Salzberg, ``A nearest hyperrectangle learning method,'' Machine learning, vol. 6, no. 3, pp. 251--276, 1991. S. Tan, ``An effective refinement strategy for knn text classifier,'' Expert Systems with Applications, vol. 30, no. 2, pp. 290--298, 2006. B. Martin, ``Instance-based learning: nearest neighbour with generalisation,'' Ph.D. dissertation, University of Waikato, 1995. . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 57. 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 日(火) 27/40 非ネスト汎化された最も近隣分類法 NNGe: Nearest Neighbor Classification with Non-Nested Generalization 非ネスト (Wettschereck and Dietterich, 1995) 汎化された (Salzberg, 1991) 最も近隣 (Tan, 2006) 分類法 (NNGe) (Martin, 1995) D. Wettschereck and T. Dietterich, ``An experimental comparison of the nearest-neighbor and nearest-hyperrectangle algorithms,'' Machine Learning, vol. 19, no. 1, pp. 5--27, 1995. S. Salzberg, ``A nearest hyperrectangle learning method,'' Machine learning, vol. 6, no. 3, pp. 251--276, 1991. S. Tan, ``An effective refinement strategy for knn text classifier,'' Expert Systems with Applications, vol. 30, no. 2, pp. 290--298, 2006. B. Martin, ``Instance-based learning: nearest neighbour with generalisation,'' Ph.D. dissertation, University of Waikato, 1995. . .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 58. 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 日(火) 28/40 分類法: 類似度の計算 Classification: Calculation of Likelihood RS(dp) 2 ∑ | dT ∈DT sim(dp , dT )| RS(dp) = DT ∑ | dF ∈DF sim(dp , dF )| − DF sim(dp , d) = 1 − dist(dp , d) dist(dp , d) ∈ [0, 1] LH(dp) = 0.5 + LH(dp) によって Weka の NNGe 分類法を用いて分類 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 59. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 具体的な洗練の振舞い Concrete Refinement Process 背景 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 日(火) 29/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 60. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 具体的な洗練の振舞い Concrete Refinement Process 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 } 最初の k 個のレポート, 正解を含む クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 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 日(火) 29/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 61. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 具体的な洗練の振舞い Concrete Refinement Process 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 } 最初の k 個のレポート, 正解を含む クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 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 日(火) 29/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 62. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 具体的な洗練の振舞い Concrete Refinement Process 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 } 最初の k 個のレポート, 正解を含む クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ } 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い p 個のフィードバックプール 実験評価 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 日(火) 29/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 63. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 具体的な洗練の振舞い Concrete Refinement Process 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 } 最初の k 個のレポート, 正解を含む クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 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 p 個のフィードバックプール . . . . . . . . . . . . . 2012 年 7 月 4 日(火) 29/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 64. 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 実験評価 Experiment and Evaluation 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 30/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 65. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 評価方法: 平均正解発見率 Evaluation Criteria: APPF: Average Percentage true Positives Found テストケースの優先順位付け領域から借りた概念. 平均障害発見率 (APFD: Average Percentage Faults Detected). 100 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 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 日(火) 31/40 100 APPF=62% APPF=72% 80 80 60 60 40 40 20 20 . 10 20 30 40 50 60 70 80 90 100 . 10 20 30 40 50 60 70 80 90 100 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 66. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 実験の対象と設定 Settings of Empirical Evaluation 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い 名前 バージョン 不具合数 正解数 k p Linux 2.6.19 >800 57 50 1 Eclipse 20070108 >400 38 50 1 ArgoUML >50 15 10 1 実験評価 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 日(火) 32/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 67. 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 実験の結果 Results of the Empirical Evaluation 名前 Linux Top-5 順番の調整 694 → 18, 672 → 64, 760 → 131, 770 → 179,792 → 206 Eclipse 87% 373 → 4, 348 → 11, 394 → 29, 388 → 43, 370 → 49 ArgoUML 86% 40 → 12, 35 → 15, 34 → 11, 29 → 9, 23 → 8 Linux の結果は低いのは, この手法では改名に関する バグが取れない. APPF. 11% 2012 年 7 月 4 日(火) 33/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 68. 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 日(火) 34/40 Top-3 情報利得 Top-3 Information Gain Top 特徴 情報利得 Linux kernel 1 2 3 1 2 3 1 2 3 extern_ definitionP extern_ definition _1P program##extern_ definitionsP Eclipse P BOOL_OR_TK conditional_ or_ expression ## conditional_ or_ expression P BOOL_OR_TKB ArgoUML local_ variable_ declaration_ statement B variable_ initializer B block_ statement ## local_ variable_ declaration_ statement B .. . .. . .. . 0.015941 0.015941 0.015941 0.01898 0.01898 0.01898 0.145772 0.145772 0.145772 . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 69. 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 順番を調整した例: Linux 696 → 18 Example of Re-ordering: Linux 694 → 18 drivers/net/wireless/bcm43xx/bcm43xx_wx.c drivers/net/wireless/bcm43xx/ bcm43xx_sysfs.c 347 struct bcm43xx_private *bcm = dev_to_bcm(dev); 348 mutex_lock(&(bcm)−>mutex); 349 switch (bcm43xx_current_phy(bcm)−>type) { 350 case BCM43xx_PHYTYPE_A: 351 ... 362 default: 363 assert(0) ; 364 } 365 mutex_unlock(&(bcm)−>mutex); 615 struct bcm43xx_private *bcm = bcm43xx_priv(net_dev); 616 ... 618 619 620 621 622 623 632 633 mutex_lock(&bcm−>mutex); mode = bcm43xx_current_radio(bcm)−>interfmode; mutex_unlock(&bcm−>mutex); switch (mode) { case BCM43xx_RADIO_INTERFMODE_NONE: ... default: assert(0) ; 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 35/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 70. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 順番を調整した例: Eclipse 373 → 4 Example of Re-ordering: Eclipse 373 → 4 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 Dynamic Refinement 従来のクローンレポートの静的洗練法 クローンレポートの動的洗練法 動的洗練法の流れ 洗練エンジン Refinement Engine 洗練エンジンの流れ Process of Refinement Engine 特徴抽出: 構文木を構築 特徴抽出: 五つの特徴 特徴抽出: 五つの特徴の例 前処理: 特徴選択 前処理: Data Re-balancing 非ネスト汎化された最も近隣分類法 分類法: 類似度の計算 具体的な洗練の振舞い debug/internal/core/LaunchConfiguration.java 253 if ( file != null ) { 254 // validate edit 255 if ( file .isReadOnly()) { 256 IStatus status = ResourcesPlugin. getWorkspace().validateEdit(new IFile[] { file }, null ) ; 257 if (! status.isOK() ) { 258 throw new CoreException(status); debug/internal/core/ LaunchConfigurationWorkingCopy.java 311 // validate edit 312 if ( file .isReadOnly()) { 313 IStatus status = ResourcesPlugin.getWorkspace(). validateEdit(new IFile[] { file }, null ) ; 314 if (! status.isOK() ) { 315 throw new CoreException(status); 実験評価 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 日(火) 36/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 71. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 出典 Publication 出典 Publication 背景 Introduction 背景 Introduction 既存研究 Related Researches 正解の例 Example of True Positive 誤検出の例 Example of False Positive 不具合があるクローンの誤検出率 コードクローンの四つの象限 順番を調整した例: ArgoUML 40 → 12 Example of Re-ordering: ArgoUML 40 → 12 argouml/uml/diagram/UMLMutableGraphSupport.java argouml/uml/diagram/UMLMutableGraphSupport.java クローンに基づく不具合検出 クローンに基づく不具合検出 動的洗練法 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 331 if (edge instanceof CommentEdge) { 332 ... 333 } else if (Model.getFacade().isARelationship(edge) 334 || Model.getFacade().isATransition(edge) 335 || Model.getFacade().isAAssociationEnd(edge)) { 336 return Model.getUmlHelper().getDestination(edge) ; 337 } else if (Model.getFacade().isALink(edge)) { 338 ... 339 } 360 if (edge instanceof CommentEdge) { 361 ... 362 } else if (Model.getFacade().isAAssociation(edge)) { 363 List conns = new 364 ArrayList (Model.getFacade().getConnections(edge) ); 365 return conns.get(1); 366 } else if (Model.getFacade().isARelationship(edge) 367 || Model.getFacade().isATransition(edge) 368 || Model.getFacade().isAAssociationEnd(edge)) { 369 return Model.getUmlHelper().getDestination(edge) ; 370 } else if (Model.getFacade().isALink(edge)) { 371 ... 372 } 考察, 結論及び今後の課題 妥当性の考察 Threats to Validity 結論と今後の課題 Conclusion and Future Work 2012 年 7 月 4 日(火) 37/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 72. 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 日(火) 38/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 73. 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 妥当性の考察 (と質問) Threats to Validity (and Questions) • APPF は APFD から借りた概念 • 他に使われていない • 本当に Bug であるかとうかは検証していない • 人間で目で見て判断した • 後のバージョンに修正したかを検証していない (質問) • 3つのシステムしかない • C と Java しかない, 他の言語に対応できるか? • 古いバージョンを使った原因は? (質問) • Linux と Eclipse の実験の一部は 2007 に発表した研究. 今回追加したのは ArgoUML. • Long-term-service ではないから, バグが多いかも 2012 年 7 月 4 日(火) 39/40 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 74. 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 日(火) 40/40 結論と今後の課題 Conclusion and Future Work 結論 • クローンバグレポートの動的な洗練法を提案した • この方法について, 評価方法 APPF を採用された • Linux, Eclipse, ArgoUML の3つのシステムで実 験を行った. • 結果はそれぞれ 11%, 87%, 86% 今後の課題 • 他のソフトウェアに対応してみたい • バグレポート以外の不具合レポートに対応してみ たい .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 75. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 2012 年 7 月 4 日(火) 41/40 私の研究との比較 Comparing with My Research この手法 着目点 バ グ を 不 具 合 ク ローンから見つけ クローン 構文木 Type-3 学習特徴 木 の Node, Edge の数と割合 分類法 非ネスト汎化された 最も近隣 NNGe 評価方法 平 均 正 解 発 見 率 APPF 私の研究 人 に よっ て 判 断 の 差異 トークン列 Type-2 トー ク ン の 型 の tfidf Cosine-Similarity の重み付き平均数 訓 練 集 合 -正 確 率 の図 .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 76. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 特徴抽出: 五つの特徴の定義 . Feature Extraction: Defination of 5 features 定義: 基本的な特徴 (Basic Features) (t, |CS|), 若し CS = {c ∈ CG|cにtタイプが存在する} ∧|CS| > 0 定義: 対の特徴 (Pair Features) (t1 , t2 , |CS|), 若し CS = {c ∈ CG|∃n1 ,n2 ∈c n1 と n2 は連結されている ∧ n1 のタイプは t1 ∧ n2 のタイプは t2 } ∧ |CS| > 0 定義: 基本的な特徴の割合 (Proportional FeaturesーBasic) 2012 年 7 月 4 日(火) 42/40 |CS| (t, |CG| ), 若し CS = {c ∈ CG|cにtタイプが存在する} ∧|CS| > 0 定義: 対の特徴の割合 (Proportional FeaturesーPair) |CS| (t1 , t2 , |CG| ), 若し CS = {c ∈ CG|∃n1 ,n2 ∈c n1 と n2 は連結されている ∧ n1 のタイプは t1 ∧ n2 のタイプは t2 } ∧ |CS| > 0 定義: 他の特徴 クローンの数 |CG|, クローンの平均サイズ ∑ c∈CG |CG| |C| .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .
  • 77. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 参考文献 I Reference 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. L. Jiang, Z. Su, and E. Chiu, ``Context-based detection of clone-related bugs,'' in ESEC/FSE, vol. 2007, 2007. 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. 2012 年 7 月 4 日(火) 43/40 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. 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. M. Kantardzic, Data mining: concepts, models, methods, and algorithms. 2011. Wiley-IEEE Press, 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. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. .
  • 78. Active Refinement of Clone Anomaly Reports 大阪大学大学院 CS 専攻 楊 嘉晨 参考文献 II Reference D. Wettschereck and T. Dietterich, ``An experimental comparison of the nearest-neighbor and nearest-hyperrectangle algorithms,'' Machine Learning, vol. 19, no. 1, pp. 5--27, 1995. S. Salzberg, ``A nearest hyperrectangle learning method,'' Machine learning, vol. 6, no. 3, pp. 251--276, 1991. 2012 年 7 月 4 日(火) 44/40 S. Tan, ``An effective refinement strategy for knn text classifier,'' Expert Systems with Applications, vol. 30, no. 2, pp. 290--298, 2006. B. Martin, ``Instance-based learning: nearest neighbour with generalisation,'' Ph.D. dissertation, University of Waikato, 1995. .. . .. . .. . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. .