ソフトウェア再利用時における
ライセンス違反検出技術に関する研究
コンピュータサイエンス専攻 井上研究室
博士後期課程3年
真鍋雄貴
2011/7/6- 公聴会
1
ソフトウェアの再利用
•
既存のソフトウェアに含まれるソフトウェア部品を新たな
ソフトウェアの開発に利用すること
–
ソフトウェア部品:ソースファイル,クラス,関数など
•
オープンソースソフトウェアがソフトウェア部品の大きな
供給源
•
ソフトウェア部品検索システムにより,オープンソースソ
フトウェアのソースファイルの取得が容易になっている
–
Google Code Search, Koders, SPARS
オープンソースソフトウェアを用いた
ソースファイル単位のソフトウェアの再利用
に着目
著作権
•
著作物の利用に関して,著作者に与えられる独
占的権利
–
知的財産であるソフトウェアを法的に保護す
る仕組みの一つ
–
利用:複製,改変,再配布
•
ソフトウェアの再利用を行うためにはそのソフ
トウェアの著作者から許諾を得る必要がある
2011/7/6- 公聴会
Yuki Manabe
3
ソフトウェアライセンス
•
著作者が定めた,利用に関する許諾と許諾を得るため
の要求や義務
•
オープンソースソフトウェアの場合,指定されている
ライセンスに従えば利用することができる
–
再利用する対象のライセンスを調べないといけな
い
•
オープンソースライセンス
–
Open Source Initiative が承認 (66 種 )
(例) GNU General Public license version 3(GPL
v3), BSD4 項ライセンス (BSD4) など
ライセンス違反
•
再利用されたソースファイルのライセンスと再利用先の
ソフトウェアのライセンス間で不整合が生じていること
•
ソースコードの公開や,販売停止に追い込まれるかもし
れない
•
ライセンスを正しく確認せずに再利用を行うと発生
2011/7/6- 公聴会
Yuki Manabe
5
ライセンス違反を防止したい
開発中のソフトウェアで発生している
ライセンス違反を検出する
ライセンス違反検出問題
GPL
LGPL
EPL
BSD3
…
再利用
特定
ソフトウェア
ライセンス
各ソフトウェアについて,各ソフトウェアのライセンスと,
再利用しているソフトウェアから到達できるライセンス集合
を比較し,矛盾の有無を判定する問題
第2章,第3章
第4章
論文構成
•
第1章 はじめに
•
第2章 階層的ライセンス知識を用いたライセンス特定ツール
の開発 [1-1][1-2]
•
第3章 オープンソースソフトウェアにおけるライセンス分布
の調査 [1-3][1-4]
•
第4章 コードクローンメトリクスに基づくソースコード再利
用判定閾値の決定手法 [1-5]
•
第5章 むすびに
2011/7/6- 公聴会
Yuki Manabe
7
ソフトウェア再利用検出
ライセンス特定
階層的ライセンス知識を用いた
ライセンス特定ツールの開発
概要
•
問題点
ライセンス記述の表記ゆれなどのため,既知のラ
イセンス記述とコメントとの簡単な照合では特定
できない
•
研究内容
–
ライセンス特定での課題を調査した
–
階層的ライセンス知識を用いたライセンス特定
手法の提案
–
提案手法の実装 Ninka と他のライセンス特定
ツールと精度の点で比較
2011/7/6- 公聴会
Yuki Manabe
9
ライセンス特定
•
ソースファイルからそのソースファイルのライセン
スを決定する作業
•
ソースファイルのライセンスはコメント中で指定さ
れる
–
ライセンスを指定する記述をライセンス記述と呼
ぶ
•
ソースファイル中のライセンス記述と既知のライセ
ンス記述と照合することにより,ライセンスを特定
する
ライセンス記述の例
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
ライセンス記述の表記ゆれ
•
綴り間違いや単語の同義語への変更などの表記揺れ
–
( 例 ) "license" → "licence"
•
ソースファイルにより変化する著者名や組織名
–
( 例 ) “Neither the name of the <ORGANIZATION> n
or the names of its contributors…”
–
ソースコード中のライセンスの記述と既知のライセン
ス記述を単純に照合するだけでは特定することは困難
•
どのような要因が照合を困難にするかよくわかって
ライセンス特定の課題調査
Linux, Eclipse JDT, OpenBSD, Mozilla などに含まれる
ソースファイル 30000 ファイルを対象に調査
得られた課題
–
ライセンス記述の表記揺れ
•
綴り間違い,著者名や団体名への記述,文法やつづ
りの変更
–
著作者による既存のライセンスの修正
•
条項の追加,削除
–
ソースファイルとは異なるファイルへの参照がある
–
複数のライセンスが含まれる
2011/7/6- 公聴会
Yuki Manabe
13
ライセンス特定ツールに
求められる要件
•
多くの表記ゆれを考慮してライセンスを特定で
きる
⇒OSS を多数調査する
•
新しいライセンス記述への適合が容易
⇒ 短いルールとしてライセンスルールを定義で
きること
•
高速に処理できる
⇒ スケーラビリティの高い,高速な処理
提案手法
2011/7/6- 公聴会
Yuki Manabe
15
(2)
コメントの文への分割
(3)
ライセンスに関係ない文の除
去
(4)
メタライセンス文とのマッチ
ング
(5)
ライセンスルールとのマッチン
グ
(1)
コメント抽出
ソースファイル
コメント
文
ライセンスに関する文
メタライセンス文の列
メタライセンス文
ライセンスルール
キーワード
ライセンス知識
ライセンス名
処理
データ
凡例
OSS Corpus
(30000 files)
• Linux
• Eclipse JDT
• OpenBSD
• Mozilla
etc...
/*
* 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 ...
*/
先頭にある
コメントを
ライセンス
記述として
抽出
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]
に基づくア
ルゴリズムと
いくつかのヒ
ューリスティ
ックにより分
割
[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”
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
5 ライセンスルールとのマッチ
ング
[AllRights][BSDPre][BSDcondSource][BSDcondBinary][BSDasIs][BSDWarr]
BSD2 (BSD 2-clauses
license)
BSD2
: BSDPre, BSDcondSource, BSDcondBinary, BSDasIs, BSDWarr
ライセンスルール
マッチング
ライセンスルールはライセンス名とメタライセンス文名の列との
一致するライセンスルールな
し → "UNKNOWN"
評価実験
•
目的 :
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
結果
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
回答率:どれだけの実験対象に対して,回答を出
力できたか
正答率:出力された回答が手で特定された結果と
どれだけ一致しているか
第2章のまとめ
•
複数の大規模オープンソースソフトウェアからライセン
ス特定の課題を調査
•
ライセンス特定ツールの要件を満たすライセンス特定手
法を提案
–
より柔軟にライセンス知識を記述できる
–
従来手法と比べ,正答率,実行時間の点で優れていた
•
ライセンス違反検出で重要なライセンスの特定を精度よ
く,高速にできるようになった
•
Ninka は以下のサイトにて公開中
http://ninka.turingmachine.org/
2011/7/6- 公聴会
Yuki Manabe
23
オープンソースソフトウェアに
おけるライセンス分布の調査
概要
•
問題
ライセンスが変更されるのか,またその頻度は
どのくらいあるのかが分からないため,どの程
度ライセンス特定を行う必要があるか不明
•
研究内容:
Ninka を用いていくつかの大規模な FOSS につい
て,複数のリリースのライセンスを解析し,リ
リースごとにどのようにライセンス分布が変わ
るかを調査
2011/7/6- 公聴会
Yuki Manabe
25
解析対象
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
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
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
第 3 章のまとめ
•
複数の FOSS について,リリースごとにどのようにライ
センス分布が変わるかを調査
–
FreeBSD や OpenBSD において,大規模なライセンス
の変化がある
–
ArgoUML や Eclipse についても類似した変化がある
•
FreeBSD や OpenBSD と比べてさらに劇的に変化
する場合がある
•
少数のライセンスがシステムの大半をカバーして
いる
•
各ソースファイルのバージョン毎にライセンス特定を
行う必要があることを示した
2011/7/6- 公聴会
Yuki Manabe
29
コードクローンメトリクスに基
づくソースコード再利用判定閾
値の決定手法
概要
•
問題点
–
ソフトウェア間で再利用が行われているかを
判定する明確な基準が存在しない
•
研究内容
–
コードクローンに基づく再利用検出手法のた
めの閾値を実験的に決定する手法の提案
–
提案手法により決定された閾値を用いて,大
半のソフトウェア再利用の有無を判定できた
2011/7/6- 公聴会
Yuki Manabe
31
コードクローン
•
他のコード片と類似または一致するコード片
•
再利用された部分がコードクローンとして検出できる可能
性がある
–
再利用の方法のひとつがコピーアンドペースト
–
コードクローンもコピーアンドペーストで生成されうる
•
コードクローンメトリクス
–
コードクローンから算出できる尺度
コードクローン
想定する再利用検出手法
2011/7/6- 公聴会
Yuki Manabe
33
1.コード
クローンメ
トリクス値
の算出
再利用が行わ
れているとみ
なす閾値
再利用が行わ
れていないと
みなす閾値
コードクロー
ンメトリクス
値
2 . 判定
再利用あり
or
再利用なし
or
不明
判定結果
判定対象の
ソフトウェアの組
判定方法
(
例:最大コードクローン
長 )
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
コードクローンメトリクスの大きさ
割
合
再利用が行われている
とみなせる閾値
再利用が行われていな
いとみなす閾値
ソフトウェアの間で
は
再利用が行われてい
る
ソフトウェアの間では
再利用は行われていな
い
不明
閾値決定手法
2011/7/6- 公聴会
Yuki Manabe
35
1.
正解集合
の作成
2.コードクロ
ーンメトリクス
値の算出
3.
閾値の
算出
コードクロ
ーンメトリ
クス値
ソフトウェアの組の集合
再利用がある場合の
正解集合
再利用がない場合の
正解集合
再利用
ありと
みなす
閾値
3.
閾値の
算出
なしと
再利用
みなす
閾値
閾値の算出
•
各正解集合と各ソフトウェアの組のクローンメトリクス値から,適
合率を算出する
–
適合率:検出した組のうち,正解集合に含まれる組が占める割合
•
適合率が 1 になる定義域から閾値を決定する
適
合
率
0
1.0
コードクローンメトリクス値
再利用なしと
みなせる閾値
再利用ありと
みなせる閾値
閾値を超えた組を再利用あり
とみなした場合の適合率
閾値を下回る組を再利用なし
とみなした場合の適合率
実験
•
目的
–
提案した手法により,閾値が決定でき,求めた
閾値を用いてソースコード再利用を検出できる
か確認する
•
実験内容
–
各クローンメトリクスに対する閾値決定
–
複数のクローンメトリクスを用いた再利用検出
–
ロジスティック回帰モデルを用いた場合の閾値
決定
2011/7/6- 公聴会
Yuki Manabe
37
実験環境
•
再利用検出対象:オープンソースソフトウェア 50 個
–
Free Software Directory で配布されている
–
様々なドメインから取得
–
C 言語もしくは C++ で開発されている
•
コードクローン検出ツール CCFinderX
–
最小トークン数 30
•
使用するコードクローンメトリクス
–
コードクローン検出数
–
最大コードクローン長
•
2 つのソフトウェア間で検出されるコードクローンの中で最
大のコードクローン長を持つコードクローンのトークン数
–
部分類似度
実験手順
•
オープンソースソフトウェア 50 個から正解集合
を作成する
–
再利用が行われている組: 121 組
–
再利用が行われていない組: 1104 組
•
提案した手法と作成した正解集合,オープンソー
スソフトウェア 50 個から2つを選んでできる組 1
225 組を用いて閾値を求める
•
求めた閾値を用いて,各オープンソースソフト
ウェアの組が再利用が行われているか,行われて
いないか判定した
2011/7/6- 公聴会
Yuki Manabe
39
閾値と検出結果
再利用が行われている組,再利用が行われていな
い組をそれぞれ 75% 以上検出できている
再利用あり
再利用なし
閾値
270
50
検出できた組数
( 75% )
91/121
877/1104
(79%)
第4章のまとめ
•
再利用検出手法のための閾値を実験的に決定する
手法を提案
–
手作業により判別されたソフトウェアの組の集
合を正解集合として利用
–
閾値と適合率の関係から再利用が行われている
場合,行われていない場合の閾値を決定
•
決定した閾値を用いて,大半の再利用が行われて
いない組,再利用が行われている組を検出できた
•
根拠に基づいて再利用の有無を判定することがで
きるようになった
2011/7/6- 公聴会
Yuki Manabe
41
むすび
ライセンス違反検出問題を解くために以下の研究を行った
•
階層的ライセンス知識を用いたライセンス特定ツールの開発
–
ライセンス違反検出で重要なライセンスの特定を精度よく
,高速にできるようになった
•
オープンソースソフトウェアにおけるライセンス分布の調査
–
ライセンスは変化するため,ライセンス違反検出において
は各ソースファイルの各バージョンでライセンス特定を行
う必要がある
•
コードクローンメトリクスに基づくソースコード再利用判定
閾値の決定手法
–
根拠をもって再利用の有無を判定することができるように
なった
1章
代表的な OSS ライセンス
•
3-clause BSD License(BSD3)
–
派生物は著作権の告知,条項のリスト,保障
の放棄を含めなければならない
•
Apache License Version 2(Apachev2)
–
派生物は著作権,特許,商標,帰属の告知を
含めなければならない
•
GNU General Public License Version 3(GPLv3)
–
派生物は GPLv3 のもとで配布されなければな
2章
ライセンス特定の既存手法
•
FOSSology, OSLC
–
既知のライセンス記述と,コメントとの一致部分の多さから
ライセンスを特定
•
ALSA, Ohcount
–
既知のライセンス記述に対応する正規表現とコメントとの
マッチングからライセンスを特定
•
問題点
–
ライセンスの版(バージョン)を答えない
–
複数回答を報告する
–
ライセンスを特定する際に使用する知識の管理が容易でない
ライセンス知識の規模
•
メタライセンス文: 427 文
•
ライセンスルール: 126 個 (112 種のライセンス
に対応)
•
キーワード: 82 語
2011/7/6- 公聴会
Yuki Manabe
49
ライセンスの進化
•
ソフトウェアライセンスは環境に適合する
•
ソフトウェアライセンスが進化する理由 [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
.
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
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
閾値を用いた検出結果
2011/7/6- 公聴会
Yuki Manabe
55
再利用あり
コードクローン検出
数
最大コードクローン
長
部分類似度
再利用が行われて
いるとみなせる下
限値
590
270
0.30
検出できた組数
1/121
91/121
72/121
再利用なし
コードクローン検出
数
最大コードクローン
長
部分類似度
再利用が行われ
ていないとみな
せる上限値
-
50
-検出できた組数
-
877/1104
-コードクローンメトリクス詳細
•
コードクローン検出数
–
2つのソフトウェア間で検出されるコードクローン
の組
•
最大コードクローン長
–
2 つのソフトウェア間で検出されるコードクローン
の中で最大のコードクローン長を持つコードクロー
ンのトークン数
•
部分類似度
–
最大コードクローン長を持つコードクローンの組が
,それらのコードクローンを含むソースファイルに
占める割合
閾値が決定できなかった例
( 部分類似度・再利用なし)
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
適合率
部分類似度
割
合
ロジスティック回帰モデル
•
P: 事象が起こる確率
•
b_n: 偏回帰係数
•
X_n: 説明変数
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University