• 検索結果がありません。

2

1 3 4 6 5

T

total

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 84

ハッシュ関数を用いた解決法

 ハッシュ関数 h( T

total

) を用いた加工

 | h( T

total

) - h( T

total

×0.97 ) |≦ 1

 | h( T

total

×1.03 ) - h( T

total

) |≦ 1

h( T

total

)

T

total

2

1 3 4 6 5

T

total

×0.97 T

total

×1.03

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 85

ハッシュによる類似判定の効率化

 現状の問題点

類似判断には96(トークン構成)+6(複雑度)=102種類のメトリク 用いて比較を行っている。スを

新しい部品が入ってきた場合、全部の既存部品と

102

種類のメトリクスの 比較を行なわないとならない

 アイデア

下記のような部品を比較対象から除外することで、さらに高速化できないか

1.

トークンの総出現回数が

0.97

倍未満

or 1.03

倍超である部品

2.

複雑度メトリクスが閾値を超える部品

 実現方法

最終的な類似判断結果に直接影響を与えるメトリクス(=主メトリクス)を キーとしたハッシュを利用し、事前に分類をしておく.

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 86

類似判定の効率化

メトリクス計測時に、いくつかの主メ トリクスでハッシュキーを作成する

ハッシュキーと既存登録部品を 対応させた表を構築しておく

DB [ 0. 0. 0]= null

[ 10. 62.124]=

部品

A [ 10. 62.125]=

部品

B

,部品

C

[ 10. 62.126]= null

[255.255.255]=

部品

Z

・・

・・

8bit 8bit 8bit

主メトリク

A

ハッシュキー =

(24bit)

新しく類似測定をしたい部品

P

が追加 される

部品

P

のハッシュキー=

[10.62.125]

主メトリクス

[A,B,C]

の閾値=

[0.0.1]

最終結果を変えずに解析コスト を下げることが可能

102

種のメトリクスを用いた類似判定 の計算を行うのは、部品

A

B

C

3

つのみとする

主メトリク

B

主メトリク

C

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 87

ハッシュ関数を用いた解決法

 ハッシュ関数 h( T

total

) を用いた加工

 | h( T

total

) - h( T

total

×0.97 ) |≦ 1

 | h( T

total

×1.03 ) - h( T

total

) |≦ 1

h( T

total

)

T

total

2

1 3 4 6 5

T

total

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 88

ハッシュ関数を用いた解決法

 ハッシュ関数 h( T

total

) を用いた加工

 | h( T

total

) - h( T

total

×0.97 ) |≦ 1

 | h( T

total

×1.03 ) - h( T

total

) |≦ 1

h( T

total

)

T

total

2

1 3 4 6 5

T

total

×0.97 T

total

×1.03

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 89

ハッシュ関数を用いた解決法

 ハッシュ関数 h( T

total

) を用いた加工

 | h( T

total

) - h( T

total

×0.97 ) |≦ 1

 | h( T

total

×1.03 ) - h( T

total

) |≦ 1

h( T

total

)

T

total

2

1 3 4 6 5

T

total

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 90

ハッシュ関数を用いた解決法

 ハッシュ関数 h( T

total

) を用いた加工

 | h( T

total

) - h( T

total

×0.97 ) |≦ 1

 | h( T

total

×1.03 ) - h( T

total

) |≦ 1

h( T

total

)

T

total

2

1 3 4 6 5

T

total

×0.97 T

total

×1.03

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 91

ハッシュ関数を用いた解決法

 ハッシュ関数 h( T

total

) を用いた加工

 | h( T

total

) - h( T

total

×0.97 ) |≦ 1

 | h( T

total

×1.03 ) - h( T

total

) |≦ 1

h( T

total

)

T

total

2

1 3 4 6 5

h( T

total

)

は,閾値

1

の主メトリクスとして機能する

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 92

実験結果

主メトリク

ス 類似クラス

タ 最終クラス

タ 計算コスト

(sec)

未使用

1 278 05.02

[ C ] 21 278 00.56

[ C,M ] 85 278 00.29

[ C,M,T ] 232 278 00.16

C

:サイクロマチック数

M

:宣言メソッド数

T : f( T

total

)

対象 :

JDK1.3

     

431

クラス 文字列比較を用いた類似度測定ツールの計算コスト:

24.35

sec

DB [ 0. 0. 0]= null

[ 10. 62.124]=

部品

A [ 10. 62.125]=

部品

B

,部品

C

[ 10. 62.126]= null

[255.255.255]=

部品

Z

・・

・・

SPARS-J の類似度測定部「 Luigi 」として実装

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 93

実験結果

主メトリク

ス 類似クラス

タ 最終クラス

タ 計算コスト

(sec)

未使用

1 278 05.02

[ C ] 21 278 00.56

[ C,M ] 85 278 00.29

[ C,M,T ] 232 278 00.16

C

:サイクロマチック数

M

:宣言メソッド数

T : f( T

total

)

文字列比較を用いた類似度測定ツールの計算コスト:

24.35

sec

トークン構成度

+

複雑度の両方で類似と判定 され、最終的に類似と判定された部品群の数

SPARS-J の類似度測定部「 Luigi 」として実装

対象 :

JDK1.3

     

431

クラス

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 94

実験結果

主メトリク

ス 類似クラス

タ 最終クラス

タ 計算コスト

(sec)

未使用

1 278 05.02

[ C ] 21 278 00.56

[ C,M ] 85 278 00.29

[ C,M,T ] 232 278 00.16

C

:サイクロマチック数

M

:宣言メソッド数

T : f( T

total

)

文字列比較を用いた類似度測定ツールの計算コスト:

24.35

sec

類似度の測定精度を落とすことなく 効率だけが上がっている

SPARS-J の類似度測定部「 Luigi 」として実装

対象 :

JDK1.3

     

431

クラス

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 95

実験結果

主メトリク

ス 類似クラス

タ 最終クラス

タ 計算コスト

(sec)

未使用

1 278 05.02

[ C ] 21 278 00.56

[ C,M ] 85 278 00.29

[ C,M,T ] 232 278 00.16

C

:サイクロマチック数

M

:宣言メソッド数

T : f( T

total

)

文字列比較を用いた類似度測定ツールの計算コスト:

24.35

sec

メトリクス比較により,コストは

1/5

SPARS-J の類似度測定部「 Luigi 」として実装

対象 :

JDK1.3

     

431

クラス

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 96

実験結果

主メトリク

ス 類似クラス

タ 最終クラス

タ 計算コスト

(sec)

未使用

1 278 05.02

[ C ] 21 278 00.56

[ C,M ] 85 278 00.29

[ C,M,T ] 232 278 00.16

C

:サイクロマチック数

M

:宣言メソッド数

T : f( T

total

)

文字列比較を用いた類似度測定ツールの計算コスト:

24.35

sec

メトリクス比較により,コストは

1/5

ハッシュキーにより,コストは

1/30

SPARS-J の類似度測定部「 Luigi 」として実装

対象 :

JDK1.3

     

431

クラス

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 97

SPARS-J ( 2/2 )

 Component Rank の計算では,部品間のコピー関係を把握す るために類似度を測定している

 類似部品を一つの部品群として扱い,利用関係を合成する

 評価値にコピー関係を反映させることが可能

部品

A +

部品

部品部品群

A A

これまでは,ソースコードの文字列比較を行う事で,類似部品を判定していた

類似

合成

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 98

T total をハッシュキーに適応するときの問

題点

 類似判定の条件

diff( A,B )

min(T

total

A, T

total

B

) 0.03

トークンの差分が

T

total

3

以内

DB [ 0. 0. 0]= null

[ 10. 62. 29]=

部品

A [ 10. 62. 30]=

部品

B

,部 品

C

[ 10. 62. 31]= null

[255.255.255]=

部品

Z

・・

T

total

=30

 ⇒

DB

[ 0. 0. 0]= null

[ 10. 62.145]=

部品

A [ 10. 62.146]= null

[ 10. 62.147]= null [ 10. 62.148]=

部品

B [ 10. 62.149]=

部品

C

[ 10. 62.150]=

部品

D

,部品

E [ 10. 62.151]= null

[ 10. 62.152]=

部品

F [ 10. 62.153]= null [ 10. 62.154]=

部品

G

[ 10. 62.155]=

部品

H,

部品

I [255.255.255]=

部品

Z

T

total

=150

 ⇒

145

155

29

31

・・

Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 99

類似度判定法 (トークン構成メトリクス)

■ 部品 A と部品 B の非類似度

D ( A,B )0.03 なら A,B は類似と

関連したドキュメント