ライセンス特定のための ライセンス知識獲得における課 題 大阪大学 博士後期課程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
© Copyright 2024 ExpyDoc