Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現 井上研究室 木村 和正
Java ソフトウェア部品 検索システム SPARS-J 目的 ソースコードの再利用,理解の支援 特徴 大規模資産から自動的に部品を抽出 ソースコードに対する全文検索 利用関係とキーワード出現頻度を考慮した検索結果の順位付け 部品詳細情報の提供 類似部品,部品の利用関係など 使用法 公開サーバを設置 個人 PC で使用 本研究ではこちらの場合を想定 2018/11/7 平成17年度 特別研究報告
スクリーンショット 2018/11/7 平成17年度 特別研究報告
SPARS-J の問題点(1) リポジトリの更新 検索に利用するための部品情報を保持したリポジトリの構築が必要 ユーザが明示的に Java ソースコードを指定 ソースコードの更新が頻発 → 登録作業が頻発 リポジトリを最新の状態に保ち,適切な検索結果を得るために 2018/11/7 平成17年度 特別研究報告
SPARS-J の問題点(2) 検索対象の限定 ソースコード以外にもソフトウェア部品の再利用に有用な情報は存在する 開発に関するメール プログラムのドキュメント ソフトウェア部品の理解のためには,これらの情報を併せて参照する必要がある → SPARS-J と通常の全文検索ツールとの併用 2018/11/7 平成17年度 特別研究報告
研究の目的 リポジトリの自動更新機能の実現 ソフトウェア部品の詳細情報と関連情報の同時検索の実現 手法 → Java ソフトウェア部品の検索・再利用にかかる作業コストの軽減 手法 デスクトップ検索ツール Google Desktop を利用 プラグインとして SPARS Desktop を実装 2018/11/7 平成17年度 特別研究報告
デスクトップ検索ツール Google Desktop ウェブブラウザを通じてコンピュータに保存された様々な種類のファイルを全文検索する技術 Google Desktop の特徴 各種ファイルの検索 ファイルのインデックスの自動作成 プラグインによる機能拡張 ウェブ検索結果との統合 サイドバーによる各種情報へのアクセス 検索対象部品の 更新に利用 2018/11/7 平成17年度 特別研究報告
実現した機能 リポジトリの自動更新 Google Desktop による検索結果からソフトウェア部品の詳細情報を取得 新規作成・更新された Java ファイルを SPARS-J のリポジトリに登録 Google Desktop のクローラーを利用 部品の利用関係情報の登録,検索結果の順位付けも行う Google Desktop による検索結果からソフトウェア部品の詳細情報を取得 Google Desktop を利用した検索から,SPARS-J が持つ Java ソフトウェア部品情報を参照することが可能 →ソフトウェア部品の詳細情報と関連情報の同時検索が可能 2018/11/7 平成17年度 特別研究報告
システムの構成 SPARS-J SPARS Desktop ユーザ ローカルディスク Google Desktop 表示 加工部 登録部 検索クエリ Java ファイル情報 結果の表示 SPARS Desktop Java ファイル情報 結果の表示 表示 加工部 ユーザ 登録部 表示部 検索クエリ 監視 検索部 クローラー ローカルディスク Google Desktop Java ファイル情報 2018/11/7 平成17年度 特別研究報告
実装 登録部:2つの処理部から成る 表示加工部 Google Desktop 登録部 SPARS-J 登録部 プラグインとして実装 Java ファイル情報の取得,Google Desktop への登録,SPARS-Jへの登録を行う SPARS-J 登録部 デーモンとして実装 Java ファイルの SPARS-J への登録を行う 表示加工部 ファイルパスからの部品情報の取得 Google Desktop の検索結果からファイルパスを取得 ファイルパスをもとに SPARS-J から部品情報を取得 規定の表示処理の変更 2018/11/7 平成17年度 特別研究報告
スクリーンショット 2018/11/7 平成17年度 特別研究報告
評価 目的 方針 Java ソフトウェア部品の検索・再利用にかかる作業コストが軽減されることの確認 SPARS Desktop 導入時,未導入時の作業工程の比較 リポジトリの更新 関連情報の取得 未導入時:SPARS-J,Google Desktop はそれぞれ利用可 2018/11/7 平成17年度 特別研究報告
リポジトリの更新(未導入時) SPARS-J を起動 Javaファイルを更新 登録作業の発生 2018/11/7 平成17年度 特別研究報告
リポジトリの更新(導入時) SPARS Desktop が 自動的にリポジトリへの 登録処理を行う Javaファイルを更新 作業を続行 2018/11/7 平成17年度 特別研究報告
関連情報の取得(未導入時) 関連情報は検索されない 2018/11/7 平成17年度 特別研究報告
関連情報の取得(未導入時) 関連情報 詳しい情報が欲しい Java ファイル 2018/11/7 平成17年度 特別研究報告
関連情報の取得(未導入時) 余分な作業が発生 2018/11/7 平成17年度 特別研究報告
関連情報の取得(導入時) 関連情報 ワンクリックで情報を取得 Java ファイル 2018/11/7 平成17年度 特別研究報告
考察 SPARS Desktop の導入によって解決された問題 → Java ソフトウェア部品の検索・再利用にかかる作業コストを軽減 登録作業 リポジトリの更新作業の自動化 →ユーザの更新作業を除去 →登録漏れの防止 検索作業 関連情報の取得にかかる作業の統合 →余分な作業を除去 → Java ソフトウェア部品の検索・再利用にかかる作業コストを軽減 2018/11/7 平成17年度 特別研究報告
まとめと今後の課題 まとめ 今後の課題 Java ソフトウェア部品検索システムのためのリポジトリ自動更新機能を実現 評価によりその有効性を確認 今後の課題 削除されたファイルの除去処理の自動化 順位付け手法の統合 ソフトウェア部品の利用関係に基づく順位付け手法の反映 2018/11/7 平成17年度 特別研究報告
2018/11/7 平成17年度 特別研究報告
利用関係に基づく順位付け手法 Component Rank(CR)法 利用関係から部品の重要さを評価し,順位付けする 多くの部品から利用されている部品は重要 重要な部品から利用されている部品もまた重要 使用例が多く,汎用的な部品が上位に来る A C D B 2018/11/7 平成17年度 特別研究報告
CR 法の計算手法 部品群グラフをもとにした繰り返し計算 C1 C2 C3 C1 C2 C3 C1 C2 C3 C1 C2 C3 C1 C2 1. 各頂点の総和を1として適当な重みを与える 2. 頂点の重みを,出ていく辺で分配する 3. 入ってくる辺の重みの総和を,その頂点の重みとして再定義 4. 頂点の重みが収束するまで,2.3.を繰り返し計算 5. 収束した重みが部品群のCR値 C1 0.334 C2 0.333 C3 C1 0.334 C2 0.333 C3 v1×50% v2×100% v3×100% C1 C2 C3 0.167 0.333 C1 0.333 C2 0.167 C3 0.500 C1 C2 C3 0.1665 0.167 0.500 C1 0.500 C2 0.1665 C3 0.3335 C1 0.400 C2 0.200 C3 2018/11/7 平成17年度 特別研究報告