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情報検索 ナビゲーションシステムの設計と実装
大阪教育大学大学院教育学研究科 総合基礎科学専攻 中窪 仁
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
Graduate School of Information Science and Technology, Osaka
ソースコードの利用関係を用いた 再利用性評価手法の提案
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
ソフトウェア部品間の利用関係を用いた 再利用性評価手法の提案
プログラム実行履歴を用いたトランザクションファンクション抽出手法
プログラム実行時情報を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
Javaソフトウェア部品 解析・検索システムSPARS-Jの構築
メソッド間の依存関係を利用した プログラム理解支援手法の提案と実現
Javaクラスの利用関係を用いた ソフトウェア部品のカテゴリ階層構築法
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の共起関係に基づく類似コード検索法の提案と 欠陥検出への適用
Javaソースコード蓄積・ 検索システムSPARS-Jの概要
類似度を用いたプログラムの再利用性尺度の提案と実現
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
動的情報を利用したソフトウェア 部品評価手法
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
ソフトウェア部品分類手法への コンポーネントランク法の応用
環境リスクマネジメントに関する 検索システム
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
WWW上の効率的な ハブ探索法の提案と実装
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
利用実績に基づくソフトウェア部品検索システムSPARS-J
TIME SIGNAL: 集合知を利用した赤信号点灯時間の取得手法
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
コードクローンの動作を比較するためのコードクローン周辺コードの解析
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
エピソード記憶に訴えるBookmarkless Bookmarkの実現
バイトコードを単位とするJavaスライスシステムの試作
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
ソフトウェア保守のための コードクローン情報検索ツール
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
類似度メトリクスを用いた Javaソースコード間類似度測定ツールの試作
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
ソフトウェアプロダクト集合に対する 派生関係木の構築
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
オープンソースソフトウェアに対する コーディングパターン分析の適用
コーパス コーパス(Corpus)はコンピュータの発達とともに、計算機可読なデータを容易に作成・収集することができるようになったことがその背景にある。現在ではコーパス言語学などの学問もある。
メソッドの同時更新履歴を用いたクラスの機能別分類法
A-17 検索履歴のプライバシーを秘匿した ユーザクラスタリング
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
ソフトウェア理解支援を目的とした 辞書の作成法
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
コードクローン解析に基づく デザインパターン適用候補の検出手法
ソースコードの利用関係を用いた 再利用性評価手法の提案
動的情報を利用したソフトウェア 部品重要度評価手法の提案と評価
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
Presentation transcript:

Javaを対象としたソフトウェア部品 検索システムSPARS-Jの実験的評価 梅森 文彰† 西 秀雄† 横森 励士† 山本 哲男‡ 松下 誠† 楠本 真二† 井上 克郎† †大阪大学大学院情報科学研究科 ‡独立行政法人科学技術振興機構

背景 過去開発された大量のソフトウェア資産が存在 過去の資産を有効活用するために・・・ 企業内で開発されたソフトウェアプロダクト WWWから入手可能なソフトウェア成果物  過去の資産を有効活用するために・・・ 効率的なソフトウェアの部品化,可視化が望まれる 大量のソフトウェア資産から必要な部品・情報を検索するシステムが必要 研究の背景について説明します。 近年ワールドワイドウェブの発展に伴い、SourceForgeやApacheなどのソフトウェア開発コミュニティを通じて、 大量のソフトウェア成果物が入手可能です。 また、 それらのソフトウェア資産を効率的に利用、把握するために、ソフトウェアの部品化、可視化が望まれています。 そこで、大量のソフトウェア資産から必要な部品や情報を検索するシステムが必要となります。 Javaソフトウェア部品検索システム SPARS-J† †http://demo.spars.info

SPARS-J (Software Product Archive, analysis Retrieval System for Java) 部品を解析し,自動的に情報を抽出 出現キーワード,利用関係,メトリクス 現実的な解析時間で抽出可能 検索要求と検索結果 キーワード型の検索 検索結果表示の工夫 高速な検索を実現 キーワードの出現頻度や部品の利用関係に基づく順位付け 類似部品のグループ化

研究の目的 ソフトウェア部品の効率的な検索により, SPARS-Jに対して実験的評価を行い,システムの有効性を検証する 既存部品を他のシステム開発で用いる再利用支援 部品の関連の掌握によるプログラム理解や保守支援 SPARS-Jに対して実験的評価を行い,システムの有効性を検証する

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

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

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

適合率の対象 検索結果全てを対象として適合率を求めても意味がない 検索結果の上位10件の部品に対する 適合率を求める 適合部品数が同じであれば,上位にあっても下位にあっても同じ評価となってしまう 検索結果上位の部品について適合率を求めるべきである Webページ検索では,検索結果の最初の1ページ(10件)目に該当文書が見つからない場合,2ページ目を検索するよりは検索キーワードを変更する傾向がある† 検索結果の上位10件の部品に対する 適合率を求める †Amanda Spink, B. J. Jansen, D. Wolfram, T. Saracevic:”From E-Sex to E-Commerce: Web Search Changes” IEEE Computer,Vol.35,No.3,pp.107-109,Mar(2002).

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

実験1の結果 各検索システムの適合率の比較 SPARS-J Google Namazu A 1 0.7 0.9 B 0.4 0.6 C keyword SPARS-J 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.73 0.46

実験1の評価 対応のある平均値の差の検定 有意水準5%で以下の有意差が見られた 適合率 SPARS-J ≫ Namazu ≫ Google

実験1の考察 Google Namazu データベースによる差だと考えられる Webページ検索システムでありJavaソフトウェア部品に関係するページ以外のものも多く含まれているので,検索結果を絞りきれなかった Namazu SPARS-Jとデータベースは同じ Googleの結果と比較して,検索結果を絞ることができたと考えられる 日本語全文検索システムでありソースコードの構文解析を行っておらず,Javaソースコードの特性を考慮していない SPARS-Jは他の検索システムより,ソフトウェア部品を検索するときに有用である データベースによる差だと考えられる 順位付け性能による差だと考えられる

実験2. SPARS-Jの各順位付け手法の比較 実験目的 各順位付け手法を比較し,最も妥当な順位付け手法を調査する SPARS-Jでは3種類の評価手法による順位付け機能を実現 利用関係に基づく順位付け手法 キーワードの出現頻度に基づく順位付け手法 1.2.の手法を統合した順位付け手法 評価尺度

1.利用関係に基づく順位付け Component Rank(CR)法 利用関係から部品重要度を評価し,順位付けする 多くの部品から利用されている部品は重要 重要な部品から利用されている部品もまた重要 多く利用される部品や,重要な箇所で利用される部品に大きな評価値が与えられる 使用例が多く,汎用的な部品が上位に来る

2.キーワード出現頻度に基づく順位付け Keyword Rank(KR)法 文書検索システムで用いられるTF-IDF法を改変 部品を特徴付ける索引キーに適当な重みを与える 部品に繰り返しあらわれる索引キー 希少で,特定の部品に偏ってあらわれる索引キー クラス定義名など部品を象徴するトークン種類の索引キー 重みの総和を評価値として順位付け クエリと適合する部品が上位に来る

3.CRとKRを統合した順位付け 各順位付けの観点 順位を統合して,両面で優れている部品を検索結果の上位に表示する 部品の使用例の多さ,汎用さ CR法 クエリと部品内容の適合度 KR法 順位を統合して,両面で優れている部品を検索結果の上位に表示する 部品検索部で行うため高速な方法が望ましい SPARS-Jの特徴のひとつである、順位付けについて後ほど詳しく述べますが、ここで簡単に触れておきます。順位付けを行うためには、なんらかの尺度を用いて部品の評価値を算出する必要があります。SPARS-Jでは二つの観点から部品を評価し順位付けしています。 ひとつはユーザ要求と部品内容の適合度です。どれほどすばらしい部品であっても、要求する部品が上位にこなければ意味がありません。もうひとつは、部品の再利用性です。要求にヒットする部品のうち、再利用しやすい部品が上位にくればユーザはスムーズにその部品を再利用することができます。 続いて,各部の説明に移ります.

3.CRとKRを統合した順位付け Bordaの手法 順位に対して評価点を割り当て,その合計点をもとに昇順にソート 例) 部品群 = { A, B, C, D, E } 以降,CRとKRを統合した順位付けをCR+KRと呼ぶことにする CR KR 1位 A D 2位 E C 3位 4位 B 5位 CR KR 合計点 A 1 3 4 B 8 C 2 5 D 6 E 7 統合順位 1位 A 2位 C 3位 D 4位 E 5位 B 以上によって求められた検索結果は,Webインタフェースを通じてユーザに提供されます. CRとKRの順位 各部品群の評価点 統合された順位

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

ndpm値の計算方法 検索文書集合の全てのペア(d,d’)における,システムとユーザで順位付けが異なるペア数(m)の割合 計算例

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

実験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

実験2の評価 対応のある平均値の差の検定 有意水準5%で以下の有意差が見られた 適合率 ndpm値 KR,CR+KR ≫ CR CR,CR+KR ≫ KR

実験2の考察 CR法 KR法 CR+KR法 全体的にユーザの想定した順位で並んでいる傾向がある 上位には適合部品が多く存在しやすい 適合率とndpm値の両方で優れた順位付けを行うことができた CR法とKR法の両方で高順位になったものが上位に順位付けされていると考えられる

実験3. 企業内のソフトウェアに対する適用実験 実験3.  企業内のソフトウェアに対する適用実験 実験目的 企業において実際に利用してもらうことで,ソフトウェアの管理や理解に有用であることを確認する 実験内容 SPARS-Jついての定性的な評価 企業内のソフトウェア開発・保守を行っている従業員7名に対して,SPARS-Jについてのアンケートを実施

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

アンケートの評価 特に評価の高かった点 SPARS-Jを用いることで可能になること パッケージブラウザの利用 同グループの参照 利用・被利用クラスの参照 検索結果一覧・ハイライト表示の見やすさ SPARS-Jを用いることで可能になること 部品を利用しているアプリの把握 部品改訂時の影響範囲の調査

実験3の考察 ソフトウェア部品の把握が容易となるということを意味しており,保守作業の支援に繋がっていると言える その他の感想 検索速度が速く,ストレスを感じない 前もって索引語を抽出しているため クライアントにインストールする必要がなく,ソフトウェア部品を共有できる 共有のデータベースを構築するため SPARS-Jはソフトウェア部品の検索に有用であり, また部品の把握や管理にも非常に役に立つ システムである

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

END The End