ソースコードの特徴語を用いた
Java ソフトウェア部品の自動分類手法の提案
仁井谷 竜介 ††松下 誠 †井上 克郎 †大阪大学 大学院情報科学研究科〒 560-8531 大阪府豊中市待兼山町 1-3

ソフトウェア部品検索システムは，再利用および理解支援に有効なシステムで，様々な手法で実現されている. 本研究ではこの中でもカテゴリ検索に着目する．カテゴリの作成や維持は，手作業で行うには多大な時間と手間を要するため，自動化は不可欠といえる．そこで，ソースコードの特徴語を用いてソフトウェア部品を自動分類する手法を提案する. ソースコードの特徴語とは「そのソースコードを特徴づける重要な語」のことを指し，1 つのカテゴリを形成するものとする．提案する分類手法をもとにソースコードを分類するシステムおよび，その分類結果を利用する検索システムを構築した．またその評価を行い，提案手法がソフトウェア部品の分類に有効であることを確認した．

Automatic Categorization Method for Java Components
Using Feature Words of Source Code
Ryusuke Niitani††Makoto Matsusita†

Katsuro Inoue†

Graduate School of Information Science and Technology, Osaka University
1-3 Machikaneyama-cho, Toyonaka, Osaka 560-8531, JapanA software component retrieval system is one of efficient support systems for the software reuse. I
focus category search systems in the retrieval systems implemented by various method. Categories
are maintained by superintendent; so the cost for maintenance is very high. In this paper, I propose amethod for automatic software categorization using feature words of source code. A ”feature word ofsource code” means the word that characterizes its source code and forms one category. Based on theproposed method, I implemented an auto-categorization system and a category search system. I also
evaluated and confirmed that proposed method can categorize software adequately.

-1-1

まえがき

語を用いてソフトウェア部品を分類する手法につ近年のソフトウェアの大規模化と複雑化に伴い，いて述べる．4 節で提案手法を実現したシステム

ソフトウェア部品の再利用性の向上が叫ばれていについて述べる．5 節で，そのシステムの評価実る．そのための技術の 1 つとしてソフトウェア検験について述べる．最後に 6 節でまとめと今後の索システムがある．ソフトウェア検索システムは課題について述べる．

大きく分けて，検索者にクエリを入力させるもの

2

ソフトウェア部品検索と，あらかじめ分類されたカテゴリから探すもの

本節ではソフトウェア部品検索システムについの 2 つである．前者の例として SPARS-J[10, 2]，て説明した後，クエリ入力検索とカテゴリ検索によ後者の例として SourceForge[6] が挙げられる．以る部品検索の概要と，既存の研究について述べる．

降，後者のカテゴリ検索について考える．

2.1

カテゴリ検索の利点は，ツリー上のカテゴリに

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

部品の検索とは，分類された部品集合から必要従って段階的に絞り込めることや，検索者が存在な部品を探し出す作業である．自然言語文書の検を知らない有意義なカテゴリの発見ができること

索システムでは，検索しようとするトピックのキーにある．しかし，このカテゴリは手作業で維持さワードをクエリに用いて検索するのが一般的であれることが多く多大な時間と手間がかかる．特に，るが，ソフトウェア部品検索システムでは，キーソフトウェア部品を対象とする場合，追加あるいワードの他に部品の特徴をあらわすメトリクス，記は更新しようとするソフトウェア部品がどのカテ述されている言語，求める機能の抽象表現などをゴリに属するのかの判断が非常に困難である．まクエリに用いる場合もある．また，クエリを必要た，対象数が多いため，手作業でそれを判断するとしないものもある．には多くの専門知識を持った人と膨大な時間を要2.1.1する．さらに，カテゴリの再構成・維持作業も大クエリ入力検索システム

きな手間がかかる．従って，ソフトウェア部品を検索者に検索語や検索文といったクエリを入力対象としたカテゴリ検索を効率的に行うには，カさせ，そのクエリとの適合度の高いものを検索すテゴリへの分類とカテゴリの維持の自動化が不可るシステム．適切なクエリを入力すれば検索者の欠である．

意図通りの結果が得られるのが利点である．逆に，

本研究では Java ソフトウェア部品の特徴を表す

適切なクエリを入力しないと，意図したものが検特徴語を定義し，この特徴語を 1 つのカテゴリと索されなかったり，意図しないものが検索されるみなしてソフトウェア部品を自動的に分類する手問題点がある．

法を提案する．本手法では分類の入力として，ソー2.1.2

カテゴリ検索システム

スコード中に出現する識別子，コメント中の単語クエリを入力せずあらかじめ用意されたカテゴを用いる．部品ごとに，これらの全ての語に対しリから対象を探す検索システム．段階的に絞り込て重みを求め，重みの大きい上位の語をその部品めることが利点である．また，検索者はその存在の特徴語と決定する．次に，得られた特徴語を 1を知らないカテゴリなど意図しない発見ができる．

つのカテゴリとみなして各部品を分類する．そしカテゴリの維持は手作業でされることが多いため，て，ツリー状のカテゴリ間の関係および，類似し多大な時間と手間がかかる．

たカテゴリをまとめる関係を生成する．

2.2

さらに，提案する分類手法を実現するシステム

関連研究

我々の研究チームでは，Java のソースコードをおよび，検索システムを構築し分類結果の評価を対象としたソフトウェア部品検索システム SPARS-行った．その結果，提案手法を用いたソースコーJ[10, 2] の構築を行っている．SPARS-J は，依存や類似といったソフトウェア部品特有の特性を考ドのみによる分類の有効性を確認した．
以下，2 節で既存のソフトウェア部品検索シス慮しながら，大規模なライブラリの構築を行う．検テムについて述べる．3 節でソースコードの特徴索語とその出現箇所を検索クエリとした全文検索-2-

図 1: 提案手法の概要を行い，部品に対する検索語の重みを出現箇所とする．

TF-IDF 法 [8] から求める KR 法と，部品の重みをその利用実績から求める CR 法の 2 つの手法にソースコードを入力として部品ごとに特徴語を決よって検索結果を順位付けている．

定し，(2) 得られた特徴語を 1 つのカテゴリとみな提案する手法の概要を図 1 に示す．本手法は，(1)ソフトウェアを分類し，ライブラリとしての再して各部品を分類する．(3) ツリー状のカテゴリ間利用を支援する研究も行われている．Börstler は，の関係および，類似したものをまとめる関係を生コンポーネントの性質や属性からソフトウェアの成するという 3 つの手順で分類を行う．

特徴を抽出し，それに基づいて分類分けを行う手

3.1

法 FOCS[1] を提案した．コンポーネントはいくつ

用語

本提案手法における用語の定義を与える．

かの特徴から構成される．

部品・ソフトウェア部品Java のクラス．

鷲崎らの JComponentSearch[9] は分類システム

特徴語自然言語を対象とした分類，検索，データではないが，依存関係に基づく分類システムといマイニング関連で使われる言葉．
「文書の特徴をう見方もできる．これはブラックボックス的な再表す語」という共通の意味で使われる．特徴語利用を支援する．

は，単に文書中に出現した重要な語を指す場合ソフトウェア部品ではなくソフトウェアを対象と，その文書中に出現したかに関わらずその文とした分類手法として，川口の LSA に基づく手書を特徴づける重要な語の 2 つに大きく分けら

法 [4] が挙げられる．これはソフトウェアのソースれる．前者は検索対象の語の数を削減するためコードに出現する識別子に対して LSA[5] を適用や，要約の一種として検索者に見せるために用し，その結果を用いて識別子によるソフトウェアいられる．後者は前者と同様の目的以外に「文の非排他的クラスタリングを行っている．これに書中に出現しない重要な語の付加」のために用より，前提知識を用いずにソフトウェアの集合をいられる．

機能やライブラリやアーキテクチャといった，複本研究では，後者の意味をソースコードに導入数の視点による自動分類を実現している．

した形で用いる．つまり，その語がソースコーソフトウェアシステム間の関連を対象にした研究

ドに出現したかに関わらず部品を特徴づける語として，山本らの SMMT[7] が挙げられる．SMMTを特徴語と定義する．特徴語の集合は，全部品は 2 つのソフトウェアシステムの類似度を計測すのソースコードのいずれかに出現する語全てのる．SMMT ではコードクローン検出技法 [3] に基集合に含まれるものとする．

づいてソースコード行単位での類似度を測定する．

複合語1 つ以上の語が繋がってできている語．例

しかし，SMMT での類似度の定義は，同じソースえば，XMLParser は「XML」と「Parser」のから派生したようなソフトウェア間の類似度は適2 つからなる複合語．
単一語複合語の最小単位．例えば，XMLParser で正な値が出力されるが，全く出自が異なるソフトウェア間では類似度の値が極端に低くなる．

3は「XML」と「Parser」．

提案手法

部分語複合語を単一語の切れ目で区切ったときの本研究では，ソフトウェア部品をカテゴリに自一部，あるいは全部．例えば，XMLParser の部

動的に分類し，得られたカテゴリ間に関係を作成

分語は，「XML」と「Parser」と「XMLParser」．

-3-

では上位 10 語を特徴語とする．

3.2.1

語の出現重みKind を語の種類，KWk を種類 k に対応する重み，Countcwk を部品 c における語 w の種類が kとして出現した回数と表すとき，部品 c に対する語 w の出現重み (W Wcw ) は次の式で表される．

W Wcw =

図 2: 親子関係・集合類似関係
単語重み特徴語を決定するための重み．全ての部

Xk∈Kind品に対して単語ごとに決定される．

KWk × log(1 + Countcwk )回数の対数をとっているのは，同じ語が何度も語の出現重み語の種類（表 1）を考慮した重み．
表 1: 語の種類
クラス定義名
メソッド定義名
インタフェース名
パッケージ名
インポートパッケージ名 呼出しメソッド名
参照フィールド変数名
生成したクラス名
変数の型名
参照する変数名
コメント
文書コメント
行末コメント
文字列リテラル使われたときに，重みが高くなりすぎることを防ぐためである．

3.2.2

語の記法統一と複合語による重み再計算

コーディングスタイルなどの違いによる語の表記の違いの統一と，部分語に対する重みの配分計算を同時に扱う．再計算後の部品 c に対する部分0
語 w’ の重み (W Wcw0 ) は以下の式で与えられる．

カテゴリ共通の特徴語を持つ部品の集合．部品に0W Wcw
0 =対して複数個の特徴語が決定されるので，ソフXw∈W

トウェア部品はカテゴリによって非排他的に分DWww0 × W Wc0 w

W は処理前の全ての語の集合．DWww0 は語 w
に対する部分語 w’ の関係の重みで以下の式で与え類されることになる．
カテゴリ間の関係本研究ではカテゴリ間の関係をられる．

親子関係，集合類似関係，類似関係の 3 つの関係と定義する．

DW

親子関係カテゴリを部品の集合としてみたとき

ww0=に，ある程度の誤差を許容して集合の包含関µcount(w0 )count(w)¶2count(w) は語あるいは部分語 w を構成する単一語の数．例えば RemoveElementAt という語の重みは，ElementAt に 49 ，Element に 19 倍して加算係が成り立つとき，その包含する方を親，包含される方を子と定義する（図 2 左）．誤差については後述する．

することになる．

集合類似関係カテゴリを部品の集合としてみたときに，ある程度の誤差を許容して集合の同また，elementAt や element at といった表記の値関係が成り立つとき，その間に集合類似関違う語を Element と At の複合語として同じもの係があると定義する（図 2 右）．とみなし，表記の違いを統一する（大文字小文字の違いは無視する）．

類似関係カテゴリの特徴語同士に高い類似度が3.2.3見られるものにこの関係があると定義する．

対象語の削減カテゴリ木カテゴリ間の親子関係に基づく，カテ計算量の軽減のために，分類に影響のない語をゴリをノードとするツリー．ただし，子の重複削除する．1 つの部品にしか出現しない語は，以を認める．

降の手法にとって有益な情報ではないので削除対

3.2

象としている．

特徴語決定

3.2.4

特徴語を決定するために，まず部品ごとに語に利用関係による重み加算対する重み（単語重み）を求める（図 3）．得られ部品間の利用関係を語の重みに反映するために，た単語重みの高い語を部品の特徴語とする．ここ利用関係による重み加算後の部品 c に対する語 w-4-種類
継承
抽象クラス実装
インタフェース実装
変数宣言の型
インスタンス生成
フィールド参照
メソッド呼出し

図 3: 単語重み計算の流れ
表 2: 利用関係の種類
概要
子クラスが親クラスを利用
実装クラスが抽象クラスを利用
実装クラスがインタフェースを利用
変数宣言したクラスが変数型を定義するクラスを利用インスタンス化したクラスが生成したクラスを利用
参照元クラスがフィールドを定義するクラスを利用
呼出し元クラスがメソッドを定義するクラスを利用の重み（W W 0 cw）を求める．
X0W Wcw= W Wcw +RWcc0 × W Wc0 w

法では，「(foo に対する A の重み) = 1.23」の様に，ベクトルの要素をその語に対する重みとして利用する．

c0 ∈C,c0 6=c3.3

ここで C は全部品の集合．RWcc0 は c と c’ の関係

カテゴリ間の関係生成

この節では，カテゴリに親子関係，集合類似関の重みである．

係，類似関係を与える手法について述べる．

Java のようなオブジェクト指向言語では，親クラスに実装のほとんどが書いてあり，子クラスには3.3.1

包含関係によるカテゴリ木・関係生成その差分だけが書いてある場合が多い．そのため，カテゴリは部品の集合なので，それぞれに包含対象のクラスの語を見るだけに比べ，親クラスの関係が存在する．従って，包含するものを親，包語にもある程度の重みを与えて加えた方が，有益含されるものを子とすると，ツリー状の関係を生な特徴語の決定に結びつくと考えられる．同様の成することができる．また，同じ集合をなすカテ

理由から，メンバ変数として持つクラスなどといっゴリを同値の関係とすることができる．

た関係のあるクラスの語にも重みを与えている．

本研究では，包含関係が完全に成り立っていな

なお，部品間の利用関係を表 2 に示す．これはくても，ある程度の誤差を許容して上記の親子関SPARS-J で用いられているものと同じである．

係と同値関係が成り立ったものとみなして，それ3.2.5

ぞれ親子関係，集合類似関係を生成する．

LSA

LSA は類似度を求めるための統計的手法である．

3.3.2

LSA により，出現の傾向が類似する語同士に似たような重みがつくような補正をかける．

特徴語間の類似度による関係生成

特徴語（カテゴリ）同士の類似度は，特徴語決定に用いた行列から求めることができる．その類似度を用いて，類似度が一定以上のカテゴリ同士

表 3: LSA で得られたベクトル
語＼文書ABCD
foo
1.23 3.56 5.67 7.89
bar-4.12 15.2 3.89 0.23に類似関係を生成する．
類似度はコサイン尺度で求める．コサイン尺度は以下の式で表される．
nX例として 4 つの文書 A，B，C，D と 2 つの語

ai bi~a · ~bi=1v
Simab = cos θ ==v
uX
u n|~a||~b|u n 2 uXt
ai t
b2i

foo，bar について考える．表 3 は文書 A，B，C，
D に対する foo と bar の LSA 適用後の重みを表す．
通常 LSA は「(foo) = (1.23, 3.56, 5.67, 7.89)」のi=1

様に foo と bar をベクトルとして用いるが，本手-5-i=1

Simab は特徴語 a，b 間の類似度．~a は特徴語決定に用いた行列における a の行（あるいは列）．~b4.2

単語重み計算部

は特徴語決定に用いた行列における b の行（ある3 節で説明した，語の重み計算・利用関係による重み加算・語の記法統一と複合語による重み再計いは列）．

算・対象語の削減・LSA の適用を行う．

3.3.3

誤差の許容

4.3

親子関係A の要素の 8 割以上が B に含まれたら，部品ごとに重み順で語をソートし，上位 10 語をA が子で B が親とする．

その部品の特徴語とする．

集合類似関係A ∩ B の要素が A，B にそれぞれ 84.4割以上含まれていたら成り立つとする．

3.3.4

カテゴリ間の関係生成部

T
包含される要素数の割合，W Wcw
× W Wcw でカテゴリ間の関係の優先順位求められる特徴語間の類似度を用いてカテゴリ間同時に複数の関係が成り立つ場合があるので，以に関係を生成する．

下の優先順位によって 1 つに決める．

4.5(1) 集合として同一なら集合類似関係(2) 包含関係なら親子関係

検索部

分類結果を評価するための検索システム．カテ
ゴリ，部品の検索を行う．

(3) 成り立っていれば集合類似関係(4) 成り立っていれば親子関係(5) 成り立っていれば類似関係

実験

54 節で述べたシステムを用いて実際に部品の分類を行い，分類結果の評価を行った．

自動分類システム

4

特徴語決定部

5.1

本研究で開発したシステムは大きく分けてソー実験対象

スコードの解析部，単語重み計算部，特徴語決定ロボットシステム（Robocode のロボット）の部

部，カテゴリ間の関係決定部，検索部の 5 つに分品 245 クラス（35 システム）を分類対象とした．

けられる（図 4）.

5.2

実験方法

実際に分類を行い，どれだけ適切にカテゴリが作られているかを評価する．また，ソースコード中にはない特徴語がどれだけ特徴を表しているかを評価する．
評価は (1) カテゴリに属する部品の適合率，(2)部品が属するカテゴリの適合率，(3) ソースコー
ド中にはない特徴語の適合率の 3 つの値によって行う．
適合率 (precision) とは，検索結果の中でどれだけ適合するものがあるかを表し，1 に近いほど良図 4: システム構成図

い結果であることを示す．
検索結果を評価するには再現率 (recall) も併せ4.1

ソースコード解析部 (SPARS-J)て用いることが多い．再現率を求めるには，部品本研究では Java ソースコードの解析結果をごとに「特徴語であるべき語」の一覧を作らなけ

SPARS-J のデータベースから取得する．クラス

ればいけないが，何が特徴語であるかを事前に決名やメソッド名といった語の抽出や，各部品間の定することが困難であるため，今回の実験では用利用関係を利用する．

いない．

-6-

5.2.1

評価に用いる適合率

図 5 とは，部品とカテゴリの関係が逆転している．
従って，各縦棒が 1 つの部品に対応し，横軸は部品を適合率でソートして並べている．横軸の数は(カテゴリ C に属する部品の適合率)= |in(C)∩match(C)||in(C)|(1)(部品 c が属するカテゴリの適合率)
atch(c)|= |Belong(c)∩M|Belong(c)|(2)

部品の数を表す．適合率の平均は 0.8633 であった．
図 7 は式 3 のソースコード中にはない特徴語の適合率で，縦軸，横軸，横軸に平行な点線は図 5と同様である．適合率の平均は 0.4933 であった．

(ソースコード中にはない特徴語 C の適合率)= |nothave(C)∩in(C)∩match(C)||nothave(C)∩in(C)|(3)
C 特徴語、または特徴語 C が形成するカテゴリ

precision of category
average precision

10.8460

precision

0.8

c 部品in(C)カテゴリ C に含まれる部品

0.6

0.4

0.2

match(C)カテゴリ C に適合する部品
nothave(C)ソースコード中に特徴語 C がない部
品

0406080100
category

120140160

180200precision of component
average precision

10.8633
0.8precision

カテゴリ・部品間の適合の条件

0.6

カテゴリに部品が適合する条件とは，カテゴリ0.4に対応する特徴語が部品のソースコードもしくは，0.2親クラスのソースコードの特徴を表すことである．

0020406080100component

ただし，以下のようなものは適合としない．

図 6: 各部品が属しているカテゴリの適合率• そのカテゴリに含まれる部品の集合が同様のものであるが，そのうちのどれかを表すだけの特徴語がそのカテゴリに対応している

precision of category
average precision

10.8

precision

0.6

例：Read というカテゴリ中に，FileReader とFileWriter が入っている

0.49330.40.2• ソースコード中に現れるがあまり特徴を表さな
い
例：ループ制御変数 i0-0.2

0204060
category

80100120

図 7: ソースコード中にはない特徴語の適合率• 自身の特徴を表さないような子クラスの特徴語例：FileWriter の子クラスが FileURLWriter でFileWriter の特徴語に URL が入っている
5.320

図 5: 各カテゴリに属している部品の適合率

Belong(c)部品 c が属するカテゴリ
Match(c)部品 c に適合するカテゴリ
5.2.2

05.4

考察

各カテゴリに属している部品，各部品が属して結果いるカテゴリの適合率は，0.85 前後の高い値を示

図 5 は式 1 の各カテゴリに属している部品の適している．従って，本手法による分類結果は適切合率で，縦軸が適合率を表し，各縦棒が 1 つのカテであると言える．

ゴリに対応する．横軸はカテゴリを適合率でソー

しかし，カテゴリに属している部品の中で，適トして並べている．横軸の数はカテゴリの数を表

合率が 0 のカテゴリがいくつか発見された．具体し，横軸に平行な点線は適合率の平均を表してい

的には，Javadoc タグ (@param,@author など) ，る．適合率の平均は 0.8460 であった．

HTML タグ (br,li など)，前置詞，助詞，代名詞といったもので，ドキュメントコメント中に繰り返

図 6 は式 2 の各部品が属しているカテゴリの適合率で，各カテゴリに属している部品の適合率の-7-し出現していたのが原因と考えられる．this は代[2] Inoue, K., Yokomori, R., Yamamoto, T.,

名詞以外にも，Java の予約語として使われている

Matsushita, M. and Kusumoto, S.: Ranking
Significance of Software Components Basedon Use Relations, IEEE Transactions on

が，他の識別子と区別をしなかったため，いくつかの部品では特徴語となっていた．
特徴語のカテゴリに含まれる部品が，全てソーSoftware Engineering, Vol. 31, No. 3, pp.
213–225 (2005).

スコード中にその特徴語を持っていた場合，分母が 0 になり式 3 の適合率が計算できない．このよう[3] Kamiya, T., Kusumoto, S. and Inoue, K.:
CCFinder: A Multi-Linguistic Token-based
Code Clone Detection System for Large

なカテゴリの，全カテゴリに対する割合は 0.5677であり，多くを占める．これより，特徴語の多くはソースコード中に含まれていることがわかる．

Scale Source Code, IEEE Transactions.
Software Engineering, Vol. 28, No. 7, pp.

また，図 7 のソースコード中にはない特徴語の適合率の平均は 0.5 近くであり，部品対カテゴリの654–670 (2002).

適合率に対し，低い値となった．この原因は，特徴[4] Kawaguchi, S., Garg, P. K., Matsushita,
M. and Inoue, K.: MUDABlue: An Au-語が 10 個固定である点にあると考えられる．複雑な部品では特徴語の数は 10 個では足りず，高い適合率を得られたものの，特徴語のほとんど，あるいは全てがソースコード中に出現していた．逆に，

the 11th Asia-Pacific Software Engineering
Conference(APSEC2004), Busan, pp. 184–193 (2003).

単純な部品では特徴語の数は 10 個では多すぎ，その中にいくつもの無関係な特徴語が含まれたために，適合率は低い値となっていると考えられる．

6

tomatic Categorization System for Open
Source Repositories, The Proceedings ofまとめ[5] Landauer, T. K., Foltz, P. W. and Laham, D.: An Introduction to latent Seman-

本研究では，ソフトウェア部品に対して特徴語

tic Analysis, Discourse Processes, Vol. 25,
pp. 259–284 (1998).

を決定し，それを用いてカテゴリ木を構成する分類手法の提案と実装を行った．また実験を行い，本手法を用いることにより対象部品群に対する詳細[6] SourceForge: . http://sourceforge.net/.

な知識がなくとも自動的に分類が行えることを示[7] 山本哲男，松下 誠，神谷年洋，井上克郎：ソフトウェアシステムの類似度とその計測ツールした．
今後の課題としては，まず，部品ごとの特徴語の数が 10 個に固定であることを解決するために，適切な数を調査することが上げられる．次に，その数の取得を自動化すること，不適切な特徴語のSMMT，電子情報通信学会論文誌， Vol. J85D-I, No. 6, pp. 503–511 (2002).
[8] 北 研二，津田和彦，獅々堀正幹：情報検索アルゴリズム，共立出版 (2002).

排除方法の考案が挙げられる．また，SPARS-J との連携，利用関係の重みといったパラメータのよりよい決定方法の模索や，より大規模な実験，そ[9] 鷲崎弘宜，深澤良彰：オブジェクト指向プロして実行速度およびスケーラビリティの向上が挙グラムのためのコンポーネント抽出型検索シげられる．

ステム，情報処理学会オブジェクト指向シンポジウム 2003 論文集，pp. 77–84 (2003).

参考文献[10] 横森励士，梅森文彰，西 秀雄，山本哲男，
松下 誠，楠本真二，井上克郎：Java ソフト[1] Börstler, J.: Feature Oriented Classificationfor Software Reuse, Proceedings of the 7thInternational Conference on Software Engineering and Knowledge Engineering, Skokie,

ウェア部品検索システム SPARS-J，電子情報通信学会論文誌， Vol. J87-D-I, No. 12, pp.

1060–1068 (2004).

IL, pp. 204–211 (1995).

-8-c