研究課題/領域番号 |
18H04094
|
研究機関 | 大阪大学 |
研究代表者 |
井上 克郎 大阪大学, 情報科学研究科, 教授 (20168438)
|
研究分担者 |
吉田 則裕 名古屋大学, 情報学研究科, 准教授 (00582545)
眞鍋 雄貴 (真鍋雄貴) 熊本大学, 大学院先端科学研究部(工), 助教 (20625339)
松下 誠 大阪大学, 情報科学研究科, 准教授 (60304028)
石尾 隆 奈良先端科学技術大学院大学, 先端科学技術研究科, 准教授 (60452413)
岡野 浩三 信州大学, 学術研究院工学系, 准教授 (70252632)
ラウラ ガイコビナ・クラ 奈良先端科学技術大学院大学, 先端科学技術研究科, 助教 (80749094)
崔 恩瀞 京都工芸繊維大学, 情報工学・人間科学系, 助教 (90755943)
神田 哲也 大阪大学, 情報科学研究科, 助教 (90780726)
|
研究期間 (年度) |
2018-04-01 – 2023-03-31
|
キーワード | オープンソースソフトウェア / エコシステム / コードクローン / 実行トレース |
研究実績の概要 |
オープンソースソフトウェア(OSS)のリスクや健全性を診断するための分析手法にに関する研究課題に対して、主に以下のような成果を得た。本課題を遂行するにあたり、国内はもとより国外の研究者とも積極的な情報交換を行い、国内外で積極的な成果発表を行った。 リファクタリングの見積もりに関する課題を解決するために、コードクローンをリファクタリングしたと仮定したときの削減可能ソースコード量を推定する手法を提案した。本手法はJDeodorantを用いてリファクタリング可能なコードクローンを特定し、削減可能なコード量が多いコードクローンから優先的にリファクタリングを行う。また本手法を用いて7つのオープンソースソフトウェア(OSS)に対して削減可能なソースコード量を推定したところ、平均して検出してコードクローンの総行数の6.9%であることが分かった。 実行トレース記録に使用される保存領域のサイズを開発者が制御可能で、かつデバッグに必要な命令の実行順序や変数の値を可能な限り網羅的に収集することを目的として、プログラム実行中に各命令が使用したデータを最新k回だけ保存する実行トレース記録手法を提案した。本手法はプログラムの各命令が使用したデータの最新の系列を、命令ごとに一定個数記録するような領域を個別に作成する。命令ごとに記録する個数を調整することで、開発者が保有する保存領域に応じた実行トレースの記録が可能となる。評価の結果、完全な実行トレースに対して1%程度のデータ記録量であっても、60%ないし74%の観測地点に対して完全な観測値を保存し、フィールドや配列に関するデータ依存の多くが追跡可能であることを確認した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
エコシステムを対象としたOSS分析に関して、詳細な分析をいくつかのテーマに沿って行った結果、着実な成果を得ることができた。具体的には、学術論文3篇をはじめ、国際学会にて12件の発表を行い、本課題の成果を国内外へ示すことができている。 研究実績の概要に記載した内容以外にも、類似プロジェクト分析においては、ソフトウェアの開発履歴から、マージコンフリクトの解消方法を判定するモデルを機械学習によって構築し、最大94%の割合で適切なマージコンフリクトの解消案を提案することができた。また既存のコードクローン検索ツールでは実現できなかった、検索条件を細かく制御できかつ高速に検索を行うことができるツールの開発に成功した。 また、効率よくバグ修正を行うためのバグレポートに含めるべき要素についての実証的評価や予測に関する研究を行ったり、バイトコードに対するコードクローン検出を行う際に、リファクタリングを行いコードを標準的な形に整形することに検出効率が向上することに関する研究も行った。さらに、複数のコードクローン出力結果の差分を視覚化し、コードクローン検出結果のツールやそのパラメータによる違いによる影響の分析についての研究を行った。 そのほかのテーマに関しても、分析手法の開発やツール等の作成など、順調に成果が出ており、その結果は論文や国際会議等でも発表済である。国内外の研究者との共同研究などを推進して、広い視野に立った研究を今後も進めていけると考えている。
|
今後の研究の推進方策 |
本年度では引き続き、OSSのエコシステムの分析や評価の種々の手法について、以下のそれぞれのテーマについて研究を行う。 類似プロジェクト分析に関しては、機械学習を行いた類似関数の判定方法に関して、特定のプロジェクトに対して局所最適化にならないよう、複数プロジェクトに対する精度向上の手法の導入やその評価を行い、より汎用的に用いることができる技術を確立する。同型のプログラム断片を効率よく発見するツールccgrepを開発し、OSSとして公開しているが、本ツールの一層の普及を目指すとともに、その効率や精度を他のコードクローン分析ツールと比較し、評価を行う。ファイル圧縮技術を用いた2つのファイル間の類似性判定を行うNCD法の開発では、自然語文章を取り扱えるようにするなど、より実用的に有用とするための技術を開発するとともに、実プロジェクト環境での評価を行う。 OSSのエコシステム分析においては、開発者の間のコミュニケーションの分析やプログラム文中に用いられるイディオムなどを行ってきている。本年度も引き続き開発者や開発プロジェクトの信頼性や効率の指標となりうるいろいろな指標に関してエコシステムの分析を行い、どのような特性がエコシステムやプロジェクトの成功に導くかの要素の特定を進める。OSSのコピーライト表記と実際のソフトウェアの貢献者との違いを検出する方法を提案し、実際にLinuxのカーネルにおいて大きな乖離が見られることを示してきた。この方法を洗練してツール化し、大規模な分析を行い、他のソフトウェアプロジェクトでの乖離を調査する。 その他、OSS等プログラムの実行時のデバッグ効率の向上のためのログ圧縮手法やソースコードの「良さ」の判定方法、コードクローンの効率的な圧縮方法、プログラムの静的な解析による振舞いの解析など、OSSの信頼性やリスクの評価に資する種々な研究を行う。
|