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

2021 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)のリスクや健全性を診断するための分析手法に関する研究課題に対して、主に以下のような成果を得た。本課題を遂行するにあたり、国内はもとより国外の研究者とも積極的な情報交換を行い、国内外で積極的な成果発表を行った。
あるテストメソッドについて、実行可能性を保ちつつ自動的に移植する手法およびそれが可能となる条件を検討した。Javaで記述されたオープンソースソフトウェアを調査し、テストコードの再利用元として使用できるリポジトリが1862件存在すること、大半のテストメソッドはテスト対象コードにたかだか2つの依存を持つこと、そうした依存関係を保つ移植によって本来必要なテストメソッドの平均83%を生成できる可能性を実証的に示し、既存テストコードの再利用による自動生成手法が現実的かつ有益であることを示した。
深層学習を用いたソースコード分類のための動的な学習用データセット改善手法を提案した。提案手法は、学習用データセットを用いてソースコード分類モデルの学習と検証を行った結果から学習用データセットを再構築する、一連の作業を繰り返して学習用データセットの改善を行い、高精度のモデルを作成する。三つのベースライン手法と分類精度を比較した評価実験の結果、提案手法を用いて学習したモデルの分類精度が最も高く、改善の結果モデルの分類精度は0.64から0.96まで向上することを確認した。
ソフトウェアプロダクトやソースコードを軽量なデータ構造で表すことで、その類似度計算を高速化し、より大規模なソフトウェアプロダクトの集合からも派生関係を復元する手法を提案した。9つのデータセットを用いた評価実験の結果、提案手法が既存手法と同程度の精度であり、計算時間については最大で1848倍、中央値で127倍高速であることを確認した。

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分析に関して、詳細な分析をいくつかのテーマに沿って行った結果、着実な成果を得ることができた。具体的には、学術論文14篇をはじめ、国際学会にて4件の発表を含む20件の口頭発表を行い、本課題の成果を国内外へ示すことができている。また、国内外の研究者に執筆を依頼し、コードクローンに関する包括的な理解を行える、これまでの種々の研究成果をまとめた書籍を出版した。
類似ソフトウェア分析に関して、マージコンフリクトの行数、日付などのメタ情報からマージ方法を決定する機械学習モデルに対し、ソースコードメトリクスをモデルに加えることで、適切なマージの解消方法を示唆する判定モデルへの影響や、どのソースコードメトリクスがよりモデルに貢献するかを調査した。また、異なる言語に対するモデルの適応性を検証した。公開されているOSSプロジェクトの中から27件を使用して評価実験を行い、性能が向上していることを確認した。
OSSのエコシステム分析に関して、GitHubプロジェクトに利用されているStack Overflowのコード片の変更履歴を分析し、進化パターンの分類を行った。Javaプロジェクトに対しSOTorrnetを用いて再利用されたStack Overflowのコード片の変更履歴を手作業で調査した。GitHubのコード片がStack Overflowのコード片に追従しているか調査し、追従していないものに対しては進化パターンの分類を行った。
OSSの著作権表記の調査に関して、どの程度著作権表示が記述されているのかを調べるため、ソースコードを行単位で著作権表示の有無を定義した上で、その割合を調査した。結果としてどのOSSにも著作権表示がない行が存在していること、著作者が作成した行数の割合と著作権表示を記述する割合に関係があることがわかった。

Strategy for Future Research Activity

本研究の最終年度として、OSSのエコシステム分析に関連する以下のテーマについて研究を行う。
類似プロジェクト分析に関しては、コードの類似性をプログラミング言語やコードの表記法を超えて調べるために、ソースコードをコンパイルしていくつかの正規化を施し逆コンパイルし、そのソースコード上での類似部分を検出する方法を確立し、OSSのデータに対して評価を行う。
OSSのエコシステム分析に関しては、プロジェクト間に存在するコードクローンに対して、変更の追従性に関して分析を行う方法を確立し、それをOSSプロジェクトに適用し、追従が行われていない場合の原因の分析を行う。ソフトウェアの出自やライセンスを明示する方法としてSBOM(Software Bill Of Materials)の利用が注目されているが、SBOMの一例であるSPDX形式のデータを既存のプロジェクト情報から自動生成する方法を開発する。ライセンスや著作権、依存関係などの情報を取得できるようにする。
OSSプロジェクトはGithubなどのレポジトリ上で開発、配布されている場合が多いが、それらを開発者以外の他人が自分の計算機環境上にインストールし、稼働させるのは容易ではない。レポジトリ上に置かれている多数のプロジェクトのインストール可能性に関して、調査を行い、インストール不可能な場合のその原因分析や、インストール可能にするための解法などの一般化を行う。
OSSの評価のために、ソースコードの良さの機械学習による判定方法や静的な解析による振舞いの解析などを行い、OSSの信頼性やリスクの評価に資する種々の研究を行う。

  • Research Products

    (35 results)

All 2022 2021

All Journal Article (14 results) (of which Int'l Joint Research: 2 results,  Peer Reviewed: 14 results,  Open Access: 8 results) Presentation (20 results) (of which Int'l Joint Research: 4 results,  Invited: 1 results) Book (1 results)

  • [Journal Article] Characterizing and Mitigating Self-Admitted Technical Debt in Build Systems2022

    • Author(s)
      Tao Xiao, Dong Wang, Shane McIntosh, Hideaki Hata, Raula Gaikovina Kula, Takashi Ishio, Kenichi Matsumoto
    • Journal Title

      IEEE Transactions on Software Engineering

      Volume: 48 Pages: 4214-4228

    • DOI

      10.1109/TSE.2021.3115772

    • Peer Reviewed / Int'l Joint Research
  • [Journal Article] SojiTantei: Function-Call Reachability Detection of Vulnerable Code for npm Packages2022

    • Author(s)
      Bodin Chinthanet, Raula Gaikovina Kula, Rodrigo Eliza Zapata, Takashi Ishio, Kenichi Matsumoto, Akinori Ihara
    • Journal Title

      IEICE Transactions on Information and Systems

      Volume: E105-D Pages: 19-20

    • DOI

      10.1587/transinf.2021MPL0001

    • Peer Reviewed
  • [Journal Article] Executable Counterexample for Java Model Checker2022

    • Author(s)
      Challet M. B. Hassan, Shinpei Ogata, and Kozo Okano
    • Journal Title

      International Journal of Informatics Society,

      Volume: Vol.13, No.3, pp.107-114 Pages: 107-114

    • Peer Reviewed / Open Access
  • [Journal Article] Can we benchmark Code Review studies? A systematic mapping study of methodology, dataset, and metric2021

    • Author(s)
      Dong Wang, Yuki Ueda, Raula Gaikovina Kula, Takashi Ishio, Kenichi Matsumoto
    • Journal Title

      Journal of Systems and Software

      Volume: 180 Pages: ―

    • DOI

      10.1016/j.jss.2021.111009

    • Peer Reviewed
  • [Journal Article] Automatic patch linkage detection in code review using textual content and file location features2021

    • Author(s)
      Dong Wang, Raula Gaikovina Kula, Takashi Ishio, Kenichi Matsumoto
    • Journal Title

      Information and Software Technology

      Volume: 139 Pages: ―

    • DOI

      10.1016/j.infsof.2021.106637

    • Peer Reviewed
  • [Journal Article] 深層学習を用いたソースコード分類のための動的な学習用データセット改善手法の提案2021

    • Author(s)
      藤原 裕士, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • Journal Title

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

      Volume: J104-D Pages: 275-284

    • DOI

      10.14923/transinfj.2020PDP0005

    • Peer Reviewed / Open Access
  • [Journal Article] NOD4J: Near-Omniscient Debugging Tool for Java Using Size-Limited Execution Trace2021

    • Author(s)
      Kazumasa Shimari, Takashi Ishio, Tetsuya Kanda, Naoto Ishida, Katsuro Inoue
    • Journal Title

      Science of Computer Programming

      Volume: 206 Pages: ―

    • DOI

      10.1016/j.scico.2021.102630

    • Peer Reviewed / Open Access
  • [Journal Article] Empirical Study on Dependency-related License Violation in the JavaScript Package Ecosystem2021

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

      Journal of Information Processing

      Volume: 29 Pages: 296-304

    • DOI

      10.2197/ipsjjip.29.296

    • Peer Reviewed / Open Access / Int'l Joint Research
  • [Journal Article] 深層学習を用いたソースコード分類手法の比較調査2021

    • Author(s)
      藤原 裕士, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • Journal Title

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

      Volume: J104-D Pages: 622-635

    • DOI

      10.14923/transinfj.2020JDP7068

    • Peer Reviewed / Open Access
  • [Journal Article] 軽量なデータ構造を利用したソフトウェア進化履歴の高速な復元手法2021

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

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

      Volume: J104-D Pages: 609-621

    • DOI

      10.14923/transinfj.2020JDP7080

    • Peer Reviewed / Open Access
  • [Journal Article] Identifying Compiler and Optimization Level in Binary Code from Multiple Architectures2021

    • Author(s)
      Davide Pizzolotto, Katsuro Inoue
    • Journal Title

      IEEE Access

      Volume: 9 Pages: 163461-163475

    • DOI

      10.1109/ACCESS.2021.3132950

    • Peer Reviewed / Open Access
  • [Journal Article] Cross-Polytope LSH を用いたコードクローン検出のためのパラメータ決定手法2021

    • Author(s)
      徳井 翔梧, 吉田 則裕, 崔 恩瀞, 井上 克郎
    • Journal Title

      コンピュータソフトウェア

      Volume: 38 Pages: 60-82

    • Peer Reviewed / Open Access
  • [Journal Article] Javaテストコードの再利用による自動生成に向けた移植可能なテストメソッドの調査2021

    • Author(s)
      西浦 生成, 水野 修, 崔 恩瀞
    • Journal Title

      情報処理学会論文誌

      Volume: 62 Pages: 1019-1028

    • Peer Reviewed
  • [Journal Article] 組み合わせテストにおける実行順序に起因する非決定的不具合誘発要因特定法の提案2021

    • Author(s)
      西浦 生成, 渡辺 大輝, 水野 修, 崔 恩瀞
    • Journal Title

      情報処理学会論文誌

      Volume: 62 Pages: 1008-1018

    • Peer Reviewed
  • [Presentation] Kaggle熟練度に着目したデータ分析プログラム実装におけるソースコード再利用方法の探索的分析2022

    • Author(s)
      池上 綾乃, 佐藤 郁弥, Ani Hovhannisyan, 石尾 隆, 松本 健一
    • Organizer
      第210回ソフトウェア工学研究発表会
  • [Presentation] 限られた保存領域を使用する準網羅的な実行トレース記録手法の評価2022

    • Author(s)
      嶋利 一真, 石尾 隆, 神田 哲也, 井上 克郎
    • Organizer
      第3回次世代ソフトウェアエコシステムワークショップ
  • [Presentation] Investigation on the Impact of Logging Configuration Change on the Log Output2022

    • Author(s)
      Liang Qiu, Kazumasa Shimari, Tetsuya Kanda, Katsuro Inoue
    • Organizer
      第3回次世代ソフトウェアエコシステムワークショップ
  • [Presentation] 再利用されたStack Overflowのコード片の進化パターンとOSSでの追従状況の調査2022

    • Author(s)
      栗原 拓己, 嶋利 一真, 神田 哲也, 井上 克郎
    • Organizer
      第3回次世代ソフトウェアエコシステムワークショップ
  • [Presentation] 深層学習を用いたコードクローン検出器のベンチマーク間精度調査2022

    • Author(s)
      福家範浩, 藤原裕士, 吉田則裕, 崔恩瀞, 井上克郎
    • Organizer
      情報処理学会第210回ソフトウェア工学研究発表会
  • [Presentation] Investigating the impact of source code metrics on merge conflict resolution judgement model2022

    • Author(s)
      Mohan Bian, Tetsuya Kanda, Kazumasa Shimari, Katsuro Inoue
    • Organizer
      情報処理学会第210回ソフトウェア工学研究発表会
  • [Presentation] ソースコードのグラフ表現を利用した深層学習によるコーディングの専門性の判定手法2022

    • Author(s)
      松井 智寛, 松下 誠, 井上 克郎
    • Organizer
      情報処理学会第210回ソフトウェア工学研究発表会
  • [Presentation] Contrasting Third-Party Package Management User Experience2021

    • Author(s)
      Syful Islam, Raula Gaikovina Kula, Christoph Treude, Bodin Chinthanet, Takashi Ishio, Kenichi Matsumoto
    • Organizer
      IEEE International Conference on Software Maintenance and Evolution
    • Int'l Joint Research
  • [Presentation] Does Code Review Promote Conformance? A Study of OpenStack Patches2021

    • Author(s)
      Sri-iesaranusorn, Panyawut, Raula Gaikovina Kula, and Takashi Ishio
    • Organizer
      2021 IEEE/ACM 18th International Conference on Mining Software Repositories
    • Int'l Joint Research
  • [Presentation] Proposal of Extracting State Variables and Values from Requirement Specifications in Japanese by using Depen- dency Analysis2021

    • Author(s)
      Masanosuke Ohto, Hiroya Ii, Kozo Okano, and Shinpei Ogata
    • Organizer
      Proceedings of the 25th International Conference on Knowledge-Based and Intelligent Information & Engineering Systems, pp.1649-1657
    • Int'l Joint Research
  • [Presentation] Finding Code-Clone Snippets in Large Source-Code Collection by ccgrep2021

    • Author(s)
      Katsuro Inoue, Yuya Miyamoto, Daniel M. German, Takashi Ishio
    • Organizer
      17th International Conference on Open Source Systems (OSS 2021)
    • Int'l Joint Research
  • [Presentation] いくつかのOSSに対する細粒度分析を用いた著作権表示の調査2021

    • Author(s)
      田邉 傑士, 井上 克郎
    • Organizer
      情報処理学会第208回ソフトウェア工学研究発表会
  • [Presentation] GitHubプロジェクトに利用されているStack Overflowのコード片の進化パターンの調査2021

    • Author(s)
      栗原 拓己, 嶋利 一真, 神田 哲也, 井上 克郎
    • Organizer
      情報処理学会第208回ソフトウェア工学研究発表会
  • [Presentation] 深層学習を用いたソースコード分類手法の比較調査2021

    • Author(s)
      藤原 裕士, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2021
  • [Presentation] 再利用されたライブラリに対するバージョン検出を利用した脆弱性検知ツール2021

    • Author(s)
      杉森 遼, 伊藤 薫, 神田 哲也, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2021
  • [Presentation] Identifying Compiler and Optimization Options from Binary Code using Deep Learning Approaches2021

    • Author(s)
      Davide Pizzolotto, Katsuro Inoue
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2021
    • Invited
  • [Presentation] 準網羅的な実行トレースを用いた実行差分の可視化とデバッグの有用性検証2021

    • Author(s)
      嶋利 一真, 石尾 隆, 神田 哲也, 井上 克郎
    • Organizer
      第2回次世代ソフトウェアエコシステムワークショップ
  • [Presentation] OSSに利用されているStack Overflowのコード片の進化パターンの調査2021

    • Author(s)
      栗原 拓己, 嶋利 一真, 神田 哲也, 井上 克郎
    • Organizer
      第2回次世代ソフトウェアエコシステムワークショップ
  • [Presentation] UNIXの2038年問題に対する問題箇所特定ツール2021

    • Author(s)
      水上 陽向, 松下 誠, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2021
  • [Presentation] テストケース生成ツールを用いたバグ限局ツールAutoSBFLの提案2021

    • Author(s)
      中森 陸斗, 崔 恩瀞, 吉田 則裕, 水野 修
    • Organizer
      日本ソフトウェア科学会 第28回ソフトウェア工学の基礎ワークショップ
  • [Book] Code Clone Analysis: Research, Tools, and Practices2021

    • Author(s)
      Katsuro Inoue, Chanchal K. Roy
    • Total Pages
      236
    • Publisher
      Springer
    • ISBN
      978-981-16-1929-8

URL: 

Published: 2022-12-28  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi