• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2020 Fiscal Year Annual Research Report

Evaluation of Risk and Soundness of Open Source Software

Research Project

Project/Area Number 18H04094
Research InstitutionOsaka University

Principal Investigator

井上 克郎  大阪大学, 情報科学研究科, 教授 (20168438)

Co-Investigator(Kenkyū-buntansha) 吉田 則裕  名古屋大学, 情報学研究科, 准教授 (00582545)
眞鍋 雄貴 (真鍋雄貴)  福知山公立大学, 情報学部, 講師 (20625339)
松下 誠  大阪大学, 情報科学研究科, 准教授 (60304028)
石尾 隆  奈良先端科学技術大学院大学, 先端科学技術研究科, 准教授 (60452413)
岡野 浩三  信州大学, 学術研究院工学系, 教授 (70252632)
ラウラ ガイコビナ・クラ  奈良先端科学技術大学院大学, 先端科学技術研究科, 助教 (80749094)
崔 恩瀞  京都工芸繊維大学, 情報工学・人間科学系, 助教 (90755943)
神田 哲也  大阪大学, 情報科学研究科, 助教 (90780726)
Project Period (FY) 2018-04-01 – 2023-03-31
Keywordsオープンソースソフトウェア / エコシステム / コードクローン / 深層学習 / 類似度計算
Outline of Annual Research Achievements

オープンソースソフトウェア(OSS)のリスクや健全性を診断するための分析手法に関する研究課題に対して、主に以下のような成果を得た。本課題を遂行するにあたり、国内はもとより国外の研究者とも積極的な情報交換を行い、国内外で積極的な成果発表を行った。
分析対象ソフトウェアのソースファイルと再利用したライブラリの版管理システムのリポジトリを比較し、再利用したバージョンを自動的に検出する手法を開発した。 本手法では局所性鋭敏ハッシュ(LSH)を用いた高速なファイル単位の類似度計算を導入し、ファイル単位の類似度の合計をライブラリのバージョン単位での類似度と定義し、最も類似度の高いバージョンを再利用元として検出する。本手法をオープンソースソフトウェアへ適用した結果、99.3%の割合で利用しているライブラリのバージョンを正しく検出できた。
構文解析器生成系の一つであるANTLRの構文定義記述を入力として与える事で、新たな言語の字句解析が可能となるコードクローン検出ツールCCFinderSWを開発した。42言語の構文定義記述から字句解析に必要となる情報を抽出する評価実験により、81%の言語で字句解析に必要な情報を抽出可能であることがわかった。またC++で記述されたソースコードに対するコードクローン検出においてCCFinderXとCCFinderSWの出力を比較し、ほぼ同等の検出能力を持つ事を示した。
類似ソースコード片検索ツールの出力結果に対してクラスタリングを適用しコード辺をグループ化することによって、正解の可能性が低いコード辺を出力から除外するフィルタリング方法の提案を行った。バグを含む類似コード片のデータセットを用いて提案手法の有効性を確認した。

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

エコシステムを対象としたOSS分析に関して、詳細な分析をいくつかのテーマに沿って行った結果、着実な成果を得ることができた。具体的には、学術論文8篇をはじめ、国際学会にて6件の発表を含む11件の口頭発表を行い、本課題の成果を国内外へ示すことができている。
研究実績の概要に記載した内容以外にも、類似プロジェクト分析に関して、 深層学習を用いたソースコード分類手法の比較調査を行った。既存研究で広く利用されているニューラルネットワークを三つ選択し、ニューラルネットワークにソースコードのトークン列または抽象構文木を学習させた計6種類のソースコード分類手法の精度を比較した。その結果、 ソースコードのトークン列を学習した再帰型ニューラルネットワークの精度が最も高いことを示した。
OSSのエコシステム分析においては、Android SDKのAPIとAndroidアプリケーションを用いて、ソフトウェアプロジェクト間のAPI利用パターンのばらつきとそのバージョン履歴の分析を行った。分析結果に基づいて、プロジェクト固有のAPI使用パターンや、長寿命で一般的でないAPI使用パターンが多く存在するなどの問題点について指摘を行った。
OSSの信頼性やリスクの評価に資する研究に関して、ソースコード特徴量を用いた機械学習によるソースコード品質の判定手法に関する既存手法に対し、学習アルゴリズムの変更や使用するソースコード特徴量の追加などによって精度を向上させ、さらに判定対象の拡大を行う研究を行った。また、改良した判定手法の有効性を評価実験により確認した。
そのほかのテーマに関しても、分析手法の開発やツール等の作成など、順調に成果が出ており、その結果は論文や国際会議等でも発表済である。国内外の研究者との共同研究などを推進して、広い視野に立った研究を今後も進めていけると考えている。

Strategy for Future Research Activity

本年度では引き続き、OSSのエコシステムの分析や評価の種々の手法について、以下のそれぞれのテーマについて研究を行う。
類似プロジェクト分析に関しては、深層学習を用いてソースコード分類を行う種々の手法がいろいろ提案されているが、深層学習を用いた手法の分類精度は学習用データセットに大きく影響される。そのための学習用データセットの構築方法を提案し、より高い精度のモデル作成を試みる。
OSSのエコシステム分析においては、プロジェクト間の複製に関する調査を行う。OSSではプロジェクト間で多数のファイル群のコピーが行われているが、元のファイルが修正された場合、コピーされた各プロジェクトのファイルにその修正が正しく伝播していくのか知られていない。今年は、OSSのファイルの修正の伝播の定量的な分析や、伝播が起こる場合や起こらない場合の理由などを調査する。
OSSの各ファイルにコピーライト表記が正しく記載されているか、過去に行レベルの分析を行ってきたが、トークンレベルの分析も著作権的に重要と思われるので、トークンレベルの著作権に関してLinuxカーネルや他のOSSについて調べる。
OSS等プログラムの実行時トレースログを圧縮して蓄積した場合のデバッグ効率の評価手法、ソースコードの「良さ」を機械学習を用いて判定する方法、機械学習を用いたコードクローン検出システムの汎化性の性能分析、プログラムの静的な解析による振舞いの解析など、引き続きOSSの信頼性やリスクの評価に資する種々な研究を行う。

  • Research Products

    (19 results)

All 2021 2020

All Journal Article (8 results) (of which Int'l Joint Research: 4 results,  Peer Reviewed: 8 results,  Open Access: 7 results) Presentation (11 results) (of which Int'l Joint Research: 6 results)

  • [Journal Article] Lags in the Release, Adoption, and Propagation of Npm Vulnerability Fixes2021

    • Author(s)
      Chinthanet, Bodin, Raula Gaikovina Kula, Shane McIntosh, Takashi Ishio, Akinori Ihara, Kenichi Matsumoto
    • Journal Title

      Empirical Software Engineering

      Volume: 26 Pages: 1-28

    • DOI

      10.1007/s10664-021-09951-x

    • Peer Reviewed / Open Access / Int'l Joint Research
  • [Journal Article] Proposal and Evaluation for A Method to Verify Equivalence of Specifications of C and Java Functions with Recursive Data Structures by SAW: Case Studies of Linear Structures and Binary Trees2021

    • Author(s)
      Rin Karashima, Kozo Okano, Shinpei Ogata, Satoshi Harauchi, and Toshifusa Sekizawa
    • Journal Title

      International Journal of Informatics Society,

      Volume: Vol.12, No.3, pp.143-156 Pages: 143-156

    • Peer Reviewed / Open Access
  • [Journal Article] An Exploratory Study of Copyright Inconsistency in the Linux Kernel2021

    • Author(s)
      Shi QIU, Daniel M. GERMAN, Katsuro INOUE
    • Journal Title

      IEICE TRANSACTIONS on Information and Systems

      Volume: E104-D Pages: 254-263

    • DOI

      10.1587/transinf.2020EDP7107

    • Peer Reviewed / Open Access / Int'l Joint Research
  • [Journal Article] WhoReview: A multi-objective search-based approach for code reviewers recommendation in modern code review2021

    • Author(s)
      Moataz Chouchen, Ali Ouni, Mahamed Wiem Mkaouer, Raula Gaikovina Kula, Katsuro Inoue
    • Journal Title

      Applied Soft Computing

      Volume: 100 Pages: ―

    • DOI

      10.1016/j.asoc.2020.106908

    • Peer Reviewed / Int'l Joint Research
  • [Journal Article] 多様なプログラミング言語に対応可能なコードクローン検出ツール CCFinderSW2020

    • Author(s)
      瀬村 雄一, 吉田 則裕, 崔 恩瀞, 井上 克郎
    • Journal Title

      電子情報通信学会論文誌 D

      Volume: J103-D Pages: 215-227

    • DOI

      10.14923/transinfj.2019PDP0025

    • Peer Reviewed / Open Access
  • [Journal Article] 軽量な類似度計算によるプロジェクト間のソースファイル集合の再利用検出2020

    • Author(s)
      伊藤 薫, 石尾 隆, 神田 哲也, 井上 克郎
    • Journal Title

      電子情報通信学会論文誌 D

      Volume: J103-D Pages: 542-554

    • DOI

      10.14923/transinfj.2019JDP7077

    • Peer Reviewed / Open Access
  • [Journal Article] 類似ソースコード片検索結果に対するクラスタリング技術を用いたフィルタリング手法2020

    • Author(s)
      嶋利 一真, 石尾 隆, 井上 克郎
    • Journal Title

      電子情報通信学会論文誌 D

      Volume: J103-D Pages: 751-753

    • DOI

      10.14923/transinfj.2020JDL8009

    • Peer Reviewed / Open Access
  • [Journal Article] A Machine Learning Method for Automatic Copyright Notice Identification of Source Files2020

    • Author(s)
      Shi QIU, Daniel M. GERMAN, Katsuro INOUE
    • Journal Title

      IEICE TRANSACTIONS on Information and Systems

      Volume: E104-D Pages: 2709-2712

    • DOI

      10.1587/transinf.2020EDL8089

    • Peer Reviewed / Open Access / Int'l Joint Research
  • [Presentation] 深層学習を用いたコードクローン検出器の汎化性能に関する調査2021

    • Author(s)
      福家 範浩, 藤原 裕士, 吉田 則裕, 崔 恩瀞, 井上 克郎
    • Organizer
      情報処理学会第207回ソフトウェア工学研究発表会
  • [Presentation] Code-based Vulnerability Detection in Node.js Applications: How far are we?2020

    • Author(s)
      Chinthanet, Bodin, Serena Elisa Ponta, Henrik Plate, Antonino Sabetta, Raula Gaikovina Kula, Takashi Ishio, Chaiyong Ragkhitwetsagul, Morakot Choetkiertikul, Kenichi Matsumoto
    • Organizer
      The 35th IEEE/ACM International Conference on Automated Software Engineering
    • Int'l Joint Research
  • [Presentation] Deriving of Time Constants in Timed Automata for Hazard Transition Sequences for STAMP/STPA2020

    • Author(s)
      Kozo Okano, Pan Yang, Shinpei Ogata, Keishi Okamoto
    • Organizer
      Proceedings of the 23rd International Conference on Knowledge-Based and Intelligent Information & Engineering Systems,pp.1392-1401
    • Int'l Joint Research
  • [Presentation] Java model checking: improvement of the understanding of counterexample2020

    • Author(s)
      Marwan Bernard Hassan Chellet, Shinpei Ogata, and Kozo Okano
    • Organizer
      Proceedings of International Workshop on Informatics 2020 pp.95-100
    • Int'l Joint Research
  • [Presentation] Improving Accuracy of Automatic Deriva- tion of State Variables and Transitions from a Japanese Requirements Specification2020

    • Author(s)
      Hiroya Ii, Kozo Okano, and Shinpei Ogata
    • Organizer
      Pro-ceedings of the 13th International Joint Conference on Knowledge-Based Software En- gineering, JCKBSE 2020
    • Int'l Joint Research
  • [Presentation] On the Variations and Evolutions of API Usage Patterns: Case Study on Android Applications2020

    • Author(s)
      Koki Ogasawara, Tetsuya Kanda, Katsuro Inoue
    • Organizer
      3rd International Workshop on Software Health (SoHeal 2020)
    • Int'l Joint Research
  • [Presentation] 高い拡張性を備えた SaaS 型コードクローン分析システムの提案2020

    • Author(s)
      松島 一樹, 井上 克郎
    • Organizer
      電子情報通信学会ソフトウェアサイエンス研究会2020年7月研究会
  • [Presentation] 言語サーバを応用した細粒度編集履歴収集プラットフォームの構想2020

    • Author(s)
      石田 直人, 神田 哲也, 嶋利 一真, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2020 WS5
  • [Presentation] Identifying Compiler and Optimization Options from Binary Code using Deep Learning Approaches2020

    • Author(s)
      Davide Pizzolotto, Katsuro Inoue
    • Organizer
      36th IEEE International Conference on Software Maintenance and Evolution (ICSME 2020)
    • Int'l Joint Research
  • [Presentation] 深層学習を用いたソースコード分類手法の比較調査2020

    • Author(s)
      藤原 裕士, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • Organizer
      第27回 ソフトウェア工学の基礎ワークショップ
  • [Presentation] 判定対象の拡大を目的とした3値分類によるソースコード品質の評価手法2020

    • Author(s)
      松井 智寛, 松下 誠, 井上 克郎
    • Organizer
      情報処理学会第205回ソフトウェア工学研究発表会

URL: 

Published: 2022-12-28  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi