Javaソフトウェア部品検索システムSPARS-Jの実験的評価

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
Advertisements

電子書籍の検索機能の改善 木下研究室 201002713 鴫原 善寿. 背景 スマートフォンなどの携帯端末の普及と ともに電子書籍に注目が浴びた。中でも amazon の kindle など電子書籍の専用端末も 現れた。 電子書籍はデータなので本棚もいらず、 持ち運びも容易になるなど様々な恩恵を もたらした。
ユーザーイメージ収集 インターフェイスの開発
シーケンス図の生成のための実行履歴圧縮手法
利用実績に基づくソフトウェア部品検索システムSPARS-J
情報爆発A01支援班 マイサーチエンジン開発環境支援グループ 中村聡史, 大島裕明, 田中克己, 喜連川優
卒業論文 最終発表 WWW情報検索 ナビゲーションシステムの設計と実装
大阪教育大学大学院教育学研究科 総合基礎科学専攻 中窪 仁
PlanetLab における 効率的な近隣サーバ選択法
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
プログラム静的解析手法の効率化と 解析フレームワークの構築に関する研究
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
プログラム実行履歴を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
オブジェクト指向プログラムのための 動的結合メトリクスの評価
Javaソフトウェア部品 解析・検索システムSPARS-Jの構築
メソッド間の依存関係を利用した プログラム理解支援手法の提案と実現
Javaクラスの利用関係を用いた ソフトウェア部品のカテゴリ階層構築法
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
識別子の共起関係に基づく類似コード検索法の提案と 欠陥検出への適用
ソードコードの編集に基づいた コードクローンの分類とその分析システム
Javaソースコード蓄積・ 検索システムSPARS-Jの概要
ソースコードの特徴語を用いた Javaソフトウェア部品の 自動分類システム
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
動的情報を利用したソフトウェア 部品評価手法
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
ソフトウェア部品分類手法への コンポーネントランク法の応用
環境リスクマネジメントに関する 検索システム
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
Javaプログラムの変更を支援する 影響波及解析システム
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
利用実績に基づくソフトウェア部品検索システムSPARS-J
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
Javaを対象としたソフトウェア部品 検索システムSPARS-Jの実験的評価
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
コードクローンの動作を比較するためのコードクローン周辺コードの解析
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
ソフトウェア保守のための コードクローン情報検索ツール
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
ソフトウェアプロダクト集合に対する 派生関係木の構築
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
メソッドの同時更新履歴を用いたクラスの機能別分類法
A-17 検索履歴のプライバシーを秘匿した ユーザクラスタリング
GbEにおける TCP/IP の研究について
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
ソフトウェア理解支援を目的とした 辞書の作成法
Webページタイプによるクラスタ リングを用いた検索支援システム
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
コードクローン解析に基づく デザインパターン適用候補の検出手法
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
Presentation transcript:

Javaソフトウェア部品検索システムSPARS-Jの実験的評価 井上研究室 梅森 文彰

研究の背景 ソフトウェア開発の大規模化・複雑化 Javaソフトウェア部品検索システムSPARS-J 生成されたソフトウェアを再利用したり,管理する機会が増えた Javaソフトウェア部品検索システムSPARS-J ソフトウェア部品検索システムの必要性 2003年度修士学位論文発表会 2004/2/20

SPARS-J (Software Product Archive, analysis Retrieval System for Java) 部品を解析し,自動的に情報を抽出 出現キーワード,利用関係,メトリクス 検索要求と検索結果 キーワード型の検索 検索結果表示の工夫 キーワードの出現頻度や部品の利用関係に基づく順位付け 類似部品のグループ化 2003年度修士学位論文発表会 2004/2/20

研究の目的 ソフトウェア部品の効率的な検索により, SPARS-Jに対して実験的評価を行い,システムの有効性を検証する 有用なソフトウェア部品の再利用 ソフトウェア部品の管理や理解を支援 SPARS-Jに対して実験的評価を行い,システムの有効性を検証する 2003年度修士学位論文発表会 2004/2/20

評価にあたっての問題点 検索システムの順位付け性能評価 評価用のテストコレクションを用いれば容易 ソフトウェア部品検索システムを対象としたテストコレクションは存在していない 言語,部品の単位等の違いにより,テストコレクションの構築が非常に困難 独自の評価実験を適用する 2003年度修士学位論文発表会 2004/2/20

実験の内容 他の検索システムとの比較 SPARS-Jの各順位付け手法の比較 実際の開発環境におけるSPARS-Jの適用実験 各順位付け手法を比較し,最も妥当な順位付け手法を調査する 実際の開発環境におけるSPARS-Jの適用実験 企業において実際に利用してもらうことで,ソフトウェアの管理や理解に有用であることを確認する 2003年度修士学位論文発表会 2004/2/20

実験1. 他の検索システムとの比較 実験の目的 比較対象 評価尺度 実験1.  他の検索システムとの比較 実験の目的 一般的な検索システムとの比較により,SPARS-Jのソフトウェア部品検索システムとしての有効性を検証する 比較対象 Google:Webページ検索システムで,様々な目的の検索に利用される Namazu:信頼性の高い全文検索システム 評価尺度 適合率:検索結果のうちの適合部品数の割合 割合が高いほど,検索結果に利用できる部品が多く含まれる 2003年度修士学位論文発表会 2004/2/20

実験1. 他の検索システムとの比較 準備 手順 データベース 検索キーワード 実験1.  他の検索システムとの比較 準備 データベース SPARS-JとNamazuに関しては, JDKおよびWeb上で公開されているソースコード(約14万個のソースファイル)で構築 Googleは公開されている検索エンジンをそのまま用いる 検索キーワード 簡単なシステムの開発を想定したクエリを10個用意する 手順 各検索システムの検索結果上位10件の部品を対象として,適合率を求める 2003年度修士学位論文発表会 2004/2/20

実験1の結果 各検索システムの適合率の比較 CR KR CR+KR Google Namazu A 1 0.7 0.9 B 0.4 0.6 keyword CR KR CR+KR Google Namazu A 1 0.7 0.9 B 0.4 0.6 C 0.5 0.3 D 0.8 E 0.1 F 0.2 G H I J Ave. 0.65 0.72 0.73 0.46 2003年度修士学位論文発表会 2004/2/20

実験1の評価 対応のある平均値の差の検定 SPARS-Jは他の検索システムより,ソフトウェア部品を検索するときに有用である 有意水準5%で以下の有意差が見られた 適合率 SPARS-J(CR,KR,CR+KR) ≫ Namazu ≫ Google SPARS-Jは他の検索システムより,ソフトウェア部品を検索するときに有用である 2003年度修士学位論文発表会 2004/2/20

実験2. SPARS-Jの各順位付け手法の比較 実験目的 各順位付け手法を比較し,最も妥当な順位付け手法を調査する SPARS-Jでは3種類の評価手法による順位付け機能を実現 利用関係をもとにした評価手法(CR) キーワードの出現頻度をもとにした評価手法(KR) 1.2.の手法を統合した評価手法(CR+KR) 評価尺度 適合率:検索結果のうちの適合部品数の割合 割合が高いほど,検索結果に利用できる部品が多く含まれる ndpm値:ユーザの順位付けとシステムの順位付けの違い 値が小さいほど,理想的な順位付けと言える 2003年度修士学位論文発表会 2004/2/20

ndpm値の計算方法 検索文書集合の全てのペア(d,d’)における,システムとユーザで順位付けが異なるペア数(m)の割合 計算例 2003年度修士学位論文発表会 2004/2/20

実験2. SPARS-Jの各順位付け手法の比較 準備 データベース (実験1と同じ)14万個のソースコード群から構築 検索キーワード (実験1と同じ)10個のクエリを用いる 手順 各順位付け手法の検索結果上位10件の部品を対象として適合率を求める 評価実験1の結果を用いる 各順位付け手法による検索結果の全ての部品を対象として,ユーザの想定する理想的な順位付けとのndpm値求める 2003年度修士学位論文発表会 2004/2/20

実験2の結果 適合率 ndpm値 CR KR CR+KR A 1 0.036 0.048 0.037 B 0.194 0.261 0.221 keyword CR KR CR+KR A 1 0.036 0.048 0.037 B 0.194 0.261 0.221 C 0.5 0.133 0.117 0.092 D 0.4 0.9 0.8 0.123 0.200 0.189 E 0.208 0.192 F 0.2 0.184 0.160 G 0.081 0.103 0.080 H 0.047 0.109 0.052 I 0.6 0.7 0.210 0.324 0.267 J 0.219 0.243 0.114 Ave. 0.65 0.72 0.73 0.143 0.178 0.141 2003年度修士学位論文発表会 2004/2/20

実験2の評価 対応のある平均値の差の検定 CR法:ユーザの想定した順位で並んでいる KR法:上位に適合部品が多く存在しやすい 有意水準5%で以下の有意差が見られた 適合率 KR,CR+KR ≫ CR ndpm値 CR,CR+KR ≫ KR CR法:ユーザの想定した順位で並んでいる KR法:上位に適合部品が多く存在しやすい CR法とKR法を統合することで適合率とndpm値の両方で優れた順位付けを行うことができる 2003年度修士学位論文発表会 2004/2/20

実験3. 企業内のソフトウェアに対する適用実験 実験3.  企業内のソフトウェアに対する適用実験 実験目的 企業において実際に利用してもらうことで,ソフトウェアの管理や理解に有用であることを確認する 実験内容 検索結果における適合率・ndpm値の評価 SPARS-Jついての定性的な評価 企業内のソフトウェア開発・保守を行っている従業員7名に対して,SPARS-Jについてのアンケートを実施 2003年度修士学位論文発表会 2004/2/20

アンケートの結果 (良 5 4 3 2 1 悪) A B C D E F G 最頻値 パッケージブラウザの利用 5 同グループのクラスの参照 5,4 検出されたクラスを利用しているクラスの参照 検出されたクラスが利用しているクラスの参照 1 クラスのメトリクス値 4,1 ソースコードがダウンロード機能 時間的コストの削減 5,3 ソフトウェア品質の向上 企業内のソフトウェア把握 5,3,1 検索結果一覧表示の見やすさ ハイライト表示の見やすさ 2003年度修士学位論文発表会 2004/2/20

アンケートの評価 特に評価の高かった点 その他の意見 パッケージブラウザの利用 同グループの参照 利用・被利用クラスの参照 検索結果一覧・ハイライト表示の見やすさ その他の意見 部品を利用しているアプリの把握 部品改訂時の影響範囲の調査 ソフトウェア部品の把握が容易となるということを意味しており,保守作業の支援に繋がっていると言える 2003年度修士学位論文発表会 2004/2/20

実験結果の考察 検索結果の順位付け性能と使い勝手について評価を行った 他の検索システムとの比較 SPARS-JはJavaソフトウェア部品検索に特化している ソースコードの構文解析を行うことで高性能な順位付け SPARS-Jの各順位付け手法の比較 CR+KRは,CRとKRの両方で良い評価値を得た部品が上位に順位付けされる 企業内のソフトウェアに対する適用 実際の開発・保守時には,検索の機能だけではなく,利用関係追跡などの機能が有用 SPARS-Jはソフトウェア部品の検索に有用であり,また部品の把握や管理にも非常に役に立つシステムである 2003年度修士学位論文発表会 2004/2/20

まとめと今後の課題 ソフトウェア部品検索システムSPARS-Jの実験的評価 今後の課題 他の検索システムとの比較 GoogleとNamazuより優れている SPARS-Jの各順位付け手法の比較 CR・KRそれぞれ特徴があり,それらを統合することで性能が向上した 企業内のソフトウェアにSPARS-Jを適用した 保守を行う時に非常に有効であった 今後の課題 再現率の調査 順位付け性能以外の観点からの定量的評価 2003年度修士学位論文発表会 2004/2/20

END The End 2003年度修士学位論文発表会 2004/2/20

検索キーワード 評価実験1・2に用いた検索キーワード 検索キーワード 検索目的 K1 quicksort アルゴリズム検索 K2 binarysearch K3 clock applet ツール検索 K4 applet textarea 使用例検索 K5 random number generate K6 stack push pop K7 chat server client K8 classfile dump K9 zip deflate K10 write read inputstream outputstream 2003年度修士学位論文発表会 2004/2/20

評価実験2(番外編) ユーザの最も欲しい部品が出現する順位 CRは全体的に高順位 KRは検索部品数が多くなると、順位も悪くなる 有意水準5%で有意差はなし CRは全体的に高順位 KRは検索部品数が多くなると、順位も悪くなる CR+KRにより性能向上 CR KR CR+KR K1 1 2 K2 K3 3 K4 K5 K6 8 4 K7 K8 K9 K10 Ave. 1.5 2.0 1.3 2003年度修士学位論文発表会 2004/2/20

評価実験3 企業内のソフトウェアに対してSPARS-Jを適用 Googleとの比較やNamazuの利用ができないため、SPARS-Jの各順位付けの比較のみ 検索者 検索キーワード A getHambaisaki B isAdministrator C ShoriStatusAlreadyChangedException D check E schedule F BTA002 G get Kana H SGNCompanyCode I KanjiShimei J Password 2003年度修士学位論文発表会 2004/2/20

実験3の結果 適合率 ndpm値 keyword CR KR CR+KR A 0.3 0.6 0.267 0.689 0.378 B 1 0.667 C 0.809 0.524 0.714 D 0.7 0.067 0.111 E 0.8 0.5 0.556 0.311 0.222 F 0.244 G 0.156 H 0.75 0.214 0.393 I 0.2 J 0.467 Ave. 0.506 0.602 0.614 0.399 0.334 0.328 2003年度修士学位論文発表会 2004/2/20

実験3の評価 企業との共同実験 一見すると、適合率・ndpm値共に KRはCRより良い結果が出ている CR+KRはKRより僅かに良い結果である 有意差は見られなかった 新しいバージョンのSPARS-Jでは結果が改善されると期待できる 2003年度修士学位論文発表会 2004/2/20

研究の目的 Javaソフトウェア部品検索システムに対して実験的評価を行い,システムの有効性を検証する 実験内容 検索システムの順位付け性能評価 評価用のテストコレクションを用いれば容易 実験内容 他の検索システムとの比較 SPARS-Jの各順位付け手法の比較 企業におけるSPARS-Jの適用実験 ソフトウェア部品検索システムを対象としたテストコレクションは存在していない 2003年度修士学位論文発表会 2004/2/20