ソフトウェア部品検索システムを 対象とするソフトウェアライセンス 特定手法 ○真鍋雄貴,市井誠,早瀬康裕,松下誠,井上克郎 大阪大学 大学院情報科学研究科 第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
© Copyright 2024 ExpyDoc