Javaを対象としたソフトウェア部品 検索システムSPARS-Jの実験的評価 梅森 文彰† 西 秀雄† 横森 励士† 山本 哲男‡ 松下 誠† 楠本 真二† 井上 克郎† †大阪大学大学院情報科学研究科 ‡独立行政法人科学技術振興機構 1 背景 過去開発された大量のソフトウェア資産が存在 企業内で開発されたソフトウェアプロダクト WWWから入手可能なソフトウェア成果物 過去の資産を有効活用するために・・・ 効率的なソフトウェアの部品化,可視化が望まれる 大量のソフトウェア資産から必要な部品・情報を検 索するシステムが必要 Javaソフトウェア部品検索システム SPARS-J† †http://demo.spars.info 2 SPARS-J (Software Product Archive, analysis Retrieval System for Java) Javaソフトウェア部品検索システム 大量のJavaのソースコードから部品を切り出す 部品:1クラス・1インタフェースのJavaソースコード 部品を解析し,自動的に情報を抽出 出現キーワード,利用関係,メトリクス 現実的な解析時間で抽出可能 検索要求と検索結果 キーワード型の検索 検索結果表示の工夫 – 高速な検索を実現 – キーワードの出現頻度や部品の利用関係に基づく順位付け – 類似部品のグループ化 3 研究の目的 ソフトウェア部品の効率的な検索により, 既存部品を他のシステム開発で用いる再利用支援 部品の関連の掌握によるプログラム理解や保守支援 SPARS-Jに対して実験的評価を行い,システムの 有効性を検証する 4 評価にあたっての問題点 検索システムの順位付け性能評価 評価用のテストコレクションを用いれば容易 ソフトウェア部品検索システムを対象としたテストコレクショ ンは存在していない 言語,部品の単位等の違いにより,テストコレクションの構築が 非常に困難 独自の評価実験を適用する 5 実験の内容 1. 他の検索システムとの比較 – 一般的な検索システムとの比較により,SPARS-Jのソ フトウェア部品検索システムとしての有効性を検証する 2. SPARS-Jの各順位付け手法の比較 – 各順位付け手法を比較し,最も妥当な順位付け手法 を調査する 3. 実際の開発環境におけるSPARS-Jの適用実験 – 企業において実際に利用してもらうことで,ソフトウェアの 管理や理解に有用であることを確認する 6 実験1. 他の検索システムとの比較 実験の目的 一般的な検索システムとの比較により,SPARS-Jのソフ トウェア部品検索システムとしての有効性を検証する 比較対象 Google:Webページ検索システムで,様々な目的での 検索に利用される Namazu:信頼性の高い日本語全文検索システム 評価尺度 適合率:検索結果のうちの適合部品数の割合 割合が高いほど,検索結果に利用できる部品が多く含まれる 7 適合率の対象 検索結果全てを対象として適合率を求めても意味 がない 適合部品数が同じであれば,上位にあっても下位にあっ ても同じ評価となってしまう 検索結果上位の部品について適合率を求めるべきである Webページ検索では,検索結果の最初の1ページ(10 件)目に該当文書が見つからない場合,2ページ目を検 索するよりは検索キーワードを変更する傾向がある† 検索結果の上位10件の部品に対する 適合率を求める †Amanda Spink, B. J. Jansen, D. Wolfram, T. Saracevic:”From E-Sex to E-Commerce: Web 8 Search Changes” IEEE Computer,Vol.35,No.3,pp.107-109,Mar(2002). 実験1. 他の検索システムとの比較 準備 データベース SPARS-JとNamazuに関しては, JDKおよびWeb上で公開さ れているソースコード(約14万個のソースファイル)で構築 Googleは公開されている検索エンジンをそのまま用いる 検索キーワード 簡単なシステムの開発を想定したクエリを10個用意する 手順 各検索システムの検索結果上位10件の部品を対象とし て,適合率を求める 9 実験1の結果 各検索システムの適合率の比較 keyword SPARS-J Google A 1 0.7 0.9 B 1 0.4 0.6 C 0.5 0.3 0.4 D 0.8 0.3 0.6 E 0.4 0.1 0.3 F 0.2 0 0.1 G 1 0.3 0.4 H 1 0.1 0.2 I 0.7 0.4 0.4 J 0.7 0.4 0.7 0.73 0.3 0.46 Ave. 10 Namazu 実験1の評価 対応のある平均値の差の検定 有意水準5%で以下の有意差が見られた 適合率 SPARS-J ≫ Namazu ≫ Google 11 実験1の考察 Google Webページ検索システムでありJavaソフトウェア部品に関係するページ以外のも のも多く含まれているので,検索結果を絞りきれなかった データベースによる差だと考えられる Namazu SPARS-Jとデータベースは同じ Googleの結果と比較して,検索結果を絞ることができたと考えられる 日本語全文検索システムでありソースコードの構文解析を行っておらず,Java ソースコードの特性を考慮していない 順位付け性能による差だと考えられる SPARS-Jは他の検索システムより,ソフトウェア部品を検索するときに 有用である 12 実験2. SPARS-Jの各順位付け手法の比較 実験目的 各順位付け手法を比較し,最も妥当な順位付け手法を調査する SPARS-Jでは3種類の評価手法による順位付け機能を実現 1. 利用関係に基づく順位付け手法 2. キーワードの出現頻度に基づく順位付け手法 3. 1.2.の手法を統合した順位付け手法 評価尺度 13 1.利用関係に基づく順位付け Component Rank(CR)法 利用関係から部品重要度を評価し,順位付けする 多くの部品から利用されている部品は重要 重要な部品から利用されている部品もまた重要 多く利用される部品や,重要な箇所で利用される部品 に大きな評価値が与えられる 使用例が多く,汎用的な部品が上位に来る 14 2.キーワード出現頻度に基づく順 位付け Keyword Rank(KR)法 文書検索システムで用いられるTF-IDF法を改変 部品を特徴付ける索引キーに適当な重みを与える 部品に繰り返しあらわれる索引キー 希少で,特定の部品に偏ってあらわれる索引キー クラス定義名など部品を象徴するトークン種類の索引キー 重みの総和を評価値として順位付け クエリと適合する部品が上位に来る 15 3.CRとKRを統合した順位付け 各順位付けの観点 1. 部品の使用例の多さ,汎用さ – CR法 2. クエリと部品内容の適合度 – KR法 順位を統合して,両面で優れている部品を検索 結果の上位に表示する 部品検索部で行うため高速な方法が望ましい 16 3.CRとKRを統合した順位付け Bordaの手法 順位に対して評価点を割り当て,その合計点をもとに昇順にソート 例) 部品群 = { A, B, C, D, E } CR KR 合計点 CR KR 統合順位 1位 A D A 1 3 4 1位 A 2位 E C B 4 4 8 2位 C 3位 C A C 3 2 5 3位 D 4位 B B D 5 1 6 4位 E 5位 D E E 2 5 7 5位 B CRとKRの順位 各部品群の評価点 統合された順位 以降,CRとKRを統合した順位付けをCR+KRと呼ぶことにする 17 実験2. SPARS-Jの各順位付け手法の比較 実験目的 各順位付け手法を比較し,最も妥当な順位付け手法を調査する SPARS-Jでは3種類の評価手法による順位付け機能を実現 1. 利用関係に基づく順位付け手法(CR) 2. キーワードの出現頻度に基づく順位付け手法(KR) 3. 1.2.の手法を統合した順位付け手法(CR+KR) 評価尺度 適合率:検索結果のうちの適合部品数の割合 割合が高いほど,検索結果に利用できる部品が多く含まれる ndpm値:ユーザの順位付けとシステムの順位付けの違い 値が小さいほど,理想的な順位付けと言える 18 ndpm値の計算方法 検索文書集合の全てのペア(d,d’)における,システ ムとユーザで順位付けが異なるペア数(m)の割合 文書集合の要素数をnとすると m ndpm nC 2 計算例 D d1 , d 2 , d3 d1 s d2 s d3 d1 u d3 u d2 1 ndpm 0.333 3 (3 1)/ 2 19 実験2. SPARS-Jの各順位付け手法の比較 準備 データベース (実験1と同じ)14万個のソースコード群から構築 検索キーワード (実験1と同じ)10個のクエリを用いる 手順 各順位付け手法の検索結果上位10件の部品を対象と して適合率を求める 各順位付け手法による検索結果の全ての部品を対象と して,ユーザの想定する理想的な順位付けとのndpm値 求める 20 実験2の結果 適合率 keyword KR CR+KR CR KR CR+KR A 1 1 1 0.036 0.048 0.037 B 1 1 1 0.194 0.261 0.221 C 0.5 0.5 0.5 0.133 0.117 0.092 D 0.4 0.9 0.8 0.123 0.200 0.189 E 0.4 0.4 0.4 0.208 0.192 0.194 F 0.2 0.2 0.2 0.184 0.184 0.160 G 0.9 1 1 0.081 0.103 0.080 H 1 0.8 1 0.047 0.109 0.052 I 0.6 0.7 0.7 0.210 0.324 0.267 J 0.5 0.7 0.7 0.219 0.243 0.114 0.65 0.72 0.73 0.143 0.178 0.141 Ave. 21 CR ndpm値 実験2の評価 対応のある平均値の差の検定 有意水準5%で以下の有意差が見られた 適合率 KR,CR+KR ≫ CR ndpm値 CR,CR+KR ≫ KR 22 実験2の考察 CR法 全体的にユーザの想定した順位で並んでいる傾向がある KR法 上位には適合部品が多く存在しやすい CR+KR法 適合率とndpm値の両方で優れた順位付けを行うことが できた CR法とKR法の両方で高順位になったものが上位に順 位付けされていると考えられる 23 実験3. 企業内のソフトウェアに対する適用実験 実験目的 企業において実際に利用してもらうことで,ソフトウェアの 管理や理解に有用であることを確認する 実験内容 SPARS-Jついての定性的な評価 企業内のソフトウェア開発・保守を行っている従業員7名に対 して,SPARS-Jについてのアンケートを実施 24 アンケートの結果 (良 5 4 3 2 1 悪) A B C D E 25 パッケージブラウザの利用 4 5 5 同グループのクラスの参照 4 5 検出されたクラスを利用しているクラスの参照 5 検出されたクラスが利用しているクラスの参照 5 5 F G 最頻値 4 3 3 5 5 2 4 3 5,4 5 5 5 5 5 5 1 5 5 5 5 5 クラスのメトリクス値 1 4 1 2 4 5 4,1 ソースコードがダウンロード機能 1 3 5 5 2 5 5 時間的コストの削減 3 5 5 3 4 1 5,3 ソフトウェア品質の向上 5 3 3 3 4 1 3 企業内のソフトウェア把握 3 1 5 3 5 2 1 5,3,1 検索結果一覧表示の見やすさ 4 4 5 5 3 3 5 5 ハイライト表示の見やすさ 3 5 5 5 5 5 5 5 アンケートの評価 特に評価の高かった点 パッケージブラウザの利用 同グループの参照 利用・被利用クラスの参照 検索結果一覧・ハイライト表示の見やすさ SPARS-Jを用いることで可能になること 部品を利用しているアプリの把握 部品改訂時の影響範囲の調査 26 実験3の考察 ソフトウェア部品の把握が容易となるということを意味 しており,保守作業の支援に繋がっていると言える その他の感想 検索速度が速く,ストレスを感じない 前もって索引語を抽出しているため クライアントにインストールする必要がなく,ソフトウェア部 品を共有できる 共有のデータベースを構築するため 27 SPARS-Jはソフトウェア部品の検索に有用であり, また部品の把握や管理にも非常に役に立つ システムである まとめと今後の課題 ソフトウェア部品検索システムSPARS-Jの実験的評価 他の検索システムとの比較 GoogleとNamazuより優れている SPARS-Jの各順位付け手法の比較 CR・KRそれぞれ特徴があり,それらを統合することで性能が向上した 企業内のソフトウェアにSPARS-Jを適用した 保守を行う時に非常に有効であった 今後の課題 再現率の調査 順位付け性能以外の観点からの定量的評価 他のソフトウェア部品への対応 28 END The End 29
© Copyright 2024 ExpyDoc