社団法人 電子情報通信学会
THE INSTITUTE OF ELECTRONICS,INFORMATION AND COMMUNICATION ENGINEERS

信学技報
TECHNICAL REPORT OF IEICE.

Java を対象としたソフトウェア部品検索システム SPARS-J の実験的評価
梅森 文彰†

西秀雄†

横森楠本 真二†

励士†

山本哲男††

松下誠†

井上 克郎†† 大阪大学大学院情報科学研究科 〒 560–8531 大阪府豊中市待兼山町 1–3†† 独立行政法人科学技術振興機構 〒 332-0012 埼玉県川口市本町 4–1–8
E-mail: †{umemori,h-nisi,yokomori,t-yamamt,matusita,kusumoto,inoue}@ist.osaka-u.ac.jp
あらましソフトウェア部品検索システムの実現により，ソフトウェアの再利用や，対象ソフトウェアの理解を容易に行うことができると考えられる．本論文では，我々の研究グループが構築した Java ソフトウェア部品検索システム

SPARS-J について実験的評価を行う．実験においては，部品の取得を想定した検索について，一般的な検索システムとの適合率に関する比較を行うとともに，SPARS-J の順位付け性能に関する評価を行う．さらに，企業のソフトウェア開発現場に適用することで本システムの有効性を検証する．
キーワード

ソフトウェア部品，ソフトウェア検索，ソフトウェア再利用，Java，実験的評価

An Experimental Evaluation of Java Software Component Retrieval
System SPARS-J
Fumiaki UMEMORI† , Hideo NISHI† , Reishi YOKOMORI† , Tetsuo YAMAMOTO†† , Makoto
MATSUSHITA† , Shinji KUSUMOTO† , and Katsuro INOUE†† Graduate School of Information Science and Technology, Osaka University
1–3, Machikaneyama-cho, Toyonaka-shi, Osaka 560–8531, Japan†† Japan Science and Technology Agency
4–1–8, Honmachi, Kawaguchi-shi, Saitama 332–8531, Japan
E-mail: †{umemori,h-nisi,yokomori,t-yamamt,matusita,kusumoto,inoue}@ist.osaka-u.ac.jp
Abstract Software component retrieval system facilitates software reuse and software understanding. In this paper, we evlauate the effectiveness of SPARS-J(Software Product Archive, analysis and Retrieval System for Java).
On the experiments, we compare SPARS-J with other retrieval systems, and we evaluate about each ranking method
realized in SPARS-J. In addition, we apply it to the actual software development evironment.
Key words Software component, Software retrieve, Software reuse, Java, Experimental evaluation

1. は じ め に

新たなソフトウェアを開発 (ソフトウェア部品の再利用) したり，保守作業においてソフトウェアを把握 (ソフトウェアの理

近年のソフトウェアの大規模化と複雑化に伴い，開発された解) したりすることが容易となる．実際にオブジェクト指向設

ソフトウェアの有効な二次利用が極めて重要になりつつある．

計開発はソフトウェアを部品化する手法として注目を集めておここで言うソフトウェアの二次利用とは，開発されたソフトり，再利用に関する研究も盛んである [2], [5]．

ウェアに関する直接的な活動や，開発されたソフトウェアの稼

我々の研究グループでは，Java ソースコードの集合を対象と動と対比させたもので，ソフトウェアの再利用や生成されたソしたソフトウェア部品検索システム SPARS-J(Software Prod-

フトウェアの管理など，開発作業の効率化を目指す試みを指す．

uct Archive, analysis and Retrieval System for Java) に関す

既存のソフトウェアの有効的な活用方法として，ソフトウェる研究を行っている [10], [13]．SPARS-J では，ソースコードアの部品化があげられる．ソフトウェアの部品化を行い，個々内のクラスをソフトウェア部品とみなして，利用関係や類似との部品の関連性を把握することで，適切な部品を組み合わせていったソースコード特有の特性を考慮しながら大量のソフト—1—

ウェア部品に対する検索機能を提供する．さらに，検索結果表

2. 2 順位付け手法

示の際にソフトウェア部品に関する詳細な情報を併せて提供す

一般に検索を行う場合，検索キーと合致する適合文書は複数ることで，検索キーに関連したソースコードの効率的な検索機存在することが考えられる．そのため，検索結果を提示する際能を実現している．このシステムを用いることで，ソフトウェには適合文書に対して順位付けを行い，適切な順位で表示する

ア部品の知識が無い開発者も有用なソフトウェア部品やそれにことが必要となる．検索システムにおいては，検索キーと各文付随する有益な情報を平易に入手できる．しかし，SPARS-J書の適合度を計算し，その適合度に基づいて順位付けを行う手に関する評価は行われておらず，システムの有効性の評価が必法が一般的である．

要である．

しかし，ソフトウェア部品においては，クラスの継承やメソッ本研究では，SPARS-J について，ソフトウェア部品検索ド呼び出しなどのソフトウェア部品間の関係が存在し，それらシステムとしての実験的評価を行う．実験ではまず，多くのは抽出可能である．そのソフトウェア部品の特性を生かすため検索目的で用いられることの多い Web ページ検索エンジンに，我々は，検索キーと適合度が高い部品を上位に位置づける

Google [3] や，信頼性の高い全文検索システム Namazu [9] にことが重要であるのと同様に，よく利用されている部品を上位ついて SPARS-J との比較実験を行う．比較においては，あるに提示することも重要であると考える．なぜなら，そのような目的に応じた部品の取得を想定した検索を行い，上位で取得さ部品は利用例も多く，部品の再利用や理解をスムーズに行い易れた文書の適合率をもとに評価を行う．

いと考えられるからである．

次に，SPARS-J の順位付け性能に関する評価を行う．SPARS-

そのため，我々は，SPARS-J の実現に際し，検索キーと部J では，順位付けを行うための手法として，利用関係に基づい品の適合度を表す指標と共に，よく利用されている部品かを定た評価，各文書における検索キーの出現頻度に基づく評価を用量的に評価するための指標を実現した．以下，それぞれについいている．各順位付け手法を評価するために，ユーザが最適だて説明を行う．と思う順位と実際に得られた順位との差を求めることで，各評価付け手法の特徴や，最適な評価手法を調査する．

2. 2. 1 Keyword Rank 法
自然言語文書検索システムで一般的に用いられている手法で最後に，SPARS-J を企業における実際のソフトウェア開発

は，検索対象となる文書集合から各文書の特徴を表すキーワー

現場に適用し，被験者に対して実施したアンケート結果に関すドである索引語を抽出し，索引語の集合によってその文書の内る考察を行う．SPARS-J が検索システムとしてだけでなく，部容を近似する．登録するそれぞれの文書の特徴を的確に表すよ品の管理や理解を支援するシステムとしても有効であることをうに付与された，索引語の集合などからなる情報のことを索引確認する．

キーと呼ぶ．検索キーは検索者の要求の内容を近似しているた以降，2. 節で SPARS-J について簡単に説明する．3. 節では，各評価実験の概要および結果を紹介し，4. 節で実験的評価を通しての考察を行う．最後に，5. 節でまとめと今後の課題につい度に基づいて各文書を順位付けする手法がよく用いられる．

SPARS-J では，検索キーと部品の適合度を表す指標の算出手法として，情報検索の分野で一般的に用いられる TF-IDFて述べる．

2. SPARS-J
2. 1 概め，検索キーと各文書の索引キーとの適合度を測り，その適合要法 [7] に基づいた手法を採用した．TF-IDF 法は任意の部品中における特定の索引語の出現頻度 TF (Term Frequency)，および特定の索引語を含む部品数の逆数 IDF (Inverse Document

SPARS-J(Software Product Archive, analysis and Re-Frequency) の値をもとに索引語の重みの正規化を行う．そのtrieval System for Java) は，Java 言語 [6] で記述されたソース後，検索キー内の単語毎に各部品における索引語の重みを計算コードを対象としたソフトウェア部品検索システムである．一し，それに基づいて検索キーと各部品の適合度を算出する．

般にソフトウェア部品 (Software Component) は再利用できる

SPARS-J では，索引語の重みを算出する際に，出現した単ように設計された部品とされる [5] が，SPARS-J ではクラスを語の部品内での役割に応じて，異なる重みを与えている．経験

部品の単位とみて，各クラスのソースコードに対する検索機能的にクラス定義名やメソッド定義名など，その部品の概念を表を実現している．実際の利用では，SPARS-J は，Web ブラウ

す索引語に対して大きな重みを設定することで，与えられた検ザを介し入力された検索キーに対して，対応する索引キーを持索キーに適合する結果を得やすいことが分かっている．以下でつクラスを抽出し，その一覧を出力する．検索結果は検索キー

は，後述する CR 法に対応させて，本手法を KR 法(Keyword内の単語の部品における出現頻度の計算や，利用関係を評価すRank 法) と呼び，測定した適合度の値を KR 値と呼ぶ．

る手法 [4] により順位付けされる．

2. 2. 2 Component Rank 法

また，検索結果においては，あらかじめ抽出した部品間の利

我々はこれまでに，ソフトウェア部品間の利用関係に基づい用関係や類似部品に関する情報に基づいて，部品単体の情報だて順位付けする手法 (Component Rank 法，CR 法) を提案しけでなく，その部品に関連する部品の情報も提供する．これにている [4], [15]．CR 法では，十分な時間が経過し利用関係が収より，各部品の利用例の取得や，ソフトウェアの構造の理解な束した部品の集合に対して，各部品間に存在する利用関係に基どを支援することができ，効率的な再利用や保守を行なうことづいてグラフおよび行列を構築し，構築された行列に対して繰が可能となる．

り返し計算を行う事で各部品を評価する．求められる値は，開—2—

発者が利用関係に沿って参照を行うと仮定した場合の各部品の3. 1 実 験 目 的

参照されやすさを表しており，よく利用される部品や，重要な（ 1 ） 一般的な検索システムとの順位付け性能の比較部品から利用される部品の順位は高くなる．CR 法によって測

この評価実験では，一般的な検索システムと比較して，SPARS-定した適合度の値を CR 値と呼ぶ．

J が適合する部品をどれだけ十分に開発者に提供できるかを評

実際の部品の集合には多数のコピーや類似した部品が存在し価する．比較においては，ある目的に応じた部品の取得を想定ており，異なるシステムをまたいで全く同じ，もしくはほとんした検索を行い，上位で取得された部品の適合率をもとに評価

ど似た部品が現れる場合，それらの部品が再利用されたものとを行う．SPARS-J を用いることで迅速に目当てのソフトウェ推測できる．そのため，CR 法では類似した部品を部品群としア部品を検索でき，ソフトウェアの再利用に SPARS-J が有効てまとめ，解析の単位としている．こうすることで，それぞれであることを示す．の類似した部品への利用関係が一つの部品群への利用関係とみ（ 2 ） SPARS-J 内で利用される各順位付け手法の比較なされるため，コピーされた部品への評価を高くすることが可

2. 2 節で示したとおり，SPARS-J は CR 法と KR 法，更にそ能となる．類似部品の判定方法は [8] で示している．

れらを統合した CR+KR 法という 3 種類の順位付け手法を実2. 2. 3 順位の統合現している．この実験では，適合率やユーザが最適だと思う順

SPARS-J の CR 法，KR 法はそれぞれ別の観点から，部品位と実際に得られた順位との差を求めることで，各評価付け手の順位付けを行っている．この順位付けを統合することで，そ法の特徴や，最適な評価手法を調査する．

れぞれが持つ検索アルゴリズムの特徴を考慮した検索が可能で（ 3 ） 企業内のソフトウェアに対する SPARS-J の適用あると考えられる．このような順位の統合は，複数の検索シス

SPARS-J はただ単に検索機能を提供するだけでなく，データテムで同一の検索対象集合の検索を行ない，その結果を統合すベース内における利用関係や類似部品等，部品に関する様々な情ることで検索結果を返す，メタ検索システムで利用される手法

報を提供することができ，部品の管理や理解を支援するシステ

で，いくつかの順位統合の手法が提案されている．

ムとしても有効であると考えられる．この実験では，SPARS-JSPARS-J では CR 法，KR 法の順位の統合手法として，Bordaを企業におけるソフトウェア開発現場に適用し，実際の開発者・の手法 [1] を採用している．Borda の手法では，各順位に対し管理者に対してアンケートを実施することで，それらの情報がて評価点を割り当て，その合計値をもとに最終的に統合された実際の開発現場ではどのように役立てられるのかを確認する．

順位を求める．SPARS-J の CR 法，KR 法それぞれで得られた順位を評価点とし，2 つの評価点を足した合計点を昇順に並

以下では評価における指標について説明をした後に，各実験内容についてその詳細と実験結果を示す．

3. 2 実験における評価尺度べ直した順位を統合後の検索結果とする．
例えば，表 1 は CR 法，KR 法，および Borda の手法で統合された (CR+KR) 結果を，表 2 はそれに対応した各部品の評

実験では，以下の評価尺度を用いる．

•

適合率

価点を表しており，表中の A，· · ·，J はそれぞれ部品である．

検索された文書の中で適合している文書数の割合を指す指標で，部品 A は CR で 1 位，KR で 4 位であり，評価点は 5 点とな

適合率が高いほど検索結果に不必要な文書を含んでおらず，よる．よって部品 A は順位を統合した結果 2 位となる．

い検索結果を示しているといえる．

以下では，この CR 法，KR 法の出す順位の統合によって順位•ndpm(Normalized Distance-based Performance Mea-を求める手法を CR+KR 法と呼び，得られた順位を CR+KRsure) 法 [14] による評価による順位と呼ぶ．

順位付け手法の比較に用いられる手法で，文書間の順位付けの表 1 Borda の手法
CRKRCR+KR

1位

AC

2位

EF

3位

C4位

I

表2評 価点CR+KR差を表現する手法である．詳細は後述する．

3. 2. 1 ndpm 法 [14]部品

CRKRC

A

145ndpm 法とはユーザ・プリファレンスの概念を用いて，文書A

B

6511間の順位付けの差を表現する手法である．ユーザ・プリファレ

GEC

314A

F (3 位)D10

616ンスとは，そのユーザの好みを明示的に表現したものである．

5位

JB

B

E

2810

ここでは，文書におけるユーザプリファレンスを，文書を二つ6位

BDI (5 位)

F

8210

一組にして比較した場合の，「どちらの文書がより有用である（，7位

HIG

G9312あるいは目的に適合する）か」を記述したものとする．

8位

FEJH79169位

GHDI471110 位

DJH (9 位)

J51015

この時，D を文書の有限集合とすると，ユーザプリファレン
スは，d, d0 ∈ D について，D 上の二項関係 Â によって定義され，文書集合に対するユーザの各判断は，文書間の相対的な順序付けとみなすことができる．

3. 評 価 実 験
本節では SPARS-J について，ソフトウェア部品検索システムとしての実験的評価を行い，システムの有効性を検証する．

[14] では，この文書間の相対的な順序に着目し，ユーザの順位付けとシステムの順位付けの距離に基づいてシステムの性能を計測する手法として ndpm 法が提案されている．ndpm は以下のように計算することができ，0〜1 の値に正規化される．

—3—¶³

ndpm の計算方法0Google ではインデント表示されている類似ページを一件とみ0なし，Namazu の検索結果は手作業で類似部品をまとめ，一件d, d ∈ D の全ての組み合わせに対して，d Â1 d かつ
00d Â2 d となる d, d の組数を m とし，n を文書集合 D のとして扱った．

3. 3. 1 実 験 結 果

要素数とすると

ndpm(Â1 , Â2 ) =上記の検索対象データベースに対して，表 3 に示した検索

mn C2µキーワードで検索した結果を評価した．各キーワードの検索結´果に対する各検索システムの適合率の計算結果を示す．表中の値が小さいほど，ユーザの順位付けとシステムの順位付けの差が少なく，システムの順位付けが妥当で，ユーザの理想的なK1,· · ·,K10 は表 3 の検索キーワードの番号に対応している．
3. 3. 2 分析・評価

順位付けに沿ったものであることを示している．[14] では，こ適合率について SPARS-J と Google，Namazu とで，対応のの手法が順序的尺度の測定手法として妥当であることを確証しある平均値の差の検定 [11] を有意水準 5%で行ったところ，有ている．

意な差が存在した．このことから SPARS-J は，ソフトウェア

3. 3 評価実験 1:一般的な検索システムとの順位付け性能の比較実験では，以下の 2 つの検索エンジンを用いて SPARS-J に検索において，総合検索エンジンや文書検索システムと比較して明らかに優れており，部品検索システムとして機能を十分に果たすと期待できる．

よる検索結果の比較を行った．

••

表3

Google [3]

検索キーワード

検索キーワードNamazu [9]K1

quicksort

K2

binarysearch

索システムである．実際には Web ページ上でソースコードのK3

clock applet

解説を行っているものも多く，ソフトウェアを検索するときにK4

applet textarea

は Google を用いることが多い．また，Namazu はフリーウェ

K5

randum number generate

アでありながら幅広い導入実績を持つ，信頼性の高い全文検索

K6

stack push pop

システムである．

K7

chat server client

K8

classfile dump

K9

zip deflate

Google は多くの検索目的に用いられる有用な Web ページ検一般に，Web ブラウザを介して提供される検索システムにおいては，検索結果として一番最初に表示されるページに該当部

K10 write read inputstream outputstream

品があれば，利用者はそれを利用するが，なければ利用者は下位を見に行くよりも，クエリを変更して再検索することが多い．
そこで比較実験では，ある目的に応じた部品の取得を想定し3. 4 評価実験 2:SPARS-J 内で利用される各順位付け手法の比較た検索を行い，上位で取得された部品の適合率をもとに評価を行う．具体的には，システムが順位付けしたときの検索結果上SPARS-J におけるそれぞれの順位付け手法である，CR 法，

位 10 件の部品に対する適合率を計算する．SPARS-J を用いKR 法，CR+KR 法の比較を行う．SPARS-J の場合，順位付ることで迅速に目当てのソフトウェア部品を検索でき，ソフトけ手法を変えても，部品の検出手法は変わらない．そのため得ウェアの再利用に SPARS-J が有効であることを確認する．

られる検索結果は，検索キーと合致する索引キーを持つ部品の検索対象データベース集合において，その順位付けのみが変わったものである．

実験においては，JDK1.4 や，SourceForge.net [12] などのそこで実験では，実験 1 と同じ検索を行い，各順位付け手法

オープンソース開発コミュニティなどで公開されているソースにおける検索結果上位の適合率を求めると共に，検索結果からコード，約 14 万ファイル (約 15 万クラス) から SPARS-J のユーザにとっての最適な順位を作成し，その最適な順位との比データベースを構築した．

較を行う．具体的には，システムが順位付けしたときの検索結

また，Namazu についても，データベースを自分で構築する

果上位 10 件の部品に対する適合率を計算するとともに，ndpmことができるため，SPARS-J のデータベースに登録するソフ法を用いて，実際に得られた順位と最適な順位との差を計算

トウェア部品群と全く同じものを用いた．

することで，各評価付け手法の特徴や，最適な評価手法を調査

それに対して，Google に対する検索では，一般に公開されている検索エンジンに対してクエリを入力し，得られた結果をGoogle の結果とみなした．
なお，SPARS-J における検索結果は類似部品を一つのグルーする．
検索対象となるデータベースおよび検索キーワードは，評価実験 1 と同じものを利用した．

3. 4. 1 実 験 結 果

プにまとめているため，それらの部品群は一件の検索結果とし

SPARS システムの各順位付け手法に対して，表 3 に示されて扱われている．そのためある一つの部品が検索結果の上位にた各キーワードの検索結果に対する適合率の計算結果を表 4 に，順位付けされている場合，その類似部品はいくつあったとしてndpm 値の計算結果を表 5 に示す．

も順位付けに影響しない．そこでそれに対応した処置として，—4—

2 週間の運用の後，その 7 名に対して，本システムの使いや3. 4. 2 分析・評価適合率について対応のある平均値の差の検定を行ったところ，すさに関してアンケートを行った．本システムの使いやすさにKR 法と CR+KR 法は CR 法と比較して有意水準 5%で有意な関して行ったアンケートの項目とその回答結果を下の表 6 に示差が存在した．また，ndpm 値の比較についても同様に対応のす．回答は 1 から 5 までの 5 段階評価で，5 が一番良い評価である平均値の差の検定を行ったところ，CR 法と CR+KR 法あり，逆に 1 が一番悪い評価となっている．また表中の空白はは，KR 法と比較して有意水準 5%で有意な差が存在した．こその項目に対して無回答であったことを示す．また，表の一番れらのことから，CR 法は KR 法と比較して，全体的にユーザ右の列はその項目において最も回答が多かった評価値 (最頻値)の想定する順位付けがされていると考えられ，KR 法は上位にを表す．

適合部品が多く存在しやすいと考えられる．また，CR+KR 法

表6は CR 法と KR 法の両方の性質を受け継ぎ，それぞれ CR 法，KR 法より順位付けの性能が改善していると考えられる．

CR

アンケート内容とその回答
回答 (良 5 4 3 2 1 悪)

回答者

A B C D E F G 最頻値

使い勝手について

表4適合率の評価結果

KR

CR+KR Google Namazu

パッケージブラウザの利用

544533552455435,4555K1

1

110.70.9

類似部品のグループ化

K2

1

1

10.40.6

被利用クラスの参照

5555K30.50.50.50.30.4

利用クラスの参照

55515554211454,1K40.4

0.90.80.30.6

メトリクス値K50.4

0.4

0.4

0.10.3

ソースコードのダウンロード

35152

5553354

1

5,3K6

0.2

0.2

0.2

00.1

時間的コストの削減

K70.9

110.30.4

ソフトウェア品質の向上

33

53413553

132

15,3,1

K8

10.8

10.1

0.2

企業内のソフトウェア把握

K9

0.6

0.7

0.7

0.4

0.4

表示について

K10

0.5

0.7

0.7

0.4

0.7

検索結果一覧

5344

53550.46ハイライト表示

553

555

5

5

Ave. 0.65 0.72

0.73

0.3

3. 5. 1 分析・評価
表 5 ndpm 法による評価結果

CRKRCR+KR

表 6 のアンケート結果から，SPARS-J における「パッケージブラウザの利用」，「類似部品のグループ化」，「利用クラスのK10.036078 0.048104 0.037004

K20.193676 0.260840 0.221344

K30.133333 0.116667 0.091667

K40.122908 0.199672 0.189121

K50.207827 0.191633 0.194332

中でもパッケージブラウザと利用クラスの参照，被利用クラK6

0.183755 0.184040 0.159717

スの参照という機能は，ソフトウェアシステムの全体像の把握

K70.080519 0.103247 0.079870という目的に非常に合致しており，非常に便利であったという

K8

0.047059 0.109244 0.052101

意見が多かった．具体的な感想では，SPARS-J を用いること

K90.190476 0.304762 0.257143

K100.209524 0.323810 0.266667

Ave. 0.143373 0.178014 0.140611

参照」，「被利用クラスの参照」「検索結果一覧」，「ハイライト表示」は，実際の開発現場の開発者や管理者から高い評価を得ていることがわかる．

で，「部品を利用しているアプリの把握」ができ，「部品改訂時の影響範囲の調査」がしやすいと評価された．また，検索時間が短くレスポンスがよいため非常に利用しやすいという意見も

3. 5 評価実験 3:企業内のソフトウェアに対する SPARS-Jの適用
この実験では，企業の協力を得て SPARS-J を実際の開発現場において適用した結果を紹介する．協力した企業は食品製造業で，商品の在庫や出荷管理，社内の事務手続きに関するソフトウェアシステムを構築している．
我々は，実際の業務における検索システムを用いたソースコード管理支援を目的として，蓄積された企業内のソフトウェ
アの一部 (約 2500 クラス) を用いて SPARS-J のデータベースを構築し，適用した．被験者は企業内のソフトウェア開発者 7名で，その中にはソフトウェアの部品化や標準化の担当者も含む．

あった．

4. 実験の考察
4. 1 一般的な検索システムとの順位付け性能の比較
実験結果として得られた上位の適合率を比較すると，SPARS-

J は Java のソフトウェア部品検索を想定した場合，Google やNamazu より優れていると言える．
Google は Web ページ検索システムであり，ソフトウェア部品検索に特化していない．そのため，検索対象範囲が広すぎて検索結果が絞りきれず，ソフトウェア部品検索として必要のないものが多数上位に順位付けされ，適合率が低くなったと考えられる．Namazu は SPARS-J の KR 法と同様に評価値にTF-IDF 法を用いている．しかしながら，上位の適合率におい—5—て有意差が見られたのは，SPARS-J では構文解析を行い索引て検索結果上位における適合率で有意な差を見ることができた．

語の種類によって重み付けを行っているためであると考えられ

また，SPARS-J 内における各順位付け手法の違いにおいては，る．索引語の重み付けを行うことで，重要な位置に出現してい検索結果上位の適合率や，ユーザの理想順位との差の比較におる場合には高い評価を与えることができる．実験の結果から，

いて 2 つの順位付け手法にそれぞれ特徴が見られ，さらにそれソースコード中で単に出現回数が多いだけで上位に順位付けすらを組み合わせた順位付け手法においては単独で順位付けを行るのは，誤りであるということがわかる．

うより順位付けの性能の向上が見られた．さらに，アンケート

4. 2 SPARS-J 内で利用される各順位付け手法の比較の結果から，SPARS-J はソフトウェアの再利用を目的とした検対応のある平均値の差の検定により，各手法によって得られ索だけでなく，ソフトウェアシステムの保守などを目的とした，た適合率，ndpm 値において手法間で有意差が存在した．実験

部品の管理や把握に非常に有効であるという結果が得られた．

より，CR 法は全体的にユーザの想定する順位に近いという点

これらを総合すると，SPARS-J はソフトウェア部品検索シで優れており，一方，KR 法は検索結果上位における適合率のステムとして高度な順位付けの性能を持ち，ソフトウェア開発点で優れているという性質を持つと考えられる．

時の部品再利用の促進・支援や保守時における部品の把握を支

また，CR+KR 法によって順位付けされた結果は，CR 法の持つ「ユーザの想定する順位で部品が並びやすい」という性質援するのに有効で，その結果，ソフトウェア品質の向上支援に利用でき，過去の資産の共有に役立つと考えられる．と，KR 法の持つ「検索結果上位に適合部品が存在しやすい」

今後の課題として以下が挙げられる．という性質を持つものであった．CR+KR 法は CR 法と KR 法•

他のソフトウェア部品検索システムとの比較の両方の性質を受け継ぎ，CR+KR 法により順位付けの性能が•順位付け性能以外の定量的な評価改善できると考えられる．これは，CR 法か KR 法の片方の順謝辞

本研究は，独立行政法人科学技術振興機構計算科学

位付けでのみ高順位に順位付けされても CR+KR 法による順技術活用型特定研究開発推進事業 (ACT-JST) の支援を受けて位付けでは上位には順位付けされず，CR 法と KR 法の両方でいる．

高順位に順位付けされた部品のみが上位に順位付けされるからであると考えられる．

4. 3 企業内のソフトウェアに対する SPARS-J の適用
SPARS-J の実際の利用後のアンケートでは，検索結果だけでなく，それに付随した要素である，「パッケージブラウザの利用」，「ハイライト表示」「利用クラスの参照」，「被利用クラスの参照」が役に立ったという回答が多かった．中でもパッケー
ジブラウザと利用クラスの参照，被利用クラスの参照という機能は，ソフトウェアシステムの全体像の把握という目的に非常に合致しており，非常に便利であったという意見が多かった．

SPARS-J は，ただ単に再利用時に部品を取得したいという目的だけでなく，既存の部品の保守や管理という目的でも非常に有用であると考えられる．
アンケート時に得られた要望としては，日本語の対応など検索面での性能向上と共に，利用者に応じた検索範囲の制限機能の実現などが挙げられた．これは，実際の開発現場ではコーディングを社外に発注することが多く，様々な立場の開発者がシステムの作成に関わっていることを示している．組織における実利用を考えた場合，単に検索機能や使い勝手だけではなく，セキュリティなどの面を考える必要があることがわかったのは非常に有意義であったと思う．現在は，日本語対応など，要望のあった機能の一部を実現している．

5. まとめと今後の課題
本研究では，ソフトウェア部品検索システム SPARS-J の実験的評価を行った．実験では，SPARS-J と他の検索システム

Google，Namazu との比較や，SPARS-J 内の各順位付け手法の比較を行った．さらに，実際の企業の開発現場に適用し，アンケートによる定性的な評価を行った．

文献[1] J. C. Borda: “M’emoire sur les ’elections au scrutin”, Histoire de l’Acad’emie Royale des Sciences, (1781).
[2] C. Braun: “Reuse, in John J. Marciniak, editor”, Encyclopedia of Software Engineering, Vol. 2, John Wiley & Sons,
pp. 1055–1069, (1994).
[3] “Google”, http://www.google.com/ .
[4] K. Inoue, R. Yokomori, H. Fujiwara, T. Yamamoto, M. Matsushita, S. Kusumoto: “Component Rank: Relative Significance Rank for Software Component Search”, Proceedingsof the 25th International Conference on Software Engineering (ICSE2003), pp. 14–24, Portland, Oregon, U.S.A., May
6-8, (2003).
[5] I. Jacobson, M. Griss and P. Jonsson: “Software Reuse”,
Addison Wesley, (1997).
[6] J. Gosling, B. Joy, G. Steele, and G. Bracha: “The Java
Language Specification”, Addison-Wesley, (2000).
[7] 北, 津田, 獅々堀: “情報検索アルゴリズム”, 共立出版, (2002).
[8] 小堀, 山本, 松下, 井上: “類似度メトリクスを用いた Java ソー
スコード間類似度測定ツールの試作”, 電子情報通信学会技術研究報告, SS2003-2, Vol. 103, No. 102, pp. 7–12, (2003).
[9] “Namazu Project”, http://www.namazu.org .
[10] 西, 梅森, 山本, 横森, 松下, 楠本, 井上: “Java ソフトウェア部
品解析・検索システム SPARS-J の構築”, 電子情報通信学会技術研究報告, SS2003-23, Vol. 103, No. 481, pp.43–48, (2003).
[11] 芝, 渡部, 石塚 編: “統計用語辞典”, 新曜社, (1984).
[12] “SOURCEFORGE.net”, http://sourceforge.net/ .
[13] 山本, 横森, 松下, 楠本, 井上: “利用頻度に基づくソフトウェア部品の解析・検索システムの提案”, 電子情報通信学会技術研究
報告, SS2002-17, Vol. 102, No. 329, pp. 13–18, (2002).
[14] Y. Y. Yao: “Measureing Retrieval Effectiveness Based onUser Preference of DocumentS”, Journal of the American
Society for Information Science, Vol. 46, No. 2, pp. 133–145, (1995).
[15] 横森, 藤原, 山本, 松下, 楠本, 井上: “利用実績に基づくソフトウェ
ア部品重要度評価システム”, 電子情報通信学会論文誌 D-I, Vol.
J86-D-I, No.9, pp.671–681, (2003), and Technical Reportof SE Lab, Dept. of Computer Science, Osaka University,
SEL-Nov-21-2002, Nov (2002).

評価の結果，SPARS-J は比較した他の検索システムと比べ—6—