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