Javaソフトウェア部品検索システムSPARS

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