Download presentation
Presentation is loading. Please wait.
1
ソフトウェア部品検索システムを 対象とするソフトウェアライセンス 特定手法
○真鍋雄貴,市井誠,早瀬康裕,松下誠,井上克郎 大阪大学 大学院情報科学研究科 第69回 情報処理学会全国大会
2
発表の流れ 研究の背景 ソフトウェアライセンス特定手法 適用実験 考察 まとめと今後の課題 第69回 情報処理学会全国大会 (流し気味に)
本発表では初めに研究の背景について, 次に本研究の提案手法であるソフトウェアライセンス手法について, そして提案手法の評価のための適用実験と実験結果に対する考察について, 最後にまとめと今後の課題の順に発表いたします. 第69回 情報処理学会全国大会
3
ソフトウェア部品の再利用 ソフトウェア部品(以降,単に部品)の再利用 オープンソースソフトウェア ソフトウェアの生産性,品質の向上に寄与
再利用できる部品が多数公開されている ソフトウェア部品の再利用は 近年,オープンソースソフトウェアとして開発されているソフトが増えています. そのため,多数の~ そのため,目的に合った~という問題があります この問題に対し,ソフトウェア部品検索システムが用いられます. 目的に合った部品を探すのに手間がかかる ⇒ソフトウェア部品検索システムが用いられる 第69回 情報処理学会全国大会
4
ソフトウェア部品検索システム ソフトウェア部品検索システム (例)SPARS-J 蓄積した部品を検索するシステム 部品の再利用や理解を支援
Javaのクラスを部品とする 大規模ソースファイル群を対象 ソフトウェア部品検索システムは~ その一例といたしまして,われわれの研究グループが過去に開発したSPARS-Jがあります. SPARS-Jは~ 第69回 情報処理学会全国大会
5
検索結果で各部品のライセンスが表示されることが望ましい
問題点 再利用をおこなう人が各部品のライセンスを調べることは大変 再利用をおこなう際には部品のソフトウェアライセンス(以降,単にライセンス)に従わなければならない 従わなければ著作権の侵害⇒法的問題の恐れ ライセンスの種類は多い オープンソースソフトウェアは様々なライセンスの下で配布 ソフトウェア部品検索システムの問題点は,再利用を行う人が各部品のライセンスを調べることが大変であることです. 再利用を~ もし従わない場合,著作権の~ また,ライセンスの~ そこで,システム側で~が必要となる. 検索結果で各部品のライセンスが表示されることが望ましい 第69回 情報処理学会全国大会
6
関連研究 Koders[1],Google Code Search[2] Tuunanenら[3]
検索結果のライセンスを表示するソフトウェア部品検索システム ライセンスが特定できていないファイルが多い Tuunanenら[3] 正規表現を用いてソフトウェアのライセンスを特定する手法 正規表現のパターンとライセンスを指定するソースファイルのコメント部分のマッチ 正規表現のパターンを手作業で作成する必要がある この問題に関連した研究として, KodersやGoogle Code Searchといった,検索結果の~ しかし,ライセンスを特定できていない~のが現状です. また,Tuunanenらは~正規表現を~手法を提案 これは~によりライセンスを特定いたします. しかし,この手法には正規表現の~ [1] [2] [3] Tuunanen, T. et. al. :Retrieving open source software licenses,Proc. OSS 2006, pp.35 – 46 (2006) 第69回 情報処理学会全国大会
7
研究の目的 少ない手間で部品のライセンスを特定 ライセンスの特定に必要な文字列を自動的に抽出 抽出された文字列だけを見てライセンスを特定する
既存手法では手作業で正規表現のパターンを作成しなければならず手間がかかる ライセンスの特定に必要な文字列を自動的に抽出 抽出された文字列だけを見てライセンスを特定する 本研究の目的は部品のライセンスを少ない手間で特定したいということです. 既存手法では~ そこで,われわれはライセンスの~ そして,抽出された~ことができると考えました. 第69回 情報処理学会全国大会
8
着眼点 複数のブロックコメントに共通して現れる文字列にライセンスの指定が含まれる場合が多い 経験則
ライセンスを指定する記述がソースファイルのコメントに含まれている 同一のソフトウェアに含まれる同一のライセンスのソースファイルならばライセンスの指定に統一された記述が用いられている 本研究では複数のブロックコメントに共通して現れる文字列にライセンスの指定が含まれる場合が多いということに着目しました. //ブロックコメントはこのように複数行にわたって記述できるコメントです. 根拠として,ライセンスを指定する記述がソースファイルのコメントに含まれている 同一のソフトウェアに含まれる同一のライセンスのソースファイルならばライセンスの指定に統一された記述が用いられている ということが経験則から言えるためです. /* * You should have received * a copy of the GNU General * Public License * along with this program.. */ 第69回 情報処理学会全国大会
9
提案手法の概要 コメント間に共通して現れる文字列(共通文字列)を抽出 部品検索システムの管理者が共通文字列が示すライセンスを手作業で確認する
共通文字列は機械的に抽出される 部品検索システムの管理者が共通文字列が示すライセンスを手作業で確認する 提案するライセンス特定手法ではまず,コメント間に共通して現れる文字列を抽出します. この文字列を共通文字列と呼び,共通文字列は機械的に抽出されます. それから,システムの管理者が共通文字列が示すライセンスを手作業で確認します. これが提案手法の大まかな流れとなります. 第69回 情報処理学会全国大会
10
提案手法の特長 簡易な作業で特定 効率的に特定 共通文字列を読み,対応するライセンスを選ぶだけでソースファイルのライセンスを特定
ファイルの多い順に共通文字列を処理 ⇒一度に多くのファイルのライセンスを特定 提案手法の特長は2つあります. ひとつは簡易な作業で特定できることです. これは,共通文字列を読み~ためです. もうひとつは,効率的に特定できることです. ソースファイル群全体のライセンスを早く特定できるということです. これは,ファイルの多い順に~,一度に多くのファイルのライセンスを特定 できるためです. #メモ 機械で抽出→なんのアルゴリズム? 第69回 情報処理学会全国大会
11
提案手法の流れ ソースファイル コメント ライセンスが未特定のファイル数 共通文字列 a 2 α α α 管理者 b 4 β c 2 2 d
α α α 管理者 b 4 β c 2 2 d γ γ ソースファイルから~ コメントから~ ライセンスが未特定のファイル数が最大の~ この場合はβ βを特定すると~ (ソースファイル灰色) ソースファイルのライセンスが特定されたのでファイル数が再計算される 次にライセンスが~ この場合はγ 同様に特定 次はαですが,ファイル数0だからこれで終了 #メモ 配色考え直す(分かりやすく) 図と同時に文字情報を提供 ライセンスの特定できたソースファイルに目印 「もっとも最大」禁止 後半流し気味に ライセンスが未特定のファイル数が0でない共通文字列が残っている場合はライセンスの特定を続ける. 残っていない場合は終了する. ソースファイルからコメントを抽出する. コメントから共通文字列を抽出する. 各共通文字列のライセンスが未特定のファイル数を計算する ライセンスが未特定のファイル数が最大の共通文字列を確認し,ライセンスを特定する. e f 第69回 情報処理学会全国大会
12
適用実験 目的⇒提案手法によるライセンス特定の効率を評価する 提案手法によるライセンス特定のカバー率を調査
対象:Gaimのソースファイル(C言語:182個) Tuunanenらの手法と比較 共通文字列の抽出にCCFinderを使用 30単語以上の共通文字列 126 個のファイルでコメントによりライセンスが指定 提案手法によるライセンスの~を評価するため,適用実験を行いました. 実験内容は提案手法による~ 実験対象にはGaimを構成するC言語のソースファイル181個を用いました. 理由は正規表現を用いるtuunannenらの手法と比較するためです. また,126 個のファイルでコメントによりライセンスが指定されており, この数は本手法とtuunannenらの手法でライセンスを特定できる最大の数となります. #メモ 「126 個のファイルでコメントによりライセンスが指定されている」が何を意味するのかを言う 「126個~」の下りと「手法と比較する~」のくだりは先に比較のほうから. 第69回 情報処理学会全国大会
13
ライセンスを指定する記述の一部であったが,
実験結果 提案手法によるカバー率の推移 ライセンスを特定するためのコメントを含む ソースファイルの割合 0.69(=126/182) 0.68 0.69 ライセンスの特定とは無関係 このグラフは手案手法によるカバー率の推移を示したものです. 横軸は確認した共通文字列の数を表し, 縦軸は各時点におけるカバー率を表しています 本手法とTunnanenらの手法でのカバー率の上限となるライセンスを~ 126個を特定する場合カバー率は0.69 本手法では終了までに19個の共通文字列を確認し,カバー率が0.69と 上限まで上昇しました. また,本手法では序盤にカバー率の大きな伸びを示し,6個の時点でも0.68まで 上昇していました. 一方で,このように丸の部分と四角で囲まれた~ これはライセンスの特定できない共通文字列が現れたためです. このような共通文字列は2種類あり, 一方は~ 残りは~でした. #メモ 0.69が手法の限界であることは言う かなり序盤で大きくカバー率を稼いでいることも言いたい. まず最終結果.次に6個時点 こんな文字列も出たよ,みたいに. アニメ直す ライセンスを指定する記述の一部であったが, ライセンスを特定出来なかった 第69回 情報処理学会全国大会
14
考察(1/2) ライセンス指定の記述を含む全てのファイルのライセンスを特定できた
本手法⇒システムにより抽出される19個の共通文字列を人が確認 抽出された文字列を見ているだけなので負担が小さい Tunnanenらの手法⇒人が7 種類の正規表現のパターンを作成 ライセンスが未特定のソースファイルから一つずつパターンを作る分負担が大きい 本手法により人の負担が少なく,ファイル群のライセンスの特定ができる 第69回 情報処理学会全国大会
15
考察(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 次に,ライセンスを~ このような共通文字列は2種類ありました. 一方はライセンスと無関係な共通文字列. もう一方はライセンスの指定と関連があるものでした. 例えばこのような文字列が該当いたします. この文字列の後には欠落部分があるのですが, この部分には”General~”と”Lesser~”と2種類の異なったライセンス名が入る可能性があります. そのため,一つのライセンスに特定することはできません. このような共通文字列が現れることにより,システムの~ この問題に対し,共通文字列中の~ Lesser General Public License 第69回 情報処理学会全国大会
16
まとめと今後の課題 まとめ 今後の課題 ソフトウェアライセンス特定手法の提案 実際のソフトウェアに対して適用実験
特定できるファイルのライセンスは全て特定 ライセンスを特定できない共通文字列 今後の課題 ライセンスを特定できない共通文字列の除去 多種のソースファイル群に対する適用実験 ソフトウェア部品検索システムSPARS-J へ実装 本発表ではソフトウェアライセンス特定手法の提案を行いました. また,実際のソフトウェアであるGaimのソースファイルを用いて適用実験を行いました. (ところ, 特定できるファイルのライセンスは全て特定でき, また効率的でした. 一方でライセンスが特定できない共通文字列も現れておりました.) 今後の課題として,ライセンスを特定できない共通文字列の除去, 大規模なソースファイル群に対する適用実験, そしてソフトウェア部品検索システムSPARS-Jへ実装することが挙げられます. 第69回 情報処理学会全国大会
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.