PowerPoint プレゼンテーション

ライセンス特定のための
ライセンス知識獲得における課
題
大阪大学
博士後期課程3年
眞鍋雄貴
2011/9/12 - SES2011 WS3
1
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
概要
• ソフトウェアの再利用を円滑にするため,ソフトウェ
アライセンス特定ツールが開発されている
• ライセンス特定ツールはオープンソースソフトウェア
工学にもかかわりがあると考えられる
• ライセンス特定ツールにおけるライセンス知識獲得
の際に生じる課題について述べる
2011/9/12 - SES2011 WS3
2
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
ソフトウェアの再利用
• 既存のソフトウェアに含まれるソフトウェア部品を新たな
ソフトウェアの開発に利用すること
– ソフトウェア部品:ソースファイル,クラス,関数など
• オープンソースソフトウェアがソフトウェア部品の大きな
供給源
• ソフトウェア部品検索システムにより,オープンソースソ
フトウェアのソースファイルの取得が容易になっている
– Google Code Search, Koders, SPARS
2011/9/12 - SES2011 WS3
3
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
著作権
• 著作物の利用に関して,著作者に与えられる独占
的権利
– 知的財産であるソフトウェアを法的に保護する仕
組みの一つ
– 利用:複製,改変,再配布
• ソフトウェアの再利用を行うためにはそのソフトウェ
アの著作者から許諾を得る必要がある
2011/9/12 - SES2011 WS3
4
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
ソフトウェアライセンス(ライセン
ス)
• 著作者が定めた,利用に関する許諾と許諾を得るため
の要求や義務
• オープンソースソフトウェアの場合,指定されているライ
センスに従えば利用することができる
– 再利用する対象のライセンスを調べないといけない
• オープンソースライセンス(OSSライセンス)
– Open Source Initiativeが承認(66種)
2011/9/12 - SES2011 WS3
5
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
代表的なOSSライセンス
• 3-clause BSD License(BSD3)
– 派生物は著作権の告知,条項のリスト,保障の
放棄を含めなければならない
• Apache License Version 2(Apachev2)
– 派生物は著作権,特許,商標,帰属の告知を含
めなければならない
• GNU General Public License Version 3(GPLv3)
– 派生物はGPLv3のもとで配布されなければならな
い
2011/9/12 - SES2011 WS3
6
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
ライセンス特定
• ソースファイルからそのソースファイルのライセンスを
決定する作業
• ソースファイルのライセンスはコメント中で指定される
– ライセンスを指定する記述をライセンス記述と呼ぶ
• ソースファイル中のライセンス記述と既知のライセン
ス記述と照合することにより,ライセンスを特定する
2011/9/12 - SES2011 WS3
7
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
ライセンス記述の例
Copyright (c) 2005, 2006 Taras Puchko
AllCopyright
rights reserved.
(c) 2003, the JUNG Project and the Regents of the University
of California
Redistribution
and use in source and binary forms, with or without
All rights reserved.
modification, are permitted provided that the following conditions
areThis
met:
software is open-source under the BSD license; see either
1. Redistributions
"license.txt" or of source code must retain the above copyright
notice,
this list of conditions and the following
disclaimer.
http://jung.sourceforge.net/license.txt
for a description.
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.
...
2011/9/12 - SES2011 WS3
8
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
ソフトウェアライセンス
特定ツールの構成
ライセンス知識作成用
ソースファイル集合
ソースファイル
ライセンス知識
マッチング
ルール作成
ライセンス記
述の抽出
<ライセンス名,ルール>
ライセンス名
2011/9/12 - SES2011 WS3
9
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
オープンソースソフトウェア工学と
ソフトウェアライセンスの関連
• 実証的研究
– ライセンスの変化[1][2]
– コードクローンとの関係[3]
コードクローン:他のソースコード片と一致,また
は類似するコード片
• ソースファイル検索システム
• ライセンス違反検出
[1] Massimiliano Di Penta et. al. "An exploratory study of the evolution of software licensing".
Proc of ICSE '10, Vol. 1. pp.145-154, 2010.
[2] Yuki Manabe et. al. :"Evolutional analysis of licenses in FOSS."
Proc of IWPSE-EVOL '10, pp.83-87,2010.
[3] Yu Kashima et. al.: "A Preliminary Study on Impact of Software Licenses on Copy-and-Paste Reuse",
International Workshop on Empirical Software Engineering in Practice 2010, 2010
2011/9/12 - SES2011 WS3
10
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
既存のライセンス特定手法
• ルールに正規表現を使い,簡易なマッチングをする手法
– Ninka[3]
– ASLA[4]
– Ohcount[5]
– FOSSology (v1.3以降)[6]
• ルールに単純な文字列を使い,高価なマッチング手法を用いる手
法
– FOSSology (v1.2以前)
– Open Source License Checker[7]
[3] German, D.M. et. al : "A sentence-matching method for automatic license identification of source code files", Proc.
ASE 2010, pp.437–446 (2010).
[4] Tuunanen, T. et. al : "Automated software license analysis", Automated Software Engineering, Vol.16, pp.455–490
(2009).
[5] http://www.ohloh.net/p/ohcount
[6] Gobeille, R.: "The FOSSology project", Proc. MSR 2008, New York, NY, USA, pp.47–50 (2008).
[7] http://sourceforge.net/projects/oslc/
2011/9/12 - SES2011 WS3
11
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
Ninka
• ルール:ライセンスルールとメタライセンス文
– ライセンスルール
BSD2:BSDPre, BSDcondSource, BSDcondBinary, BSDasIs,
BSDWarr
– メタライセンス文
BSDcondSource:Redistributions? of source code must retain the
(above )?copyright notice, this list of conditions(,)? and the
following disclaimer(, without modification)?:
…
• マッチング
– ソースファイル中のコメントとメタライセンス文をマッチさせ,ライ
センス文名の列を作る
– ライセンス文名の列とマッチしたライセンスルールからライセン
ス名を出力する
2011/9/12 - SES2011 WS3
12
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
Open Source License Checker
• ルール:既知のライセンス記述
– ライセンスの条文全体が主に用いられている
• マッチング
– コメント中のライセンス記述とルール間で同一と
なる行を発見し,最長一致列となる部分を探索し,
類似度を求める
• 類似度:ルールに対する最長一致列の割合
– 類似度の高いルールに対応するライセンスを出
力
2011/9/12 - SES2011 WS3
13
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
本ポジションペーパーでの立場
• 精度をライセンス知識で確保するか,マッチング手
法で確保するか
• マッチング手法で頑張る場合,ルールと一致する範
囲が理解しづらくなる
– 誤った特定結果が増える
→その結果を信用して再利用できない
⇒ライセンス知識をちゃんと作成することで,精度を担
保すべき
2011/9/12 - SES2011 WS3
14
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
課題
• 既存のソフトウェアライセンス特定ツールではライセンス
知識を手作業で作成している
– Ninkaの場合,427 のメタライセンス文,112 個のライ
センスに対応する126 個のライセンスルールを手作
業にて作成
• 多数のライセンスが存在している
– OSIに承認されたもので66種
– BlackDuck は自社が所有するBlack Duck
KnowledgeBase には2050 種以上のライセンスに対
する詳細なデータが含まれているとしている
• ライセンス知識を作成するための支援が必要である
2011/9/12 - SES2011 WS3
15
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
ライセンス知識獲得における支援
ライセンス知識作成用
ソースファイル集合
ソースファイル
ライセンス知識
マッチング
ライセンス名
ルール作成
• ライセンス記述の分類
• ルールに対する命名支援
2011/9/12 - SES2011 WS3
ライセンス記
述の抽出
• ライセンス記述
の自動抽出
16
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
支援をする上での課題
• ライセンス記述の自動抽出
– 先頭以外のコメントの扱い
• ライセンス記述の自動分類
– 類似したライセンス記述の扱い
• ルールに対する命名支援
– 各ルールに対する名前生成
2011/9/12 - SES2011 WS3
17
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
先頭以外のコメントの扱い
• 多くの場合はソースファイルの先頭である
• ソースコードの途中に複数のライセンス記述が記述されてい
る場合がある
– コードのコピーとともにライセンス記述もコピーされてきた
かもしれない
コードの変更が行われたとき,多くの場合で同時にコメ
ントも変更されているという報告もある[8]
• それらの記述を調べる必要があるか調査する必要がある
[8]Fluri, B., Wursch, M., & Gall, H. C. ,”Do Code and Comments Co-Evolve?
On the Relation between Source Code and Comment Changes.”,
WCRE 2007, pp. 70-79 (2007).
2011/9/12 - SES2011 WS3
18
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
類似したライセンス記述の扱い
• 文章としては類似しているが,異なるライセンスに対
応するライセンス記述がある
• 例
– This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
– This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
• 自動的な分類を行うためには,どうやってこれらの
記述をライセンス別に分類するか
2011/9/12 - SES2011 WS3
19
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
各ルールに対する名前生成
• 対応するライセンス名を明確に決められない場合が
ある
– ライセンス記述に名前が入らない
– 既存のライセンスに条項が追加されたり,削除さ
れたものがライセンスとして使用されることがある
[3]
• どうやって,名前付けをルール化するか
– 既知のライセンスのスタイルとの類似性
– 類似するライセンスとの差分
[3]German, D.M. et. al : "A sentence-matching method for automatic license identification of
source code files", Proc. ASE 2010, pp.437–446 (2010).
2011/9/12 - SES2011 WS3
20
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
まとめ
• ソフトウェアの再利用を円滑にするため,ソフトウェ
アライセンス特定ツールが開発されている
• ライセンス特定ツールとオープンソースソフトウェア
工学との関連
• ライセンス特定ツールにおけるライセンス知識獲得
を支援する際の課題
– 先頭以外にあるコメントの扱い
– 類似した記述の扱い
– 各ルールに対する名前生成
2011/9/12 - SES2011 WS3
21
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2011/9/12 - SES2011 WS3
22
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
Evaluation of License Identification
• Goal: To show if our approach is better than other
methods
• Tools
– Ninka (implementation of proposed approach),
FOSSology 1.0.0, ohcount version 3.90rc, OSLC 3.0
• Target systems
– Source files: 250 files in Debian 5.0.2
• Randomly select 250 packages in Debian 5.0.2
• For each selected packages, randomly select 1
file in each package in them
2010/9/24 - ASE2010
Daniel M. German, Yuki Manabe, Katsuro Inoue
23
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
Method
• Compare the results from each tool to the results
obtained by manual inspection
• Result category
– C: Correct license name and version
– I: Incorrect
– U: Unknown
• Measured values
– Recall
– Precision
– F-measure
– Execution Time
2010/9/24 - ASE2010
Daniel M. German, Yuki Manabe, Katsuro Inoue
24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
Definition of Scales
• Recall
|C || I |
|N|
• Precision
|C |
|C || I |
2
• F-measure
2010/9/24 - ASE2010
1
1

Re call Pr ecision
Daniel M. German, Yuki Manabe, Katsuro Inoue
25
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
Result
Ninka
FOSSology
ohcount
OSLC
Recall [%]
82.8
99.6
100
100
Precision [%]
96.6
55.0
33.2
29.5
0.891
0.709
0.498
0.371
22
923
27
372
F-measure
Execution Time [s]
Ninka has the highest precision and
faster execution time
2010/9/24 - ASE2010
Daniel M. German, Yuki Manabe, Katsuro Inoue
26
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University