Study on Licensing and Program Understanding for Reuse Support

(邦訳:再利用支援を目的としたライセンスとプログラム理解の研究)
鹿島 悠
(株)ジーニー プラットフォーム開発部

[背景]ソフトウェア再利用の難しさ
[問題]ライセンス,識別子,ソースコード解析
[貢献]それぞれの問題に対して新たな知見を示した


 ソフトウェア再利用は,信頼性の高いソフトウェアを高速に開発するための手法であり,近年では,オープンソースソフトウェアの発展に伴い再利用対象は増加している.ただし,ソフトウェア再利用は古くから提案されてはいるが,さまざまな課題が存在しており,実際に再利用を行うのは難しいのが実情である.本研究では,ソフトウェア再利用にかかわる3つの課題の解決を目指した.その3つとは,ソフトウェアライセンスの選択,再利用対象の検索,再利用部品の抽出である.

 ソフトウェアライセンスは,再利用を含めたソフトウェアの利用について,許可あるいは制限を与える.そのため,ソフトウェアライセンスの選択は再利用活動に影響を与えると考えられるが,定量的には調査が行われていなかった.そこで著者はオープンソースソフトウェアを対象に,ソフトウェアライセンスが再利用活動に与える影響について調査を行った.特に,基本的な再利用方法であるコピーアンドペースト活動に着目して調査を行った.結果として本研究では,同じライセンスを付けられたファイル間でのコピーアンドペーストが多かったこと,また,制限の緩いライセンスが付けられたファイルの方が制限の強いライセンスよりもコピーアンドペーストされていたことを定量的に確認した.

 現在,開発者は再利用可能な対象を,検索エンジンを用いて探すと考えられる.そのため,検索対象のひとつであるソースコード中の識別子に対して良い命名が付けられていることが望ましい.ただし,良い命名には開発対象のドメインに関する深い知識やプログラミングに関する熟練が必要であるため,すべての開発者が良い命名ができるわけではない.そこで本研究ではドメイン固有の動詞-目的語の関係を収録した辞書の作成を目指す.この辞書は(動詞,直接目的語,間接目的語)の三つ組を収録しており,それらはメソッドシグネチャから取得したものである.実験では,辞書に収録される関係が対象とするドメイン,またはJavaプログラム共通でよく見られる関係であることを確認した.

 再利用対象の機能を持つソフトウェアが見つかった後は,その機能をユーザのソフトウェアに組み込むことが必要となる.既存研究では,この作業に対してプログラムスライシングを用いた支援を行う手法が提案されている.しかし,プログラムスライシングはさまざまな手法が提案されているため,プログラムスライシングを使用する開発者や研究者にとって,包括的な比較結果は実際に使用する手法の選択の際に重要な情報となる.本研究では,新しく提案されていた手法を含めて,プログラムスライシング手法の包括評価を行った.比較した手法は,スタティックエグゼキュートビフォア,コンテキストインセンティブスライシング,この2つをハイブリッドした手法,そして,インプルーブドスライシングの4手法である.比較の結果,ハイブリッド手法は大規模なプログラムでも解析できるスケーラビリティを示し,スライスの大きさもスタティックエグゼキュートビフォアのものより25%小さいものとなった.一方で,インプルーブドスライシングは,大規模プログラムは解析できなかったが,中規模のプログラムを解析できるスケーラビリティを示し,ハイブリッド手法のスライスに比べて30%小さいスライスを返すことを示した.

 
 
 (2015年6月6日受付)
取得年月日:2015年3月
学位種別:博士(情報科学)
大学:大阪大学



推薦文
:(ソフトウェア工学研究会)


本論文は,ソフトウェア再利用の支援をテーマとして,ソースコード中の単語の利用法の抽出やデータフローの解析という基盤技術の有効性を分析しており,プログラム解析を活用したソフトウェア開発環境の構築に有益な知見を提供している.


著者からの一言


指導教員の皆様のご指導・ご助力がなければ博士論文を書くことは不可能でした.この場を持って感謝の意を述べさせていただきます.ありがとうございました.