院ゼミ資料

デスクトップ検索システムを用いた
Javaソフトウェア部品リポジトリの
自動更新機能の実現
○市井 誠†,木村 和正‡, 松下 誠† ,井上 克郎†
†大阪大学 大学院情報科学研究科
‡大阪大学 基礎工学部
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
1
Javaソフトウェア部品検索システム
SPARS-J (1/2)

ソフトウェア部品検索
 過去に開発されたソフトウェアなどを部品として蓄積・検索
することで,効率的な開発を支援する技術
検索
ソフトウェア資産
ライブラリ部品の
再利用
実装例による
理解支援
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
2
Javaソフトウェア部品検索システム
SPARS-J (2/2)
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
3
SPARS-Jの使用形態

サーバー計算機上に設置して公開
 再利用を目的に収集した部品を検索
検索

クライアント計算機上で使用
 利用者の手元のJava部品を検索
 手持ちのライブラリ部品
 過去に開発したソフトウェア
 etc…
検索
 本研究ではこちらに注目
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
4
SPARS-Jの裏側

SPARS-Jの検索は部品リポジトリを利用している
 大規模なソフトウェア資産からの高速な検索を実現するため
 事前に検索対象となるJava部品を登録
 ディレクトリを指定するのみであり,登録そのものに手間はかからない

Java部品が更新された場合,部品リポジトリも更新する必要がある
部品
登録部
部品リポジ
トリ
更新
部品
検索部
利用者
SPARS-J
更新
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
5
部品リポジトリの更新

サーバー計算機上では,部品リポジトリの更新に問題はおきない
 Java部品は再利用される為に置かれている
 更新のタイミングや,置き場所はSPARS-Jの運用にあわせて決定できる

クライアント計算機上では,問題が発生する
部品名
A
B
C
利用者の作業により,
不定期に変更が発生
ローカルディスク
想定しないディレクトリ
にJava部品が存在
ファイルパス
C:\java\aaa\A.java
C:\java\bbb\B.java
C:\java\ccc\C.java
頻繁な更新が必要
部品リポジトリ
網羅的な指定が必要
問題点(1) 部品リポジトリの更新にコストがかかる
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
6
関連文書の検索

クライアント計算機上には,Java部品に関連する文書が存在する
 Java部品のドキュメントや,開発に関するメールなど
 Java部品を理解する上で有用
 SPARS-Jでは検索できない
Java部品の
ドキュメントなど
他の検索システムの併用が必要
部品名
A
B
C
ローカルディスク
ファイルパス
C:\java\aaa\A.java
C:\java\bbb\B.java
C:\java\ccc\C.java
部品リポジトリ
問題点(2) 関連情報の検索にコストがかかる
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
7
研究の目的

クライアント計算機上でSPARS-Jを利用するときのコストの削減
1. 部品リポジトリ更新のコストの削減
 部品リポジトリの更新の自動化
2. 関連情報の検索を行うコストの削減
 部品と関連情報の同時検索を実現

アプローチ:デスクトップ検索システムの利用
Java部品の
ドキュメントなど
Java部品の更新
ローカルディスク
想定しないディレクトリ
2006/8/3
内のJava部品
Java部品と同時に検索
自動的に検出・部品リポジトリを更新
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
8
デスクトップ検索システム


デスクトップ検索
 計算機に保存された様々な種類のファイルを全文検索する技術
本研究では Google Desktop を利用
 自動的な索引付け
 ファイルの更新/追加を検出し,計算機のアイドル時間を利用して索引付け


様々な種類のファイルの検索
プラグインによる機能拡張
 索引付け対象のファイルタイプと,対応した処理を追加可能



ウェブ検索結果との統合
サイドバーによる様々な情報へのアクセス
etc…
索引DB
監視
クローラー
2006/8/3
ローカルディスク
検索
登録
Google Desktop
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
利用者
SS2006-30
9
方針 (1/3)

部品リポジトリの自動更新
 部品の更新/追加を自動的に検知し,部品リポジトリへ登録
 利用者の作業の邪魔にならないように処理
Google Desktopのクローラーを利用し,SPARS-Jの部品
リポジトリを更新する
 Javaファイルの登録を行うプラグインを作成
監視
通知
クローラー
更新 ローカルディスク
更新
Java部品
プラグイン
SPARS-J
部品リポジトリ
Google Desktop
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
10
方針 (2/3)

プラグインの処理で部品リポジトリを更新すると効率が悪い
 プラグインでは,1ファイル単位での処理しかできない
 部品登録が一通り完了した時点で行う,後処理が必要
 利用関係の解決など
 Google Desktopの外に,実際の登録を行うサブシステムを作成
 プラグインからJava部品を受け取り,部品リポジトリに登録
 利用関係解決などの後処理
登録
Java部品
プラグイン
送信
登録用サブ
システム
SPARS-J
部品リポジトリ
後処理
Google Desktop
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
11
方針 (3/3)

部品と関連情報の同時検索
 Google
Desktopにより,様々な文書を同時に検索できるが,Java部
品に関する情報があまり得られない
 規定の動作では,ファイルは関連付けられたアプリケーションで表示される
 SPARS-Jにより,部品の理解に必要な詳細な情報を得ることができる
が,Java部品のみしか検索できない
 Google Desktopの検索結果から,SPARS-Jの部品表示部を利用
する
 ファイルの表示処理をフックし,SPARS-Jを利用するプラグインを作成
検索
表示
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
12
SPARS Desktop: 実装したシステム(1/3)

システム構成
登録部からJava部品を受け取
り,部品リポジトリに登録
部品リポジトリ
クローラーが検出した
Java部品をSPARS-Jへ
渡す
Google Desktop プラグ
インとして実装
検索部
TCP/IP通信をおこなうサー
バーとして実装
登録サー
バー
登録部
SPARS-J
表示部
SPARS Google
DesktopDesktopの検索結果画
面の表示動作をフックし,Java
検索部
部品をSPARS-Jで表示する.
クロー
ローカルディスク
2006/8/3
ラー
Google
Desktopプラグインとし
Google
Desktop
て実装
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
利用者
SS2006-30
13
SPARS Desktop: 実装したシステム(2/3)

登録時の流れ
検索部
部品リポジトリ
Java部品の登録
登録の後処理
登録サー
バー
SPARS-J
送信
登録部
表示部
SPARS Desktop
更新を検知
ローカルディスク
クロー
ラー
検索部
Google Desktop
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
利用者
SS2006-30
14
SPARS Desktop: 実装したシステム(3/3)

検索時の流れ
検索部
部品リポジトリ
登録サー
バー
登録部
SPARS-J
表示部
Java部品情報
SPARS Desktop
検索結果
ローカルディスク
クロー
ラー
検索部
Google Desktop
クエリ
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
利用者
SS2006-30
15
適用事例 – 概要

目的
 クライアント計算機上のJava
ることの確認

部品の検索にかかる作業コストが軽減され
方針
 SPARS
Desktop 導入時,未導入時の作業工程の比較
 リポジトリの更新
 関連情報の取得
 未導入時:SPARS-J,Google

Desktop はそれぞれ利用可
シナリオ
 Java言語でのTelnetプロトコルの実装についての情報を得ることを目的
に検索
 Telnet関係のJava部品を入手し,ファイルシステム上に展開した状態か
ら開始
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
16
適用事例
– リポジトリの更新(未導入時)
Javaファイルを展開
SPARS-J を起動
登録作業の発生
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
17
適用事例
– リポジトリの更新(導入時)
Javaファイルを展開
作業を続行
SPARS Desktop が
自動的にリポジトリへ
の登録処理を行う
登録作業は不要
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
18
適用事例
– 関連情報の取得(未導入時)
関連情報
関連する部品などの,詳しい情報が欲しい
Java 部品
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
19
適用事例
– 関連情報の取得(未導入時)
パッケージ
情報
利用関係に
ある部品
部品間の関連を含めた
詳細な部品情報
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
20
適用事例
– 関連情報の取得(未導入時)
検索開始
結果一覧
関連情報
余分な作業が発生
Java部品(不十分)
Java部品の再検索
Java部品(詳細な情報)
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
21
適用事例
– 関連情報の取得(導入時)
関連情報
パッケージ
情報
利用関係に
ある部品
Java ファイル
ワンクリックで詳細な情報を取得
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
22
適用事例
– 関連情報の取得(導入時)
検索開始
結果一覧
関連情報
Java部品(詳細な情報)
余分な作業が除去されている
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
23
適用事例 – まとめ

登録作業
 リポジトリの更新作業の自動化
利用者の更新作業を除去
登録漏れの防止

検索作業
 関連情報の取得にかかる作業の統合
余分な作業を除去
SPARS Desktopにより,クライアント計算機上のJava 部
品の検索にかかる作業コストを削減
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
24
まとめ

デスクトップ検索システム Google Desktop を利用して以下を実現
ソフトウェア部品検索システム SPARS-J のためのリポジトリ自動
更新機能
 Java部品と関連情報の同時検索
 Java

適用事例により,利用者の作業コストが削減されることを確認

今後の課題
 SPARS-Jにおける順位付けの反映
 SPARS-Jでは,部品間の利用関係に基づく順位付けをおこなっている
 現状では,Google Desktopのプラグインは検索結果の順位付けに関与で
きない
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
25
デモ
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
26
2006/8/3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
SS2006-30
27