ソフトウェア部品検索システムを 対象とするソフトウェアライセンス

ソフトウェア部品検索システムを
対象とするソフトウェアライセンス
特定手法
○真鍋雄貴,市井誠,早瀬康裕,松下誠,井上克郎
大阪大学 大学院情報科学研究科
第69回 情報処理学会全国大会
1
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
発表の流れ
•
•
•
•
•
研究の背景
ソフトウェアライセンス特定手法
適用実験
考察
まとめと今後の課題
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2
ソフトウェア部品の再利用
• ソフトウェア部品(以降,単に部品)の再利用
ソフトウェアの生産性,品質の向上に寄与
• オープンソースソフトウェア
– 再利用できる部品が多数公開されている
目的に合った部品を探すのに手間がかかる
⇒ソフトウェア部品検索システムが用いられる
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
3
ソフトウェア部品検索システム
• ソフトウェア部品検索システ
ム
– 蓄積した部品を検索するシステ
ム
– 部品の再利用や理解を支援
• (例)SPARS-J
– Javaのクラスを部品とする
– 大規模ソースファイル群を対象
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
4
問題点
• 再利用をおこなう人が各部品のライセンスを調
べることは大変
– 再利用をおこなう際には部品のソフトウェアライセン
ス(以降,単にライセンス)に従わなければならない
従わなければ著作権の侵害⇒法的問題の恐れ
– ライセンスの種類は多い
オープンソースソフトウェアは様々なライセンスの下で配
布
検索結果で各部品のライセンスが表示されることが望ましい
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
5
関連研究
• Koders[1],Google Code Search[2]
– 検索結果のライセンスを表示するソフトウェア部品検索シ
ステム
– ライセンスが特定できていないファイルが多い
• Tuunanenら[3]
– 正規表現を用いてソフトウェアのライセンスを特定する手
法
• 正規表現のパターンとライセンスを指定するソースファイルのコメ
ント部分のマッチ
– 正規表現のパターンを手作業で作成する必要がある
[1] http://www.koders.com/
[2] http://www.google.com/codesearch
第69回
情報処理学会全国大会
[3] Tuunanen, T. et. al. :Retrieving open
source
software licenses,Proc. OSS 2006, pp.35 – 46 (2006) 6
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
研究の目的
少ない手間で部品のライセンスを特定
既存手法では手作業で正規表現のパターンを作
成しなければならず手間がかかる
• ライセンスの特定に必要な文字列を自動的に
抽出
• 抽出された文字列だけを見てライセンスを特
定する
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
7
着眼点
複数のブロックコメントに共通して現れる文字列
にライセンスの指定が含まれる場合が多い
– 経験則
• ライセンスを指定する記述がソースファイルのコメントに
含まれている
• 同一のソフトウェアに含まれる同一のライセンスのソース
ファイルならばライセンスの指定に統一された記述が用
いられている
/*
* You should have received
* a copy of the GNU General
* Public License
* along with this program..
*/
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
8
提案手法の概要
1. コメント間に共通して現れる文字列(共通文
字列)を抽出
– 共通文字列は機械的に抽出される
2. 部品検索システムの管理者が共通文字列
が示すライセンスを手作業で確認する
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
9
提案手法の特長
• 簡易な作業で特定
共通文字列を読み,対応するライセンスを選ぶだ
けでソースファイルのライセンスを特定
• 効率的に特定
ファイルの多い順に共通文字列を処理
⇒一度に多くのファイルのライセンスを特定
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
10
ソースファイル
提案手法の流れ
コメント
ライセンスが未特定
のファイル数
共通文字列
a
2
α
0
0
α
α
管理者
b
4
c
d
e
f
β
γ
2
γ
2
各共通文字列のライセンスが未特定の
ソースファイルからコメントを抽出する.
コメントから共通文字列を抽出する.
ライセンスが未特定のファイル数が最
ライセンスが未特定のファイル数が0で
ファイル数を計算する
大の共通文字列を確認し,ライセンスを
ない共通文字列が残っている場合はラ
特定する.
イセンスの特定を続ける.
残っていない場合は終了する.
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
11
適用実験
• 目的⇒提案手法によるライセンス特定の効率を評価
する
• 提案手法によるライセンス特定のカバー率を調査
ライセンスが特定されたソースファイル数
カバー率=
ソフトウェアに含まれ
る全ソースファイル数
– 対象:Gaimのソースファイル(C言語:182個)
Tuunanenらの手法と比較
126 個のファイルでコメント
によりライセンスが指定
• 共通文字列の抽出にCCFinderを使用
– 30単語以上の共通文字列
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
12
実験結果
提案手法によるカバー率の推移
1
ライセンスを特定するためのコメントを含む
ソースファイルの割合 0.69(=126/182)
0.9
0.8
カバー率
0.7
0.6
0.68
0.5
0.69
0.4
0.3
ライセンスの特定とは無関係
0.2
0.1
ライセンスを指定する記述の一部であったが,
ライセンスを特定出来なかった
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
確認した共通文字列数
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
13
考察(1/2)
ライセンス指定の記述を含む全てのファイルの
ライセンスを特定できた
• 本手法⇒システムにより抽出される19個の共通文字列
を人が確認
– 抽出された文字列を見ているだけなので負担が小さい
• Tunnanenらの手法⇒人が7 種類の正規表現のパター
ンを作成
– ライセンスが未特定のソースファイルから一つずつパターンを
作る分負担が大きい
本手法により人の負担が少なく,ファイル群のライ
センスの特定ができる
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
14
考察(2/2)
• ライセンスを特定できない共通文字列が現れた
– ライセンスと無関係
– ライセンス指定の一部
is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU ライセンス名
• システムの管理者の作業量が増える
General Public License
共通文字列中に出現する単語を考慮すれば不要な
Lesser General Public License
共通文字列を排除できる可能性がある
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
15
まとめと今後の課題
• まとめ
– ソフトウェアライセンス特定手法の提案
– 実際のソフトウェアに対して適用実験
• 特定できるファイルのライセンスは全て特定
• ライセンスを特定できない共通文字列
• 今後の課題
– ライセンスを特定できない共通文字列の除去
– 多種のソースファイル群に対する適用実験
– ソフトウェア部品検索システムSPARS-J へ実装
第69回 情報処理学会全国大会
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
16