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

ソフトウェア再利用時におけるライセンス違反検出技術に関する研究

N/A
N/A
Protected

Academic year: 2021

シェア "ソフトウェア再利用時におけるライセンス違反検出技術に関する研究"

Copied!
86
0
0

読み込み中.... (全文を見る)

全文

(1)

ソフトウェア再利用時における

ライセンス違反検出技術に関する研究

コンピュータサイエンス専攻 井上研究室

博士後期課程3年

真鍋雄貴

2011/7/6- 公聴会

1

(2)

ソフトウェアの再利用

既存のソフトウェアに含まれるソフトウェア部品を新たな

ソフトウェアの開発に利用すること

ソフトウェア部品:ソースファイル,クラス,関数など

オープンソースソフトウェアがソフトウェア部品の大きな

供給源

ソフトウェア部品検索システムにより,オープンソースソ

フトウェアのソースファイルの取得が容易になっている

Google Code Search, Koders, SPARS

オープンソースソフトウェアを用いた

ソースファイル単位のソフトウェアの再利用

に着目

(3)

著作権

著作物の利用に関して,著作者に与えられる独

占的権利

知的財産であるソフトウェアを法的に保護す

る仕組みの一つ

利用:複製,改変,再配布

ソフトウェアの再利用を行うためにはそのソフ

トウェアの著作者から許諾を得る必要がある

2011/7/6- 公聴会

Yuki Manabe

3

(4)

ソフトウェアライセンス

著作者が定めた,利用に関する許諾と許諾を得るため

の要求や義務

オープンソースソフトウェアの場合,指定されている

ライセンスに従えば利用することができる

再利用する対象のライセンスを調べないといけな

オープンソースライセンス

Open Source Initiative が承認 (66 種 )

(例) GNU General Public license version 3(GPL

v3), BSD4 項ライセンス (BSD4) など

(5)

ライセンス違反

再利用されたソースファイルのライセンスと再利用先の

ソフトウェアのライセンス間で不整合が生じていること

ソースコードの公開や,販売停止に追い込まれるかもし

れない

ライセンスを正しく確認せずに再利用を行うと発生

2011/7/6- 公聴会

Yuki Manabe

5

ライセンス違反を防止したい

開発中のソフトウェアで発生している

ライセンス違反を検出する

(6)

ライセンス違反検出問題

GPL

LGPL

EPL

BSD3

再利用

特定

ソフトウェア

ライセンス

各ソフトウェアについて,各ソフトウェアのライセンスと,

再利用しているソフトウェアから到達できるライセンス集合

を比較し,矛盾の有無を判定する問題

第2章,第3章

第4章

(7)

論文構成

第1章 はじめに

第2章 階層的ライセンス知識を用いたライセンス特定ツール

の開発 [1-1][1-2]

第3章 オープンソースソフトウェアにおけるライセンス分布

の調査 [1-3][1-4]

第4章 コードクローンメトリクスに基づくソースコード再利

用判定閾値の決定手法 [1-5]

第5章 むすびに

2011/7/6- 公聴会

Yuki Manabe

7

ソフトウェア再利用検出

ライセンス特定

(8)

階層的ライセンス知識を用いた

ライセンス特定ツールの開発

(9)

概要

問題点

ライセンス記述の表記ゆれなどのため,既知のラ

イセンス記述とコメントとの簡単な照合では特定

できない

研究内容

ライセンス特定での課題を調査した

階層的ライセンス知識を用いたライセンス特定

手法の提案

提案手法の実装 Ninka と他のライセンス特定

ツールと精度の点で比較

2011/7/6- 公聴会

Yuki Manabe

9

(10)

ライセンス特定

ソースファイルからそのソースファイルのライセン

スを決定する作業

ソースファイルのライセンスはコメント中で指定さ

れる

ライセンスを指定する記述をライセンス記述と呼

ソースファイル中のライセンス記述と既知のライセ

ンス記述と照合することにより,ライセンスを特定

する

(11)

ライセンス記述の例

2011/7/6- 公聴会

Yuki Manabe

11

Copyright (c) 2005, 2006 Taras Puchko

All rights reserved.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holders nor the names of its

contributors may be used to endorse or promote products derived from

this software without specific prior written permission.

...

Copyright (c) 2003, the JUNG Project and the Regents of the University

of California

All rights reserved.

This software is open-source under the BSD license; see either

"license.txt" or

(12)

ライセンス記述の表記ゆれ

綴り間違いや単語の同義語への変更などの表記揺れ

( 例 ) "license" → "licence"

ソースファイルにより変化する著者名や組織名

( 例 ) “Neither the name of the <ORGANIZATION> n

or the names of its contributors…”

ソースコード中のライセンスの記述と既知のライセン

ス記述を単純に照合するだけでは特定することは困難

どのような要因が照合を困難にするかよくわかって

(13)

ライセンス特定の課題調査

Linux, Eclipse JDT, OpenBSD, Mozilla などに含まれる

ソースファイル 30000 ファイルを対象に調査

得られた課題

ライセンス記述の表記揺れ

綴り間違い,著者名や団体名への記述,文法やつづ

りの変更

著作者による既存のライセンスの修正

条項の追加,削除

ソースファイルとは異なるファイルへの参照がある

複数のライセンスが含まれる

2011/7/6- 公聴会

Yuki Manabe

13

(14)

ライセンス特定ツールに

求められる要件

多くの表記ゆれを考慮してライセンスを特定で

きる

⇒OSS を多数調査する

新しいライセンス記述への適合が容易

⇒ 短いルールとしてライセンスルールを定義で

きること

高速に処理できる

⇒ スケーラビリティの高い,高速な処理

(15)

提案手法

2011/7/6- 公聴会

Yuki Manabe

15

(2)

コメントの文への分割

(3)

ライセンスに関係ない文の除

(4)

メタライセンス文とのマッチ

ング

(5)

ライセンスルールとのマッチン

(1)

コメント抽出

ソースファイル

コメント

ライセンスに関する文

メタライセンス文の列

メタライセンス文

ライセンスルール

キーワード

ライセンス知識

ライセンス名

処理

データ

凡例

OSS Corpus

(30000 files)

• Linux

• Eclipse JDT

• OpenBSD

• Mozilla

etc...

(16)

/*

* Copyright (c) 2001 foo [email protected] All rights reserved.

*

* Redistribution and use in source and binary forms, with or without

* modification, are permitted provided that the following conditions

* are met:

* 1. Redistributions of source code must retain the above copyright

...

* 2. Redistributions in binary form must reproduce the above copyright

...

*

* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ...

* IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS ...

*/

#include <sys/cdefs.h>

#include <sys/types.h>

#include <sys/types.h>

1 コメント抽出

/*

* Copyright (c) 2001 foo [email protected] All rights reserved.

*

* Redistribution and use in source and binary forms, with or without

* modification, are permitted provided that the following conditions

* are met:

* 1. Redistributions of source code must retain the above copyright

...

* 2. Redistributions in binary form must reproduce the above copyright

...

*

* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ...

* IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS ...

*/

先頭にある

コメントを

ライセンス

記述として

抽出

(17)

2 コメントの文への分割

2011/7/6- 公聴会

Yuki Manabe

17

/*

* Copyright (c) 2001 foo [email protected] All rights reserved.

*

* Redistribution and use in source and binary forms, with or without

* modification, are permitted provided that the following conditions

* are met:

* 1. Redistributions of source code must retain the above copyright

...

* 2. Redistributions in binary form must reproduce the above copyright

...

*

* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ...

* IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS ...

*/

[Copyright (c) 2001 foo [email protected] All rights reserved. ]

[Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are

met:]

[1.]

[Redistributions of source code must retain the above copyright notice...]

[2.]

[Redistributions in binary form must reproduce the above copyright ...]

[THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS

"AS IS"...]

[IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS ...]

[3] P. Claugh. A Perl program for sentence splitting using rules.

http://ir.shef.ac.uk/cloughie/software.html, April 2001.

[3]

に基づくア

ルゴリズムと

いくつかのヒ

ューリスティ

ックにより分

(18)

[Copyright (c) 2001 foo [email protected] All rights reserved. ]

[Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are

met<colon>]

[1.]

[Redistributions of source code must retain the above copyright notice...]

[2.]

[Redistributions in binary form must reproduce the above copyright ...]

[THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS

<quotes>AS IS<quotes>...]

[IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS ...]

3 ライセンスに関係ない文の除去

[Copyright (c) 2001 foo [email protected]

All rights

reserved. ]

[

Redistribution

and use in source and binary forms, with or without

modification, are permitted provided that the following

conditions

are

met:]

[1.]

[

Redistributions

of source code must retain the above copyright notice...]

[2.]

[

Redistributions

in binary form must

reproduce

the above copyright ...]

[THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS

AS IS

”...]

[IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS ...

DAMAGES

...]

[Copyright (c) 2001 foo [email protected] All rights reserved. ]

[Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are

met:]

[1.]

[Redistributions of source code must retain the above copyright notice...]

[2.]

[Redistributions in binary form must reproduce the above copyright ...]

[THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS

“AS IS”...]

[IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS ...DAMAGES…]

ライセンスに関

係のない文を除

all rights, conditions, distributions,

reproduce, damages, as is

キーワード

ライセンスに関係ある文に

よく含まれる語句

文が残っていない

⇒"NONE”

(19)

4 メタライセンス文とのマッチング

2011/7/6- 公聴会

Yuki Manabe

19

[Copyright (c) 2001 foo [email protected] All rights reserved. ]

[Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions are

met:]

[Redistributions of source code must retain the above copyright notice...]

[Redistributions in binary form must reproduce the above copyright ...]

[THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS

“AS IS”...]

[IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS ...]

BSDcondSource:

Redistributions? of

source code must retain the (above )?

copyright notice, this list of conditions(,)?

and the following disclaimer(, without

modification)?:

メタライセンス文

マッチング

[AllRights]

[BSDPre]

[BSDcondSource]

[BSDcondBinary]

[BSDasIs]

[BSDWarr]

BSDcondSource

(20)

5 ライセンスルールとのマッチ

ング

[AllRights][BSDPre][BSDcondSource][BSDcondBinary][BSDasIs][BSDWarr]

BSD2 (BSD 2-clauses

license)

BSD2

: BSDPre, BSDcondSource, BSDcondBinary, BSDasIs, BSDWarr

ライセンスルール

マッチング

ライセンスルールはライセンス名とメタライセンス文名の列との

一致するライセンスルールな

し → "UNKNOWN"

(21)

評価実験

目的 :

Ninka がほかのツールより優れていることを示す

手法 :

手で特定した結果とツールが出力した結果を比較する

使用したツール:

Ninka( 提案手法の実装 ), FOSSology 1.0.0, ohcount version

3.90rc, OSLC 3.0

使用したソースファイル:

Debian5.0.2 に含まれるソースファイル 250 個

Debian 5.0.2 のパッケージのうち, 250 個をランダムに選択

各パッケージから1ファイルランダムに選択

2011/7/6- 公聴会

Yuki Manabe

21

(22)

結果

Ninka

FOSSology

ohcount

OSLC

回答率 [%]

82.8

99.6

100

100

正答率 [%]

96.6

55.0

33.2

22.8

正答率 ( 名前

のみ ) [%]

97.1

88.7

88.0

26.0

実行時間 [s]

22

923

27

372

回答率:どれだけの実験対象に対して,回答を出

力できたか

正答率:出力された回答が手で特定された結果と

どれだけ一致しているか

(23)

第2章のまとめ

複数の大規模オープンソースソフトウェアからライセン

ス特定の課題を調査

ライセンス特定ツールの要件を満たすライセンス特定手

法を提案

より柔軟にライセンス知識を記述できる

従来手法と比べ,正答率,実行時間の点で優れていた

ライセンス違反検出で重要なライセンスの特定を精度よ

く,高速にできるようになった

Ninka は以下のサイトにて公開中

http://ninka.turingmachine.org/

2011/7/6- 公聴会

Yuki Manabe

23

(24)

オープンソースソフトウェアに

おけるライセンス分布の調査

(25)

概要

問題

ライセンスが変更されるのか,またその頻度は

どのくらいあるのかが分からないため,どの程

度ライセンス特定を行う必要があるか不明

研究内容:

Ninka を用いていくつかの大規模な FOSS につい

て,複数のリリースのライセンスを解析し,リ

リースごとにどのようにライセンス分布が変わ

るかを調査

2011/7/6- 公聴会

Yuki Manabe

25

(26)

解析対象

FreeBSD

OpenBSD

Eclipse

ArgoUML

Type

OS kernels

OS kernels

SDE platform

UML Design

Tools

Release

Version

2.2-8.0

2.0-4.7

3.5.2

2.0-

0.31.1

0.8.1-Release Date

1994/11-2009/11

1996/10-

2010/5

2002/6-

2009/9

2000/10-

2010/6

# release

28

45

25

79

#Files

(oldest-latest)

3490

627-

3314

987-

11419-

35880

2208

686-Version

Control

System

CVS

CVS

CVS

Subversion

(27)

FreeBSD における

ライセンス分布

2011/7/6- 公聴会

Yuki Manabe

27

2.

2.

0

2.

2.

2

2.

2.

6

2.

2.

8

3.

1.

0

3.

3.

0

3.

5.

0

4.

1.

0

4.

2.

0

4.

4.

0

4.

6.

0

4.

6.

2

4.

8.

0

4.

10

.0

5.

0.

0

5.

2.

0

5.

3.

0

5.

5.

0

6.

1.

0

6.

3.

0

7.

0.

0

7.

2.

0

8.

0.

0

0

500

1000

1500

2000

2500

3000

3500

4000

BSD4

BSD3

BSD2

InterACPILic

CDDLic

Others

NONE

UNKNOWN

Release Version

#

f

le

(28)

2.

0

2.

0.

1

2.

1

2.

1.

1

2.

1.

2

2.

1.

3

3.

0

3.

0.

1

3.

0.

2

3.

1

3.

1.

1

3.

1.

2

3.

2

3.

2.

1

3.

2.

2

3.

3.

1

3.

3.

1.

1

3.

3.

2

3.

3

3.

4

3.

4.

1

3.

4.

2

3.

5

3.

5.

1

3.

5.

2

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

EPLv1

CPLv0.5

CPLv1

MPLv1_1

BSD3

Others

NONE

UNKNOWN

Release Version

#

f

le

s

Eclipse におけるライセンス分

CPLv0.5→CPLv1.0

CPLv1.0→EPLv1.0

(29)

第 3 章のまとめ

複数の FOSS について,リリースごとにどのようにライ

センス分布が変わるかを調査

FreeBSD や OpenBSD において,大規模なライセンス

の変化がある

ArgoUML や Eclipse についても類似した変化がある

FreeBSD や OpenBSD と比べてさらに劇的に変化

する場合がある

少数のライセンスがシステムの大半をカバーして

いる

各ソースファイルのバージョン毎にライセンス特定を

行う必要があることを示した

2011/7/6- 公聴会

Yuki Manabe

29

(30)

コードクローンメトリクスに基

づくソースコード再利用判定閾

値の決定手法

(31)

概要

問題点

ソフトウェア間で再利用が行われているかを

判定する明確な基準が存在しない

研究内容

コードクローンに基づく再利用検出手法のた

めの閾値を実験的に決定する手法の提案

提案手法により決定された閾値を用いて,大

半のソフトウェア再利用の有無を判定できた

2011/7/6- 公聴会

Yuki Manabe

31

(32)

コードクローン

他のコード片と類似または一致するコード片

再利用された部分がコードクローンとして検出できる可能

性がある

再利用の方法のひとつがコピーアンドペースト

コードクローンもコピーアンドペーストで生成されうる

コードクローンメトリクス

コードクローンから算出できる尺度

コードクローン

(33)

想定する再利用検出手法

2011/7/6- 公聴会

Yuki Manabe

33

1.コード

クローンメ

トリクス値

の算出

再利用が行わ

れているとみ

なす閾値

再利用が行わ

れていないと

みなす閾値

コードクロー

ンメトリクス

2 . 判定

再利用あり

or

再利用なし

or

不明

判定結果

判定対象の

ソフトウェアの組

(34)

判定方法

(

例:最大コードクローン

長 )

30

50

70

90

11

0

13

0

15

0

17

0

19

0

21

0

23

0

25

0

27

0

29

0

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

コードクローンメトリクスの大きさ

再利用が行われている

とみなせる閾値

再利用が行われていな

いとみなす閾値

ソフトウェアの間で

再利用が行われてい

ソフトウェアの間では

再利用は行われていな

不明

(35)

閾値決定手法

2011/7/6- 公聴会

Yuki Manabe

35

1.

正解集合

の作成

2.コードクロ

ーンメトリクス

値の算出

3.

閾値の

算出

コードクロ

ーンメトリ

クス値

ソフトウェアの組の集合

再利用がある場合の

正解集合

再利用がない場合の

正解集合

再利用

ありと

みなす

閾値

3.

閾値の

算出

なしと

再利用

みなす

閾値

(36)

閾値の算出

各正解集合と各ソフトウェアの組のクローンメトリクス値から,適

合率を算出する

適合率:検出した組のうち,正解集合に含まれる組が占める割合

適合率が 1 になる定義域から閾値を決定する

0

1.0

コードクローンメトリクス値

再利用なしと

みなせる閾値

再利用ありと

みなせる閾値

閾値を超えた組を再利用あり

とみなした場合の適合率

閾値を下回る組を再利用なし

とみなした場合の適合率

(37)

実験

目的

提案した手法により,閾値が決定でき,求めた

閾値を用いてソースコード再利用を検出できる

か確認する

実験内容

各クローンメトリクスに対する閾値決定

複数のクローンメトリクスを用いた再利用検出

ロジスティック回帰モデルを用いた場合の閾値

決定

2011/7/6- 公聴会

Yuki Manabe

37

(38)

実験環境

再利用検出対象:オープンソースソフトウェア 50 個

Free Software Directory で配布されている

様々なドメインから取得

C 言語もしくは C++ で開発されている

コードクローン検出ツール CCFinderX

最小トークン数 30

使用するコードクローンメトリクス

コードクローン検出数

最大コードクローン長

2 つのソフトウェア間で検出されるコードクローンの中で最

大のコードクローン長を持つコードクローンのトークン数

部分類似度

(39)

実験手順

オープンソースソフトウェア 50 個から正解集合

を作成する

再利用が行われている組: 121 組

再利用が行われていない組: 1104 組

提案した手法と作成した正解集合,オープンソー

スソフトウェア 50 個から2つを選んでできる組 1

225 組を用いて閾値を求める

求めた閾値を用いて,各オープンソースソフト

ウェアの組が再利用が行われているか,行われて

いないか判定した

2011/7/6- 公聴会

Yuki Manabe

39

(40)

閾値と検出結果

再利用が行われている組,再利用が行われていな

い組をそれぞれ 75% 以上検出できている

再利用あり

再利用なし

閾値

270

50

検出できた組数

( 75% )

91/121

877/1104

(79%)

(41)

第4章のまとめ

再利用検出手法のための閾値を実験的に決定する

手法を提案

手作業により判別されたソフトウェアの組の集

合を正解集合として利用

閾値と適合率の関係から再利用が行われている

場合,行われていない場合の閾値を決定

決定した閾値を用いて,大半の再利用が行われて

いない組,再利用が行われている組を検出できた

根拠に基づいて再利用の有無を判定することがで

きるようになった

2011/7/6- 公聴会

Yuki Manabe

41

(42)

むすび

ライセンス違反検出問題を解くために以下の研究を行った

階層的ライセンス知識を用いたライセンス特定ツールの開発

ライセンス違反検出で重要なライセンスの特定を精度よく

,高速にできるようになった

オープンソースソフトウェアにおけるライセンス分布の調査

ライセンスは変化するため,ライセンス違反検出において

は各ソースファイルの各バージョンでライセンス特定を行

う必要がある

コードクローンメトリクスに基づくソースコード再利用判定

閾値の決定手法

根拠をもって再利用の有無を判定することができるように

なった

(43)
(44)
(45)

1章

(46)

代表的な OSS ライセンス

3-clause BSD License(BSD3)

派生物は著作権の告知,条項のリスト,保障

の放棄を含めなければならない

Apache License Version 2(Apachev2)

派生物は著作権,特許,商標,帰属の告知を

含めなければならない

GNU General Public License Version 3(GPLv3)

派生物は GPLv3 のもとで配布されなければな

(47)

2章

(48)

ライセンス特定の既存手法

FOSSology, OSLC

既知のライセンス記述と,コメントとの一致部分の多さから

ライセンスを特定

ALSA, Ohcount

既知のライセンス記述に対応する正規表現とコメントとの

マッチングからライセンスを特定

問題点

ライセンスの版(バージョン)を答えない

複数回答を報告する

ライセンスを特定する際に使用する知識の管理が容易でない

(49)

ライセンス知識の規模

メタライセンス文: 427 文

ライセンスルール: 126 個 (112 種のライセンス

に対応)

キーワード: 82 語

2011/7/6- 公聴会

Yuki Manabe

49

(50)
(51)

ライセンスの進化

ソフトウェアライセンスは環境に適合する

ソフトウェアライセンスが進化する理由 [2-2]

作者の要求

ユーザーの要求

外部からの圧力

2011/7/6- 公聴会

Yuki Manabe

51

[2-2] M. Di Penta, D. M. German, Y.-G.

Gueheneuc, and G. Antoniol. "An exploratory

study of the evolution of software licensing" ,

ICSE2010

.

(52)

FreeBSD における

ライセンス比率の変化

2.

2.

1

2.

2.

5

2.

2.

7

3.

0.

0

3.

2.

0

3.

4.

0

4.

0.

0

4.

1.

1

4.

3.

0

4.

5.

0

4.

6.

1

4.

7.

0

4.

9.

0

4.

11

.0

5.

1.

0

5.

2.

1

5.

4.

0

6.

0.

0

6.

2.

0

6.

4.

0

7.

1.

0

7.

3.

0

-300

-200

-100

0

100

200

300

BSD2

BSD3

BSD4

InterACPILic

CDDLic

Release Version

#F

il

es

(53)

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

FreeBSD5.2.1 から 5.3 の間での変化

2011/7/6- 公聴会

Yuki Manabe

53

5.3

存在

しな

BSD

2

BSD

3

BSD

4

Inter

ACPI

Lic

CDD

L

5.2.1

存在

しな

-

97

24

13

0

0

BSD

2

31

689

0

0

0

0

BSD

3

18

2

235

0

0

0

BSD

4

23

0

233

229

0

0

Inter

ACPI

Lic

0

0

0

0

141

0

CDD

L

6

0

0

0

0

0

(54)
(55)

閾値を用いた検出結果

2011/7/6- 公聴会

Yuki Manabe

55

再利用あり

コードクローン検出

最大コードクローン

部分類似度

再利用が行われて

いるとみなせる下

限値

590

270

0.30

検出できた組数

1/121

91/121

72/121

再利用なし

コードクローン検出

最大コードクローン

部分類似度

再利用が行われ

ていないとみな

せる上限値

-

50

-検出できた組数

-

877/1104

(56)

-コードクローンメトリクス詳細

コードクローン検出数

2つのソフトウェア間で検出されるコードクローン

の組

最大コードクローン長

2 つのソフトウェア間で検出されるコードクローン

の中で最大のコードクローン長を持つコードクロー

ンのトークン数

部分類似度

最大コードクローン長を持つコードクローンの組が

,それらのコードクローンを含むソースファイルに

占める割合

(57)

閾値が決定できなかった例

( 部分類似度・再利用なし)

2011/7/6- 公聴会

Yuki Manabe

57

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

適合率

部分類似度

(58)

ロジスティック回帰モデル

P: 事象が起こる確率

b_n: 偏回帰係数

X_n: 説明変数

(59)

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

Data7

Data7

Data8

Data8

Data9

Data9

Data1

0

Data1

0

Data6

Data6

Data5

Data5

Data4

Data4

Data3

Data3

Data2

Data2

Data1

Data1

Fit

Fit

Test

Test

Fit

Fit

Fit

Fit

Test

Test

Test

Test

・・・

・・・

10

個のデータセットを作成

精度

1

精度

2

精度

10

Leave-one out cross validati

on

(60)

その他の結果

複数のコードクローンメトリクスを併用

再利用あり: 102/121

最大コードクローン長⇒部分類似度の順で判

再利用なし: 一つしか閾値がないので結果な

ロジスティック回帰

再利用あり: 65/121( 閾値 1.0)

再利用なし: 1026/1104( 閾値 0.02)

(61)
(62)

参照

関連したドキュメント

On the other hand, the torque characteristics of Interior-Permanent-Magnet Synchronous motor IPMSM was investigated using IPM motor simulator, in which both our

Denison Jayasooria, Disabled People Citizenship & Social Work,London: Asean Academic Press

Positions where the Nimsum of the quotients of the pile sizes divided by 2 is 0, and where the restriction is “the number of sticks taken must not be equivalent to 1 modulo

Kilbas; Conditions of the existence of a classical solution of a Cauchy type problem for the diffusion equation with the Riemann-Liouville partial derivative, Differential Equations,

Here we purpose, firstly, to establish analogous results for collocation with respect to Chebyshev nodes of first kind (and to compare them with the results of [7]) and, secondly,

Then it follows immediately from a suitable version of “Hensel’s Lemma” [cf., e.g., the argument of [4], Lemma 2.1] that S may be obtained, as the notation suggests, as the m A

Classical Sturm oscillation theory states that the number of oscillations of the fundamental solutions of a regular Sturm-Liouville equation at energy E and over a (possibly

Subsequently, Xu [28] proved the blow up of solutions for the initial boundary value problem of (1.9) with critical initial energy and gave the sharp condition for global existence