1 / 21

LSA 手法を用いたソフトウェア変更情報のクラスタリング手法

LSA 手法を用いたソフトウェア変更情報のクラスタリング手法. 井上研究室 博士前期課程 2 年 今枝 誉明. 研究の位置付け. ソフトウェア開発・保守コストの増大 ⇒ 版管理システムなどの活用 ソフトウェアを効率よく開発・管理 過去の開発情報を参考にして,開発・保守を効率化 開発者が必要とする情報を的確に取得するのは困難 蓄積された情報は膨大 版管理システムに蓄積された 変更記録の間の関連を抽出する. 開発情報が 蓄積される. 発表構成. 版管理システム 問題点と本研究の目的 提案手法 適用事例 まとめと今後の課題. チェック アウト.

ami
Download Presentation

LSA 手法を用いたソフトウェア変更情報のクラスタリング手法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LSA 手法を用いたソフトウェア変更情報のクラスタリング手法 井上研究室 博士前期課程 2 年 今枝 誉明 コンピュータサイエンス専攻 修士論文発表会

  2. 研究の位置付け ソフトウェア開発・保守コストの増大 ⇒ 版管理システムなどの活用 • ソフトウェアを効率よく開発・管理 過去の開発情報を参考にして,開発・保守を効率化 開発者が必要とする情報を的確に取得するのは困難 • 蓄積された情報は膨大 版管理システムに蓄積された 変更記録の間の関連を抽出する 開発情報が 蓄積される コンピュータサイエンス専攻 修士論文発表会

  3. 発表構成 • 版管理システム • 問題点と本研究の目的 • 提案手法 • 適用事例 • まとめと今後の課題 コンピュータサイエンス専攻 修士論文発表会

  4. チェック アウト コミット 版管理システム C B A A B C 変更 せず A' B' 変更 変更 「~の欠陥を 修正した」 C B’ A’ リポジトリ 版管理システムの用語 • リビジョン: コミット時にリポジトリに作成される,ファイルの状態 • リビジョンには連続した番号 (リビジョン番号) が割り振られる • コミットトランザクション: コミット時の変更群 • コミットログ: コミット時に付記できる,変更理由等を記述した文章 コンピュータサイエンス専攻 修士論文発表会

  5. 発表構成 • 版管理システム • 問題点と本研究の目的 • 提案手法 • 適用事例 • まとめと今後の課題 コンピュータサイエンス専攻 修士論文発表会

  6. 変更記録を参考にする際の問題点 • システムに蓄積された過去の変更を参考にする 例) 「あの時の欠陥修正ではどのような変更を施したのだろう?」 ↓ • 同時に参照すべき変更が存在することがある • その変更の影響で,他の箇所が変更されていた • その変更で欠陥を混入させてしまい,後に修正されていた • そのまま参考にすると同じ欠陥を混入させてしまう 変更を個別に見るだけでは誤解が生じうる ⇒ 開発者は関連する変更を把握する必要がある コンピュータサイエンス専攻 修士論文発表会

  7. 目的と方針 関連する変更を抽出する • ある変更と同時にどんな変更がなされているか • ある変更が後に何処に影響を与えているか 蓄積された変更を何らかの方法でグループ化する • コミットログや変更箇所中に出てくる単語に着目 方針: 変更作業を特徴付けて いるのでは? 識別子, コメント文等 変更理由等 コンピュータサイエンス専攻 修士論文発表会

  8. 発表構成 • 版管理システム • 問題点と本研究の目的 • 提案手法 • 適用事例 • まとめと今後の課題 コンピュータサイエンス専攻 修士論文発表会

  9. 提案手法の概要と流れ 変更を,単語に着目してクラスタリングする • 版管理システムのリポジトリから,コミットトランザクションを取り出す • 潜在的意味解析手法 (LSA) によりトランザクション間の類似度を算出し,クラスタリングする リポジトリ トランザクション クラスタ コンピュータサイエンス専攻 修士論文発表会

  10. 手順 1コミットトランザクションの取り出し トランザクション抽出 直前のリビジョンから削除された行 -if (0 <= value) { +if (0 <= value && value < 10) { …… 直前のリビジョンから追加された行 リポジトリ 変更情報 ・ コミットログ ・ 変更内容 (差分)  等 トランザクション (同時にコミット された変更群) の集合 コンピュータサイエンス専攻 修士論文発表会

  11. 手順 2トランザクションのクラスタリング • LSA を用いて,トランザクション間の類似度を計算 • クラスタリング (階層的クラスタリング手法) 2.1.クラスタ集合の中から,類似度が最大となるクラスタの組 C,D を求める 2.2. C,D の類似度がある閾値以下ならば,クラスタリング終了 2.3.クラスタ C,D を統合し 1 つのクラスタとし,繰り返す トランザクションの クラスタリング トランザクションの集合 クラスタの集合 コンピュータサイエンス専攻 修士論文発表会

  12. ベクトル (文書ベクトル) 間の cosine 尺度により, 文書間の類似度を求める 2 2 0 0 3.2 2.1 0.4 -0.3 3 1 1 0 2.2 1.6 0.6 0.2 ベクトル (文書ベクトル) 間の cosine 尺度により, 文書間の類似度を求める 0 1 1 0 0.7 0.5 0.7 0.7 LSA 適用 0 0 2 1 -0.1 0.2 2.5 2.8 潜在的意味解析 (LSA) • LSA: Latent Semantic Analysis • 情報検索 (Information Retrieval) の分野で用いられる,ベクトル空間モデルに基づく手法 • LSA の効果 • 文書間の類似度がより鮮明になる • 間接的に関連している文書間の類似度も高くなる トランザクション コミットログ・変更内容 (差分) に 出現する単語 ベクトル空間モデルにおける文書間の類似度計算 LSA を用いた文書間の類似度計算 単語 A 単語 B 単語 C 単語 D 文書 1 文書 2 文書 3 文書 4 コンピュータサイエンス専攻 修士論文発表会

  13. 発表構成 • 版管理システム • 問題点と本研究の目的 • 提案手法 • 適用事例 • まとめと今後の課題 コンピュータサイエンス専攻 修士論文発表会

  14. 開発期間 2003 年 3 月 ― 2006 年 1 月 開発言語 C/C++ 総リビジョン数 2795 総トランザクション数 834 総ファイル数 345 適用事例 本手法により関連のある変更群が抽出できるかを確認する • 適用対象: ソフトウェア部品検索システム SPARS-J† クラスタリング終了のための類似度閾値: 0.8 ⇒ 複数トランザクションからなるクラスタ数: 116 † 横森,梅森,西,山本,松下,楠本,井上: ”Java ソフトウェア部品検索システム SPARS-J”, 電子通信情報学会論文誌 D-I, Vol.J87-D-I, No.12, 2004 コンピュータサイエンス専攻 修士論文発表会

  15. 適用方針 複数のトランザクションからなるクラスタに関して,そのトランザクション間の関連により,以下の 7 つに分類 クラスタ内のトランザクションを 同時に参照することが 望ましいと考え,有用と判断 有用でないと判断 コンピュータサイエンス専攻 修士論文発表会

  16. 適用結果 複数のトランザクションからなるクラスタに関して,そのトランザクション間の関連により,以下の 7 つに分類 計 64 クラスタ (55.2%): 有用なクラスタを抽出できた コンピュータサイエンス専攻 修士論文発表会

  17. 変更 SPARS/src/DB/db_common.c (2004/08/25) +u_int8_t *ai; +ai = a->data + a->size – 1; 「欠陥修正」分類のクラスタの一例 トランザクション • 3 つのトランザクション • からなるクラスタ (抜粋) • データベース操作時に必 •   要な比較関数の定義 • 1. 変数 aiは u_int8_t * •   型と宣言 • 2. キャストを行うよう修正 • 3. キャストが間違っていたた •   め更に修正 … (省略) … SPARS/src/DB/db_common.c (2004/12/14) -ai = a->data + a->size – 1; +ai = (u_int8_t)a->data + a->size – 1; 比較関数の欠陥修正に 関連のある変更集合を 抽出できた SPARS/src/DB/db_common.c (2004/12/14) -ai = (u_int8_t)a->data + a->size – 1; +ai = (u_int8_t *)a->data + a->size – 1; コンピュータサイエンス専攻 修士論文発表会

  18. 考察 • 関連のある変更群を含むクラスタを生成できた • 識別子を共有している • 変更内容が似ている • 関連のない変更からなるクラスタも生成された • avoid, files, version 等の単語のみを共有している • 仕様変更により,変更箇所がインデントされている コンピュータサイエンス専攻 修士論文発表会

  19. 発表構成 • 版管理システム • 問題点と本研究の目的 • 提案手法 • 適用事例 • まとめと今後の課題 コンピュータサイエンス専攻 修士論文発表会

  20. まとめと今後の課題 • 版管理システム中に蓄積された,関連する変更のクラスタリング手法を提案 • 変更内容に出現する単語に着目 • 実際のソフトウェアに対して適用 • 単語に基づく手法の有用性・問題点を確認 • 今後の課題 • 単語の抽出・除去手法の確立 • 閾値決定方法の確立 • 定量的な評価 コンピュータサイエンス専攻 修士論文発表会

  21. 終わり コンピュータサイエンス専攻 修士論文発表会

More Related