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

Javaソフトウェア部品検索システム
SPARS-Jの実験的評価
井上研究室
梅森 文彰
研究の背景
ソフトウェア開発の大規模化・複雑化
生成されたソフトウェアを再利用したり,管理する機会が
増えた
ソフトウェア部品検索システムの必要性
Javaソフトウェア部品検索システムSPARS-J
2
2003年度修士学位論文発表会
2004/2/20
SPARS-J
(Software Product Archive, analysis Retrieval System for Java)
Javaソフトウェア部品検索システム
大量のJavaのソースコードから部品を切り出す
部品:1クラス・1インタフェースのJavaソースコード
部品を解析し,自動的に情報を抽出
出現キーワード,利用関係,メトリクス
検索要求と検索結果
キーワード型の検索
検索結果表示の工夫
– キーワードの出現頻度や部品の利用関係に基づく順位付け
– 類似部品のグループ化
3
2003年度修士学位論文発表会
2004/2/20
研究の目的
ソフトウェア部品の効率的な検索により,
有用なソフトウェア部品の再利用
ソフトウェア部品の管理や理解を支援
SPARS-Jに対して実験的評価を行い,システムの
有効性を検証する
4
2003年度修士学位論文発表会
2004/2/20
評価にあたっての問題点
検索システムの順位付け性能評価
評価用のテストコレクションを用いれば容易
ソフトウェア部品検索システムを対象としたテストコレクショ
ンは存在していない
言語,部品の単位等の違いにより,テストコレクションの構築が
非常に困難
独自の評価実験を適用する
5
2003年度修士学位論文発表会
2004/2/20
実験の内容
1. 他の検索システムとの比較
– 一般的な検索システムとの比較により,SPARS-Jのソ
フトウェア部品検索システムとしての有効性を検証する
2. SPARS-Jの各順位付け手法の比較
– 各順位付け手法を比較し,最も妥当な順位付け手法
を調査する
3. 実際の開発環境におけるSPARS-Jの適用実験
– 企業において実際に利用してもらうことで,ソフトウェアの
管理や理解に有用であることを確認する
6
2003年度修士学位論文発表会
2004/2/20
実験1.
他の検索システムとの比較
実験の目的
一般的な検索システムとの比較により,SPARS-Jのソフ
トウェア部品検索システムとしての有効性を検証する
比較対象
Google:Webページ検索システムで,様々な目的の検
索に利用される
Namazu:信頼性の高い全文検索システム
評価尺度
適合率:検索結果のうちの適合部品数の割合
割合が高いほど,検索結果に利用できる部品が多く含まれる
7
2003年度修士学位論文発表会
2004/2/20
実験1.
他の検索システムとの比較
準備
データベース
SPARS-JとNamazuに関しては, JDKおよびWeb上で公開さ
れているソースコード(約14万個のソースファイル)で構築
Googleは公開されている検索エンジンをそのまま用いる
検索キーワード
簡単なシステムの開発を想定したクエリを10個用意する
手順
各検索システムの検索結果上位10件の部品を対象とし
て,適合率を求める
8
2003年度修士学位論文発表会
2004/2/20
実験1の結果
各検索システムの適合率の比較
keyword
KR
CR+KR
Google
Namazu
A
1
1
1
0.7
0.9
B
1
1
1
0.4
0.6
C
0.5
0.5
0.5
0.3
0.4
D
0.4
0.9
0.8
0.3
0.6
E
0.4
0.4
0.4
0.1
0.3
F
0.2
0.2
0.2
0
0.1
G
0.9
1
1
0.3
0.4
H
1
0.8
1
0.1
0.2
I
0.6
0.7
0.7
0.4
0.4
J
0.5
0.7
0.7
0.4
0.7
0.65
0.72
0.73
0.3
0.46
Ave.
9
CR
2003年度修士学位論文発表会
2004/2/20
実験1の評価
対応のある平均値の差の検定
有意水準5%で以下の有意差が見られた
適合率
SPARS-J(CR,KR,CR+KR) ≫ Namazu ≫ Google
SPARS-Jは他の検索システムより,ソフトウェア部品
を検索するときに有用である
10
2003年度修士学位論文発表会
2004/2/20
実験2.
SPARS-Jの各順位付け手法の比較
実験目的
各順位付け手法を比較し,最も妥当な順位付け手法を調査する
SPARS-Jでは3種類の評価手法による順位付け機能を実現
1. 利用関係をもとにした評価手法(CR)
2. キーワードの出現頻度をもとにした評価手法(KR)
3. 1.2.の手法を統合した評価手法(CR+KR)
評価尺度
適合率:検索結果のうちの適合部品数の割合
割合が高いほど,検索結果に利用できる部品が多く含まれる
ndpm値:ユーザの順位付けとシステムの順位付けの違い
値が小さいほど,理想的な順位付けと言える
11
2003年度修士学位論文発表会
2004/2/20
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
12
2003年度修士学位論文発表会
2004/2/20
実験2.
SPARS-Jの各順位付け手法の比較
準備
データベース
(実験1と同じ)14万個のソースコード群から構築
検索キーワード
(実験1と同じ)10個のクエリを用いる
手順
各順位付け手法の検索結果上位10件の部品を対象として適合
率を求める
評価実験1の結果を用いる
各順位付け手法による検索結果の全ての部品を対象として,ユー
ザの想定する理想的な順位付けとのndpm値求める
13
2003年度修士学位論文発表会
2004/2/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.
14
CR
ndpm値
2003年度修士学位論文発表会
2004/2/20
実験2の評価
対応のある平均値の差の検定
有意水準5%で以下の有意差が見られた
適合率
KR,CR+KR ≫ CR
ndpm値
CR,CR+KR ≫ KR
CR法:ユーザの想定した順位で並んでいる
KR法:上位に適合部品が多く存在しやすい
CR法とKR法を統合することで適合率とndpm値の
両方で優れた順位付けを行うことができる
15
2003年度修士学位論文発表会
2004/2/20
実験3.
企業内のソフトウェアに対する適用実験
実験目的
企業において実際に利用してもらうことで,ソフトウェアの
管理や理解に有用であることを確認する
実験内容
検索結果における適合率・ndpm値の評価
SPARS-Jついての定性的な評価
企業内のソフトウェア開発・保守を行っている従業員7名に対
して,SPARS-Jについてのアンケートを実施
16
2003年度修士学位論文発表会
2004/2/20
アンケートの結果
(良 5 4 3 2 1 悪)
A B C D E
17
パッケージブラウザの利用
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
2003年度修士学位論文発表会
2004/2/20
アンケートの評価
特に評価の高かった点
パッケージブラウザの利用
同グループの参照
利用・被利用クラスの参照
検索結果一覧・ハイライト表示の見やすさ
その他の意見
部品を利用しているアプリの把握
部品改訂時の影響範囲の調査
ソフトウェア部品の把握が容易となるということを意味
しており,保守作業の支援に繋がっていると言える
18
2003年度修士学位論文発表会
2004/2/20
実験結果の考察
検索結果の順位付け性能と使い勝手について評価を行っ
た
他の検索システムとの比較
SPARS-JはJavaソフトウェア部品検索に特化している
ソースコードの構文解析を行うことで高性能な順位付け
SPARS-Jの各順位付け手法の比較
CR+KRは,CRとKRの両方で良い評価値を得た部品が上位に順位付け
される
企業内のソフトウェアに対する適用
実際の開発・保守時には,検索の機能だけではなく,利用関係追跡などの
機能が有用
SPARS-Jはソフトウェア部品の検索に有用であり,また部
品の把握や管理にも非常に役に立つシステムである
19
2003年度修士学位論文発表会
2004/2/20
まとめと今後の課題
ソフトウェア部品検索システムSPARS-Jの実験的評価
他の検索システムとの比較
GoogleとNamazuより優れている
SPARS-Jの各順位付け手法の比較
CR・KRそれぞれ特徴があり,それらを統合することで性能が向上した
企業内のソフトウェアにSPARS-Jを適用した
保守を行う時に非常に有効であった
今後の課題
再現率の調査
順位付け性能以外の観点からの定量的評価
20
2003年度修士学位論文発表会
2004/2/20
END
The End
21
2003年度修士学位論文発表会
2004/2/20
検索キーワード
評価実験1・2に用いた検索キーワード
22
検索キーワード
検索目的
K1
quicksort
アルゴリズム検索
K2
binarysearch
アルゴリズム検索
K3
clock applet
ツール検索
K4
applet textarea
使用例検索
K5
random number generate
ツール検索
K6
stack push pop
アルゴリズム検索
K7
chat server client
ツール検索
K8
classfile dump
ツール検索
K9
zip deflate
使用例検索
K10
write read inputstream outputstream 使用例検索
2003年度修士学位論文発表会
2004/2/20
評価実験2(番外編)
ユーザの最も欲しい部品が
出現する順位
有意水準5%で有意差は
なし
CRは全体的に高順位
KRは検索部品数が多くな
ると、順位も悪くなる
CR+KRにより性能向上
23
CR
KR
CR+KR
K1
1
2
1
K2
2
1
1
K3
3
2
1
K4
1
1
1
K5
1
1
1
K6
2
8
4
K7
1
1
1
K8
1
2
1
K9
1
1
1
K10
2
1
1
Ave.
1.5
2.0
1.3
2003年度修士学位論文発表会
2004/2/20
評価実験3
企業内のソフトウェアに対し
てSPARS-Jを適用
Googleとの比較や
Namazuの利用ができない
ため、SPARS-Jの各順位
付けの比較のみ
24
検索者 検索キーワード
A
getHambaisaki
B
isAdministrator
C
ShoriStatusAlreadyChanged
Exception
D
check
E
schedule
F
BTA002
G
get Kana
H
SGNCompanyCode
I
KanjiShimei
J
Password
2003年度修士学位論文発表会
2004/2/20
実験3の結果
適合率
keyword
KR
CR+KR
CR
KR
CR+KR
A
0.3
0.6
0.3
0.267
0.689
0.378
B
1
1
1
1
0.667
0.667
C
1
1
1
0.809
0.524
0.714
D
0.7
0
0.6
0.067
0
0.111
E
0.8
0.5
0.8
0.556
0.311
0.222
F
0.5
0.8
0.8
0.556
0.222
0.244
G
0
0.7
0.6
0
0.067
0.156
H
0.75
0.75
0.75
0.214
0.393
0.393
I
0.2
0.2
0.2
0.3
0
0.2
J
0.2
0.7
0.3
0.222
0.467
0.2
0.506
0.602
0.614
0.399
0.334
0.328
Ave.
25
CR
ndpm値
2003年度修士学位論文発表会
2004/2/20
実験3の評価
企業との共同実験
一見すると、適合率・ndpm値共に
KRはCRより良い結果が出ている
CR+KRはKRより僅かに良い結果である
有意差は見られなかった
新しいバージョンのSPARS-Jでは結
果が改善されると期待できる
26
2003年度修士学位論文発表会
2004/2/20
研究の目的
Javaソフトウェア部品検索システムに対して実験
的評価を行い,システムの有効性を検証する
検索システムの順位付け性能評価
評価用のテストコレクションを用いれば容易
ソフトウェア部品検索システムを対象とした
テストコレクションは存在していない
実験内容
1. 他の検索システムとの比較
2. SPARS-Jの各順位付け手法の比較
3. 企業におけるSPARS-Jの適用実験
27
2003年度修士学位論文発表会
2004/2/20