Presentation is loading. Please wait.

Presentation is loading. Please wait.

ICSE 2011 Comprehending the Drift II

Similar presentations


Presentation on theme: "ICSE 2011 Comprehending the Drift II"— Presentation transcript:

1 ICSE 2011 Comprehending the Drift II
東工大 佐伯研(incl. OB) 先鋒 Sirinut Thangthumachit 中堅 林 晋平 大将 風戸 広史

2 Non-Essential Changes in Version Histories by D. Kawrykow and M. P
Non-Essential Changes in Version Histories by D. Kawrykow and M. P. Robillard 大事な変更は Non-Essential変更と一緒に行われることが多い Non-Essential 変更はどれくらい行われるか ソースコード差分とメソッドの更新にどれくらい影響があるか 本研究の貢献 Non-Essential 変更を版管理履歴から抽出するツールの構築 7 OSS 内の 変更セットに適用 2.8~22.9% は Non-Essential 2.6~15.5% のメソッド更新は Non-Essential Non-Essential変更の影響を明らかにした Essential = 本質的なさま。絶対必要なさま。不可欠。

3 Non-Essential Differences
Trivial Type Updates Rename Refactorings Trivial = 〈事・物が〉ささいな,取るに足らない,瑣末(さまつ)的な,〈人が〉浅薄な,つまらない Trivial Keyword Modifications Local Variable Extractions Whitespace and Documentation Updates Non-Essential Changes in version Histories, p.2

4 DiffCAT 入力: 版管理ツールからの二つのバージョンの情報
出力: Non-Essential 変更の情報、構造変更の情報、Non-Essential変更が含まれていないAST SemDiff と PPA を利用し、入力を準備 ChangeDistiller で Method と Field の Rename Refactoring を抽出 独自の手法で Class と LocalVariable の Rename Refactoring を抽出 名前変更されたクラスを同じ名前にして、その中の Rename Refactoring を抽出 すべての Rename Refactorings を逆適用 もう一度 ChangeDistiller を適用し、構造の変更を抽出

5 評価 Non-Essentialは2.8-22.9% 本手法では Precisionが10.5%増 メソッド更新の9%
(Zimmermann et al., 2005) 本手法では Precisionが10.5%増 93,576 x = 20,501 81,162 x = 19,631 → 4.2%減 メソッド更新の9% Non-Essential Changes in version Histories, Table 2, 3, 5

6 Aspect Recommendation for Evolving Software by T. T. Nguyen, H. V
Aspect Recommendation for Evolving Software by T. T. Nguyen, H. V. Nguyen, H. A. Nguyen, and T.N. Nguyen いわゆるアスペクトマイニング手法 既存手法との違い: 「Non-AO → AO」だけでなく,すでに AO なプログラムの進化の過程でのマイニングにも注目 貢献 新しいアスペクト推薦アルゴリズム XScan AO/Non-AO 両種類のプログラムに適用可能 スケーラブルで高精度なツールの実現 複数の実システムで評価

7 基本的な考え方 メソッド呼出によるインタラクションに注目 Concern peer: インタラクションの類似度が閾値以上のメソッド対
内的(呼出元に注目),外的(呼出先に注目),プロクシ外的 (overrideの影響) Concern peer: インタラクションの類似度が閾値以上のメソッド対 類似度: 3インタラクション集合の類似度の重みつき和 集合内の各インタラクションの一致もインタラクション類似度に基づく → 止まらない再帰.近似アルゴリズムを利用 public class BankAccount { Database db; public void deposit(double value) { db.lock(); ResultSet r = db.execute(…); db.unlock(); } public void withdraw(double value) { } … 呼び出し元 BA.deposit 呼び出し先 DB.execute 後呼び出し {DB.unlock} 前呼び出し {DB.lock} BA.deposit の内的インタラクション集合: { (DB.execute, {DB.unlock}, {DB.lock}) } BA.withdraw の内的インタラクション集合: { (DB.execute, {DB.unlock}, {DB.lock}) } DB.execute の外的インタラクション集合: { (BA.deposit, {DB.unlock}, {DB.lock}), (BA.withdraw, {DB.unlock}, {DB.lock}) }

8 アスペクトの推薦 Peer の候補を抽出 Peer候補のスキャン Peerグラフの探索 推薦
クローン検出器 Clever [ASE09] による類似メソッド対 名前の似た(語の列として見てLCSの長い)メソッド対 共通のメソッドをoverrideするメソッド対 Peer候補のスキャン 既知のデータを使ってPeer候補の類似度を計算しソート 閾値以上の類似度をもつものはPeerとして確定させ,以降の類似度計算に反映させる Peerグラフの探索 Peer関係を枝とするグラフの島(Peer groups)をアスペクトとみなす 外的インタラクションを多く持つものを高くランク付け 推薦 Non-AO → AO: ふつうに推薦 AOプログラムの更新: 既存アスペクトを展開し,検出結果と比較

9 評価 速い: Peer検出は多くの対象で2分以下 正確: CBFA [ASE08]を相手に JHotDraw で比較 更新もうまくいった:
全時間で支配的なのは内部で使うクローン解析 正確: CBFA [ASE08]を相手に JHotDraw で比較 AO実装である AJHotDraw を正解として使っている 更新もうまくいった: 多くのカバレッジ(recall) は100% Aspect Recommendation for Evolving Software, Table 7より引用

10 Identifying Program, Test, and Environmental Changes That Affect Behaviour by R. Holmes and D. Notkin 目的 ソフトウェアが意図したとおりに変更できたか (想定外の動作がないか) を確認する おもな貢献 動的/静的な呼び出し依存性の差分解析を組み合わた依存性の新たな分類手法を提案、実装 依存性の分類のうち、プログラマの興味を惹くもの、無視してよいものを識別 3つの OSS のソースコード改版履歴へ適用し、興味を惹く依存性は全体の 1 % より小さいことを示した 商用システム開発の 1 スプリント (2週間) を通じて適用し、提案手法の分類が実際に役立つことを確認

11 例題 呼び出しの依存性を隣接バージョン間で比較 V1S V2S V1D V2D 静的解析 動的解析 変化なし 追加
R. Holmes, D. Notkin: “Identifying Program, Test, and Environmental Changes That Affect Behaviour”, In Proc. ICSE 2011, Figure 2 より引用

12 提案手法 静的解析 (s), 動的解析 (d) による依存性集合を組み合わせて、4集合ベン図の15区画に分類 区画をさらに分類
追加(+), 削除(-), 変化なし(無印) 区画をさらに分類 Inconsistent Consistent Not executed Unchanged Unlikely R. Holmes, D. Notkin: “Identifying Program, Test, and Environmental Changes That Affect Behaviour”, In Proc. ICSE 2011, Figure 1 より引用

13 評価 無視してよい 依存性 (99.94%) 3つのOSS, 最新の各10チェンジセットに適用
R. Holmes, D. Notkin: “Identifying Program, Test, and Environmental Changes That Affect Behaviour”, In Proc. ICSE 2011, Table 2 より引用


Download ppt "ICSE 2011 Comprehending the Drift II"

Similar presentations


Ads by Google