研究課題/領域番号 |
25220003
|
研究機関 | 大阪大学 |
研究代表者 |
井上 克郎 大阪大学, 情報科学研究科, 教授 (20168438)
|
研究分担者 |
楠本 真二 大阪大学, 情報科学研究科, 教授 (30234438)
松下 誠 大阪大学, 情報科学研究科, 准教授 (60304028)
石尾 隆 大阪大学, 情報科学研究科, 助教 (60452413)
岡野 浩三 信州大学, 学術研究院工学系, 准教授 (70252632)
肥後 芳樹 大阪大学, 情報科学研究科, 准教授 (70452414)
|
研究期間 (年度) |
2013-05-31 – 2018-03-31
|
キーワード | プログラム解析 / オープンソースソフトウェア / ソフトウェアライブラリ |
研究実績の概要 |
昨年度から引き続いて、ソフトウェア資産の分析ならびに効果的な利活用に関する研究課題に対して、主に以下のような成果を得た。本課題を遂行するにあたり、国内はもとより国外の研究者とも積極的な情報交換を行い、国内外で積極的な成果発表を行った。 従来のコードクローン検出手法では、ソースコード上においてある程度以上の大きさでまとまったコードが重複している場合に、コードクローンとして検出される。しかし、重複したコードが複数のメソッドに解離して存在していた場合には検出できない場合が多い。そこで、複数のメソッド上に解離して存在するコードクローンを検出する手法を提案した。提案手法の評価実験として,単一のソフトウェアに対する既存手法の検出結果と提案手法の検出結果を比較したところ、提案手法から検出されたコード片の多数は,既存手法での検出が困難であることを確認した。 ソースコード中の識別子はプログラム解析において重要な要素の1つであり、例えばライブラリAPIについて、利用関係を特定するためにAPIを用いた識別子名を用いた解析が行われている。Javaの場合はパッケージ名ことに名前空間が定められているため、識別子に対する方を決定するためには構文情報が必要になる一方、Cでは名前空間が単一であるため、識別子名命名時に型を意識すると考えられる。そこでJavaないしCで記述されたライブラリを対象に解析を行い、識別子名の出現数を比較したところ、Cで書かれたライブラリの識別子名はJavaのそれと比べて重複しない割合が高いことが分かった。これらの特徴を理解することにより、ライブラリの同一性判定に識別子名の多様性をメトリクスとして用いることができると考えられる。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
ソフトウェア資産の利活用を行う際の支援となる、現資産の収集・整理・分析並びにその視覚化に関して、着実な成果を得ることができた。人間の手による分析が必要となっていた点を、高確率で自動的に分析する手法の確立によって、多種多様なオープンソースソフトウェアに対して幅広い分析を効率よく行うことができるため、世界中のソフトウェアの動向を具体的に把握できるようになると考えられる。また、ライブラリの構成に関する知見を広げることによって、確実なソフトウェアの利用を推進するための基礎研究を確立しつつある。今後はシステム等の完成度を含め成果を広く利用してもらうことにより、多くの一般の利用者からのデータを収集していきたい。 各サブテーマに関しても、分析手法の開発やツール等の作成など、順調に成果が出ており、結果は論文や国際会議等でも発表している。国際研究などをさらに推進して、広い視野に立った研究を今後も進めていけると考えている。
|
今後の研究の推進方策 |
当初の目的である「ソフトウェア資産を収集し、分析、評価して、その価値を可視化し、開発支援する方法やシステムを開発する」、というものを大きく変更する必要はないと考えている。ただし、この分野の研究やシステム開発は近年急速に発達してきており、いろいろ新たなシステムの開発や普及が進み、また、新たなプロジェクトが起ころうとしている。このような環境変化に適応して、本プロジェクトがより多くの価値を生み出せるよう、以下の方策を採ることを考えている。 これまでに行った研究成果を統合し、開発者にソフトウェアエコシステムのライフサイクルの一部活動を支援するようなシステムを設計・開発し、Webシステムとして公開し、一般にサービスすることを目指す。このサービスの一環として、ソフトウェア起源分析システム(Software Provenance Analysis System)の構築を目指す。このシステムではユーザーが手元にあるソースコードファイルをシステムに入力すると、そのファイルの起源や由来などの歴史と共に、そのライセンスやコピーライトオーナーなどの属性を表示し、ユーザーが再利用する際にそのファイルの安全性や、別のよりよいファイルがないかなどを簡単に知ることができると考えている。分析の対象としては、Linux OSのひとつであるDebianなど、多くのユーザーを獲得するとともに、非常に多くの機能を有する種々のアプリケーションソフトウェアやライブラリソフトウェアを含むような大規模システムを検討したい。
|