Transcript J - qwik.jp
Detecting Similar Software Applications Collin McMillan, Mark Grechanik, and Denys Poshyvanyk 紹介: 大阪大学大学院情報科学研究科 コンピュータサイエンス専攻 楠本研究室 堀田 圭佑 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 研究概要 • “似ている”ソフトウェアを見つける – 例:過去のプロジェクトの中から,新規プロジェクトと 似ているプロジェクトを見つける • 再利用により,開発に要する時間や資源を削減可能 • 過去の類似プロジェクトによって得た知識,経験が活用でき る • 貢献 – API呼び出しに着目した,Javaプログラム間の類似度 算出手法を提案 – それを実装したツール,CLANを開発 – 既存ツール MUDABlue よりも高精度で似ているソフ トウェアを特定できることを確認 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 提案手法の概要 • アプローチ 既存研究 ソースコード中のキーワード(変数名など)に基づく テキストベースの類似度算出 本研究 呼び出されているAPIに着目した類似度算出 • キーアイデア – 2つのソフトウェアが同じAPI呼び出しを含むならば, そうでない場合よりも類似度が高い – 多くのソフトウェアから呼ばれるAPIは重要度が低く, 少数のソフトウェアから呼ばれるAPIは重要度が高い – 2つのソフトウェアが同じAPI呼び出しパターンを含む ならば,そうでない場合よりも類似度が高い KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 評価方法 • 33人の被験者を使った実験 • 比較対象 – MUDABlue,Combined(MUDABlue & CLAN) • 手順 – ある1つのソフトウェアを入力として,CLAN, MUDABlue,Combined のそれぞれを使って類似 ソフトウェアを検出させる – そのうち上位10のソフトウェアを対象として選択 – 被験者が10のソフトウェアそれぞれについて,入 力となったソフトウェアとの類似度を評価 • 1~4の4段階 (4が一番類似度が高い) KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 評価実験の結果 比較する手法 帰無仮説 『差がない』 が有意水準5%で棄却されたかどうか Reject : 棄却 = 統計的有意差あり Accept : 棄却されず = 統計的有意差なし 評価指標 C: Confidence Level P: Precision Confidence Level が3以上のソフトウェア数 全ソフトウェア数(今回は10) MUDABlue よりも 高い Confidence Level 高い精度 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Content Classification of Development Emails Alberto Bacchelli, Tommaso Dal Sasso, Marco D’Ambros, Michele Lanza University of Lugano 紹介:大阪大学 大学院情報科学研究科 井垣 宏 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Motivation JUNK Figure 1 • ML archivesにはシステ ムを理解するために必 自然言語 要な履歴や設計理念等 の重要な情報が埋まっ ている Stack Trace • 一つのメールの中に複 数種類のコンテンツが含 JUNK まれることを想定して解 析しなければならない ソースコード Patch KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Mailpeekを用いたML Archiveの分析 • ArgoUML, Freenet等 を対象として著者ら の開発したツールに よってmailの分析を 行った Figure 2 – コンテンツ分類の 粒度確認 ->ほぼ行単位でOK – 分類項目の 妥当性確認 ->現状の項目で 分類できなかった 部分は全体の0.2% KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 行単位での分類結果(手作業) • どんなプロジェクトでも自然言語が一番多い – JUNKも同様 • それ以外の項目はプロジェクトによって異なる KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 実験結果 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Classification Approach • Term Based Classification – Words, Punctuation, Bi-grams, Context • Parsing Based Classification – Stack Trace, Patch, Source Code, Junk KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 実験結果 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Conclusion • 機械学習手法とパーサーを組み合わせた行単 位でのメール分類手法を提案した – NL text, source code, stack traces, code patches, and junk KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Active Refinement of Clone Anomaly Reports Lucia, David Lo, Lingxiao Jiang, and Aditya Budi School of Information Systems Singapore Management University 紹介:大阪大学 大学院情報科学研究科 井垣 宏 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 研究背景 • ソフトウェア中の互いに類似するコード片 = コードクローン • コードクローンを利用した重要なアプリケーショ ンの一つにバグ検出がある – clone-based anomaly detection • コードクローン間のinconsistenciesを如何に検出するか KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Inconsistency among clones Figure 1 If(dentry) anomaly • クローンとその周辺コードの一貫性やクローン間の 一貫性を調査することで,”anomaly”を検知する [12] L. Jiang, Z. Su, and E. Chiu, “Context-based KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ detection ofand clone-related bugs,” in ESEC/SIGSOFT FSE, 2007. Inconsistency among clones Figure 2 • クローンとその周辺コードの一貫性やクローン間の 一貫性を調査することで,”anomaly”を検知する • false positives(問題のないクローンが問題があると 指摘される)が非常に多い – [12]の研究では,57/800 [12] L. Jiang, Z. Su, and E. Chiu, “Context-based KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ detection ofand clone-related bugs,” in ESEC/SIGSOFT FSE, 2007. Active Refinement of Clone Anomaly Reports • 既存のClone based Anomaly Detection Toolの結 果をユーザのフィードバックに基いて改善する – True Positiveを上位に,False Positiveを下位に移動 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Active Refinement of Clone Anomaly Reports • 既存のClone based Anomaly Detection Toolの 結果をユーザのフィードバックに基いて改善する – True Positiveを上位に,False Positiveを下位に移動 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 評価実験 • Linux Kernel: 11%改善 – 変数名等の識別子の名前変更に関するinconsistencyが多かった – 提案手法における分類手法が構文木に基づくものであるため,対応 できなかった • Eclipse: 87%改善 • ArgoUML:86%改善 Table II ただし,True Positiveであると判定されたものが本当にバグに 関連するものであるかは著者らによる判断 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ Identifying Linux Bug Fixing Patches Yuan Tian, Julia Lawall, and David Lo Singapore Management University, Singapore INRIA/LIP6-Regal, France 紹介:大阪大学 大学院情報科学研究科 肥後 芳樹 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 研究背景 • ソフトウェアの開発には2つの重要な課題がある – 新しい機能の追加 – 安定性 • しかし,これらを同時に実現するのは難しい.Linuxで は,currentとlongterm supportの2つのバージョン – 前者にはさまざまな変更 – 後者はbug fix のみ • patchの多くはcurrentに対して作られる.しかし bug fix patchはlongterm supportに対しても適用すべき – Current用のpatchの中からbug fix patchを自動的に見つけ たい KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 提案手法(1/2) 1. Data Acquisition – Gitのリポジトリから各patchのログ情報とコード情 報を(ファイル,削除コード,追加コード)取得 2. Feature Extraction – (1) コミットログを構成している重要そうなwordsの 集合を抽出する(stop-wordの除去,stemming). また各wordsの出現回数をカウント – (2) コード情報から,変更された字句のみを特定. そして変更されたのがプログラムのどの部分かを 特定(loop?演算子?if文?).変更回数もカウント KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 提案手法(2/2) 3. Model Learning – LPUとSVMを組み合わせた機械学習 – 既知のbug fix patches とbuf fix かどうかを特定し たいpatchesが入力 – LPUを使って調査対象patchesをソート.下位のk 個がbug fix ではないと判断される – bug fix ではないと判断されたpatchesを用いて SVMを利用 4. Bug Fix Identification – SVMの適用結果より bug fix patchesがわかる KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/ 実験結果 論文の表4 論文の表5 F-measureの計算式 KUSUMOTO LABORATORY - Software Design Laboratory Department of Computer Science, Graduate School of Information Science and Technology, Osaka University. http://sdl.ist.osaka-u.ac.jp/