研究課題/領域番号 |
18H04094
|
研究機関 | 大阪大学 |
研究代表者 |
井上 克郎 大阪大学, 情報科学研究科, 教授 (20168438)
|
研究分担者 |
吉田 則裕 名古屋大学, 情報学研究科, 准教授 (00582545)
眞鍋 雄貴 (真鍋雄貴) 福知山公立大学, 情報学部, 講師 (20625339)
松下 誠 大阪大学, 情報科学研究科, 准教授 (60304028)
石尾 隆 奈良先端科学技術大学院大学, 先端科学技術研究科, 准教授 (60452413)
岡野 浩三 信州大学, 学術研究院工学系, 教授 (70252632)
ラウラ ガイコビナ・クラ 奈良先端科学技術大学院大学, 先端科学技術研究科, 助教 (80749094)
崔 恩瀞 京都工芸繊維大学, 情報工学・人間科学系, 助教 (90755943)
神田 哲也 大阪大学, 情報科学研究科, 助教 (90780726)
|
研究期間 (年度) |
2018-04-01 – 2023-03-31
|
キーワード | オープンソースソフトウェア / エコシステム / 深層学習 / 類似度分析 / ライセンス |
研究実績の概要 |
オープンソースソフトウェア(OSS)のリスクや健全性を診断するための分析手法に関する研究課題に対して、主に以下のような成果を得た。本課題を遂行するにあたり、国内はもとより国外の研究者とも積極的な情報交換を行い、国内外で積極的な成果発表を行った。 あるテストメソッドについて、実行可能性を保ちつつ自動的に移植する手法およびそれが可能となる条件を検討した。Javaで記述されたオープンソースソフトウェアを調査し、テストコードの再利用元として使用できるリポジトリが1862件存在すること、大半のテストメソッドはテスト対象コードにたかだか2つの依存を持つこと、そうした依存関係を保つ移植によって本来必要なテストメソッドの平均83%を生成できる可能性を実証的に示し、既存テストコードの再利用による自動生成手法が現実的かつ有益であることを示した。 深層学習を用いたソースコード分類のための動的な学習用データセット改善手法を提案した。提案手法は、学習用データセットを用いてソースコード分類モデルの学習と検証を行った結果から学習用データセットを再構築する、一連の作業を繰り返して学習用データセットの改善を行い、高精度のモデルを作成する。三つのベースライン手法と分類精度を比較した評価実験の結果、提案手法を用いて学習したモデルの分類精度が最も高く、改善の結果モデルの分類精度は0.64から0.96まで向上することを確認した。 ソフトウェアプロダクトやソースコードを軽量なデータ構造で表すことで、その類似度計算を高速化し、より大規模なソフトウェアプロダクトの集合からも派生関係を復元する手法を提案した。9つのデータセットを用いた評価実験の結果、提案手法が既存手法と同程度の精度であり、計算時間については最大で1848倍、中央値で127倍高速であることを確認した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
エコシステムを対象としたOSS分析に関して、詳細な分析をいくつかのテーマに沿って行った結果、着実な成果を得ることができた。具体的には、学術論文14篇をはじめ、国際学会にて4件の発表を含む20件の口頭発表を行い、本課題の成果を国内外へ示すことができている。また、国内外の研究者に執筆を依頼し、コードクローンに関する包括的な理解を行える、これまでの種々の研究成果をまとめた書籍を出版した。 類似ソフトウェア分析に関して、マージコンフリクトの行数、日付などのメタ情報からマージ方法を決定する機械学習モデルに対し、ソースコードメトリクスをモデルに加えることで、適切なマージの解消方法を示唆する判定モデルへの影響や、どのソースコードメトリクスがよりモデルに貢献するかを調査した。また、異なる言語に対するモデルの適応性を検証した。公開されているOSSプロジェクトの中から27件を使用して評価実験を行い、性能が向上していることを確認した。 OSSのエコシステム分析に関して、GitHubプロジェクトに利用されているStack Overflowのコード片の変更履歴を分析し、進化パターンの分類を行った。Javaプロジェクトに対しSOTorrnetを用いて再利用されたStack Overflowのコード片の変更履歴を手作業で調査した。GitHubのコード片がStack Overflowのコード片に追従しているか調査し、追従していないものに対しては進化パターンの分類を行った。 OSSの著作権表記の調査に関して、どの程度著作権表示が記述されているのかを調べるため、ソースコードを行単位で著作権表示の有無を定義した上で、その割合を調査した。結果としてどのOSSにも著作権表示がない行が存在していること、著作者が作成した行数の割合と著作権表示を記述する割合に関係があることがわかった。
|
今後の研究の推進方策 |
本研究の最終年度として、OSSのエコシステム分析に関連する以下のテーマについて研究を行う。 類似プロジェクト分析に関しては、コードの類似性をプログラミング言語やコードの表記法を超えて調べるために、ソースコードをコンパイルしていくつかの正規化を施し逆コンパイルし、そのソースコード上での類似部分を検出する方法を確立し、OSSのデータに対して評価を行う。 OSSのエコシステム分析に関しては、プロジェクト間に存在するコードクローンに対して、変更の追従性に関して分析を行う方法を確立し、それをOSSプロジェクトに適用し、追従が行われていない場合の原因の分析を行う。ソフトウェアの出自やライセンスを明示する方法としてSBOM(Software Bill Of Materials)の利用が注目されているが、SBOMの一例であるSPDX形式のデータを既存のプロジェクト情報から自動生成する方法を開発する。ライセンスや著作権、依存関係などの情報を取得できるようにする。 OSSプロジェクトはGithubなどのレポジトリ上で開発、配布されている場合が多いが、それらを開発者以外の他人が自分の計算機環境上にインストールし、稼働させるのは容易ではない。レポジトリ上に置かれている多数のプロジェクトのインストール可能性に関して、調査を行い、インストール不可能な場合のその原因分析や、インストール可能にするための解法などの一般化を行う。 OSSの評価のために、ソースコードの良さの機械学習による判定方法や静的な解析による振舞いの解析などを行い、OSSの信頼性やリスクの評価に資する種々の研究を行う。
|