オープンソースソフトウェアにおける ソフトウェアライセンス間の 包含関係

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
Advertisements

背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
SS2-15:A Study on Image Recognition and Understanding
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
第3回関西Debian勉強会 みんなで読む Debian社会契約 MC: 中本崇志 2007/06/02.
英語勉強会.
Software Freedom Day2012 野首貴嗣
SSR 論文調査 Safety and Cyber-Physical Systems
2009年 3月 17日 法政大学 常盤祐司、児玉靖司、八名和夫、Ivan Ho、Billy Pham
情報伝播によるオブジェクト指向プログラム理解支援の提案
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
FreeBSD Ports Collection におけるファイルクローンの検出
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
Licensing information
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
ソフトウェアリポジトリにおける コードクローン作成者・利用者関係分析手法とその適用
アイテムセットマイニングを利用した コードクローン分析作業の効率向上
大阪大学 大学院情報科学研究科 博士前期課程2年 宮原研究室 土居 聡
オブジェクト指向プログラムのための 動的結合メトリクスの評価
ギャップを含むコードクローンの フィルタリング手法の提案
ライセンス特定のための ライセンス知識獲得における課題
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
Javaソースコード蓄積・ 検索システムSPARS-Jの概要
ソフトウェア部品検索システムを 対象とするソフトウェアライセンス 特定手法
動的依存グラフの3-gramを用いた 実行トレースの比較手法
-Get test signed and make corrections
ソフトウェア部品分類手法への コンポーネントランク法の応用
Javaプログラムの変更を支援する 影響波及解析システム
コンポーネントランク法を用いたJavaクラス分類手法の提案
Satoru Ishikawa Satoru Satake Denis Vazhenin
コードクローンの動作を比較するためのコードクローン周辺コードの解析
ハッシュ値比較による Javaバイトコードに含まれる ライブラリの検出手法
UMLモデルを対象とした リファクタリング候補検出の試み
Winter Workshop in Kanazawa -プロセスと方法論-
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
Javaバイトコード比較を用いた ライブラリ再利用検出ツールの提案
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
アスペクト指向言語のための 独立性の高いパッケージシステム
プログラム理解におけるThin sliceの 統計的調査による有用性評価
コードスメルの深刻度がリファクタリングの実施に与える影響の実証的研究
コードクローン編集者数に着目した開発履歴の分析
コード片に共通した特性を自動抽出する ソースコード閲覧ツールの試作
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
ソフトウェアプロダクト集合に対する 派生関係木の構築
Q3 On the value of user preferences in search-based software engineering: a case study in software product lines Abdel Salam Sayyad (West Virginia University,
設計情報の再利用を目的とした UML図の自動推薦ツール
依存関係の局所性を利用した プログラム依存グラフの 効率的な構築法
ソースコードの差分を用いた関数呼び出し パターンの抽出手法の提案と実装
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
オープンソースソフトウェアに対する コーディングパターン分析の適用
Webインテリジェンス論 Protégé演習 (インストール)
時間連続性を考慮した 動画からの人物の姿勢推定
メソッドの同時更新履歴を用いたクラスの機能別分類法
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
日本語タイトル(point 28) 第4回DSANJ Bio Conference’19 Open
Amicus: A Group Abstraction for Mobile Group Communications
発表者: 稲葉 一浩 複雑ネットワーク・地図グラフ セミナー 2017/1/19
マイクロソフト ソフトウェア ライセンス ドキュメント
ソフトウェア理解支援を目的とした 辞書の作成法
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
コードクローン解析に基づく デザインパターン適用候補の検出手法
回帰テストにおける実行系列の差分の効率的な検出手法
慶應義塾大学 政策・メディア研究科 修士課程 2年 間 博人
識別子の読解を目的とした名詞辞書の作成方法の一試案
著作権とライセンス.
Detecting Software Modularity Violations
Presentation transcript:

オープンソースソフトウェアにおける ソフトウェアライセンス間の 包含関係 眞鍋雄貴,井上克郎 大阪大学大学院情報科学研究科 2013/1/11 SIGSS

ソフトウェアの再利用 既存のソフトウェアのライブラリ,ソースファイル,クラス,関数などを新たなソフトウェアの開発に利用すること. ソフトウェアの生産性や品質の向上を目的とする. ウェブ上に多数のライブラリやソースファイルが公開されている. 2013/1/11 SIGSS

ソフトウェアライセンス(ライセンス) 著作者が定めた,利用に関する許諾と許諾を得るための要求や義務 利用:複製,改変,再配布   (例)GNU General Public license version 3(GPLv3),      BSD4項ライセンス(BSD4)など ライセンスによって要求や義務が異なるため,利用範囲が異なる. オープンソースソフトウェアの場合,指定されているライセンスに従えば利用することができる. ソフトウェアライセンス研究の重要性…SPDXとか研究グループの数とか,関連する国際会議とか… 2013/1/11 SIGSS

ライセンスの選択問題 ライセンスの異なる複数のライブラリやソースファイルを利用したとき,そのソフトウェアのライセンスは何にすべきか. 制約:各ライブラリやソースファイルのライセンスを満たさないといけない. ソフトウェア このソフトウェアの ライセンスは 何にすれば License A,B,C,Dを満たせるか. ライブラリ 自分で開発した ソースファイル 他プロジェクトから 再利用した License A License B License C License D リンク 再利用 2013/1/11 SIGSS

課題 開発者にとって,各ライセンスを理解し,それを満たせるライセンスを選択することは手間が大きい. ライセンスの種類が多いこと Open Source Initiativeが承認しているオープンソースライセンスは69種(2012/11/17現在) BlackDuck Knowledgebaseでは2200種以上としている. ライセンスが契約文書であること 開発者にとっては読みにくい. 2013/1/11 SIGSS

既存のソフトウェアの例 Scacchiら[5]によるGoogle Chromeの調査 27種の外部コンポーネント bsddiff, ffmpeg, HarfBuzz, hunspell, Skia… 14種類の異なるライセンス BSD Protection License, LGPL, MIT License, MPL 1.1 or GPL 2.0 or LGPL, Apache License 2.0… [5]W. Scacchi and T.A. Alspaugh, “Understanding the role of licenses and evolution in open architecture software ecosystems,” Journal of Systems and Software, vol.85, no.7, pp.1479–1494, 2012. 2013/1/11 SIGSS

ライセンスの不整合に関する既存研究 Alspaughら[9] ライセンスの各条項を<actor, modality, action, object, license>のタプルで表現し,権利や義務の衝突を計算する. Danielら[4] ライセンスの不整合が生じたときの対処をライセンス統合パターンとして整理した. 代替となるライセンスを見つけるのは難しい ⇒不整合が生じないライセンスを見つけられるようにしたい. [4]D.M. German and A.E. Hassan, “License integration patterns: Addressing license mismatches in component-based development,” Proceedings of 31st International Conference on Software Engineering, pp.188–198, 2009. [9]T.A. Alspaugh, H.U. Asuncion, and W. Scacchi, “Intellectual property rights requirements for heterogeneously licensed systems,” Proceedings of 17th IEEE International Requirements Engineering Conference, pp.24–33, Sept. 2009. 2013/1/11 SIGSS

ライセンス間の包含関係 あるライセンスで配布されている成果物を別のライセンスで配布できるとき,それらのライセンス間にある関係 License A の元で許可される範囲 License Cの下で許可される範囲 License A ⊇ License C 2013/1/11 SIGSS

包含関係のグラフ 包含関係をたどることで,矛盾の起きないライセンスを選択できる. (例)LicenseCの成果物はLicenseDで配布できる. LicenseA ノード:ライセンス 辺:包含関係 License A ⊇ License B License A ⊇ License C License C ⊇ License D LicenseB LicenseC LicenseD 2013/1/11 SIGSS

アプローチ 開発者によるライセンス選択を支援する オープンソースソフトウェアにおけるライセンス間の包含関係を調査する. 既存のオープンソフトウェアにおけるソースファイルとソースパッケージの関係に着目する. 2013/1/11 SIGSS

ソースパッケージと包含関係 管理され,インストール方法が提供されている,ソースファイル集合やパッケージ情報のドキュメント等を含むファイル. ソースパッケージにもライセンスが設定される. ソースファイルはソースパッケージとしてそのライセンスの下で配布されている ソースファイルの ライセンス ソースパッケージの ライセンス ⊇ 2013/1/11 SIGSS

Empirical Study 目的:オープンソースソフトウェアにおけるソフトウェアライセンス間の包含関係と,再利用への適用可能性を調べる リサーチクエスチョン RQ1:既存のソフトウェアから得られるライセンス間の包含関係はどの様なものであるか. RQ2:得られた包含関係から,ライセンス間の矛盾が起きうることを確認できるか 2013/1/11 SIGSS

実験対象 Fedora 17のソースパッケージ (.src.rpm)2132個 SPECファイルとソースファイル集合(tar.gz)から構成されている. SPECファイルの例(traceroute.spec) Summary: Traces the route taken by packets over an IPv4/IPv6 network Name: traceroute Epoch: 3 Version: 2.0.18 Release: 3%{?dist} Group: Applications/Internet License: GPLv2+ URL: http://traceroute.sourceforge.net : パッケージのライセンス 2013/1/11 SIGSS

包含関係の抽出手順 各ソース ファイルの ライセンス名 ソース ファイル パッケージ群 包含関係の作成 フィルタ リング ライセンスの特定 解凍 ライセンスの 包含関係 ライセンスの 包含関係 パッケージの ライセンス名 SPECファイル ライセンス名の対応表 2013/1/11 SIGSS

ライセンスの特定 ソースファイル Ninka[12]を用いてライセンスを特定する. パッケージ 各パッケージのSPECファイルを参照する. ライセンス名 #Package GPLv2+ 334 LibraryGPLv2+ 199 GPLv2 89 BSD3 65 MITX11noNotice 61 ライセンス名 #File EPLv1 39916 GPLv2+ 35097 GPLv3+ 29813 Apachev2 24549 LesserGPLv2.1+ 20677 [12]D. M. German et.al. A sentence-matching method for automatic license identification of source code files. In Proc. ASE 2010, 2010. 2013/1/11 SIGSS

Ninka ソースファイルのライセンスを自動的に特定する 112種類のライセンス 適合率: 96.6% BSDcondSource:Redistributions? of source code must retain the (above )?copyright notice, this list of conditions(,)? and the following disclaimer(, without modification)?: … BSD2:BSDPre, BSDcondSource, BSDcondBinary, BSDasIs, BSDWarr ソースファイル ライセンス 知識 ルールマッチ To identify a license of a source file automatically, we developed Ninka, an automatic license identification tool. This tool use source files as input and report a license name corresponding to the license of the source file. Ninka identify licenses of a source file from the comments of it using knowledge base. Ninka recognizes 112 licenses. For example, BSD3 license (BSD 3-caluse license), GPLv2 (GNU Public license Version2 or later) This tool has 96.6% precision. About the detail of Ninka, we will report on Friday in ASE 2010. ライセンス名 2013/1/11 SIGSS

包含関係の作成 ソースファイルのライセンス⊇ソースパッケージのライセンスとして包含関係を作成する. 包含関係を簡単にするため,どちらのライセンスについても一種類だけ特定されている場合だけ包含関係を作る. パッケージのライセンスはライセンス名の対応表を用いて,Ninkaでのライセンス名を使用する. 総計 包含関係 抽出に利用 パッケージ数 2132 932 ソースファイル数 458366 144297 2013/1/11 SIGSS

ライセンス名対応表 Ninkaのライセンス知識や,Fedoraでのライセンス名の規則[13]から作成した. パッケージでのライセンス名 ApacheSoftwareLicense Apachev2 ASLv2 BSDwithadvertising BSD4 BSD-compatible BSD3 LGPLv2 LibraryGPLv2 LGPLv2.1 LesserGPLv2.1 ISC BSD2 [13] T. ’spot’ Callaway, “Licensing:main - fedoraproject”. https://fedoraproject.org/wiki/Licensing:Main. 2013/1/11 SIGSS

包含関係のフィルタリング 10パッケージ以上に登場する包含関係のみを残す 利用できたパッケージの1% ライセンス特定の結果や,ライセンス名の対応に誤りがあった場合の影響を減らすため 2013/1/11 SIGSS

RQ1 リサーチクエスチョン RQ1:既存のソフトウェアから得られるライセンス間の包含関係はどの様なものであるか. アプローチ 抽出できた包含関係からグラフを作成し,その特徴を確認する. 2013/1/11 SIGSS

2013/1/11 SIGSS

RQ1 考察 実際のソースパッケージから包含関係を抽出できている. 包含関係間において,連結している部分が多い. ⇒既存のソフトウェアから得られた関係を用いて,再利用をした際のライセンス選択の支援が出来そう RQ1の結論 実際のソースパッケージから包含関係を抽出でき,再利用の際に利用できる可能性が高い. 2013/1/11 SIGSS

RQ2 リサーチクエスチョン 得られた包含関係から,ライセンス間の矛盾が起きうることを確認できるか アプローチ [14] S. Warshall, “A theorem on boolean matrices,” J. ACM, vol.9, no.1, pp.11–12, Jan. 1962. 2013/1/11 SIGSS

ライセンス間の到達可能性 a b c d e f g h i j k l m a. BSD2 b. BSD3 c. GPLv2 d. GPLv3 e. GPLv3+ f. LesserGPLv2+ g.LesserGPLv2.1 h. LesserGPLv2.1+ i. LesserGPLv3+ j. LibraryGPLv2 k. LibraryGPLv2+ l. MITX11noNotice m. publicDomain 2013/1/11 SIGSS

RQ2 考察 任意のライセンスから到達可能なライセンスは存在しなかった. ⇒使用したソースファイルやライブラリのライセンス次第ではどのライセンスを選んだとしても矛盾が生じる可能性がある. RQ2結論 調べた範囲においては,ライセンスの矛盾が生じうる. 2013/1/11 SIGSS

制限 実際のソースファイルの利用方法は考慮していない SPECファイルに記載されたソースパッケージのライセンスや,Ninkaの特定結果が誤っているかもしれない   →実際には存在しない包含関係が現れるかもしれない. ソースパッケージに偏りがあるかもしれない →実際にはあるはずの包含関係が現れていない可能性がある. 2013/1/11 SIGSS

関連研究 Germanら[15] ソースパッケージにおけるライセンスの整合性について調査し,問題を指摘している パッケージのライセンスがソースファイルのライセンスよりも古い ソースファイルのライセンス変更が反映されていない 本研究では,パッケージのライセンスとソースファイルのライセンス間の関係から導出できる推移的な関係に着目している [15]D.M. German, M. Di Penta, and J. Davies, “Understanding and auditing the licensing of open source software distributions,” Proceedings of 18th IEEE International Conference on Program Comprehension, pp.84–93, Braga, Portugal, 2010. 2013/1/11 SIGSS

まとめと今後の課題 開発者のライセンス選択支援を目的に既存のソースパッケージから包含関係を抽出 様々なライセンスについて包含関係を抽出できた ライセンスが矛盾することを包含関係から見ることが出来た 今後の課題 ソースファイルの利用状況の考慮 各ライセンスの条項まで踏み込んだ包含関係の抽出 2013/1/11 SIGSS