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

2018 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)
神田 哲也  大阪大学, 情報科学研究科, 助教 (90780726)
崔 恩瀞  奈良先端科学技術大学院大学, 先端科学技術研究科, 助教 (90755943)
Project Period (FY) 2018-04-01 – 2023-03-31
Keywordsオープンソースソフトウェア / エコシステム / コードクローン / 深層学習 / ライセンス
Outline of Annual Research Achievements

オープンソースソフトウェア(OSS)のリスクや健全性を診断するための分析手法にに関する研究課題に対して、主に以下のような成果を得た。本課題を遂行するにあたり、国内はもとより国外の研究者とも積極的な情報交換を行い、国内外で積極的な成果発表を行った。
情報検索技術を利用したコードブロック単位のコードクローンを検出する手法を開発した。既存研究では関数単位でコードクローンを検出する手法があるが、検出粒度が大きいため検出漏れが起きるという問題点があった。本手法ではソースコード中の識別子や予約語に利用される単語に対して重み付けを行い、コードブロックから変換された特徴ベクトル間の類似度を求め、ブロック単位でクローンの検出を行った。これにより、より小さい粒度でコードクローンを検出し,検出時間とメモリ使用量を削減できるという利点が得られた。評価実験を通じ、既存手法より高速に高い精度で検出を行えることを確認した。
回路開発の効率化を目的として、代表的なHDLであるVerilog HDLを対象としたコードクローン検出手法を提案し、HDLにおけるコードクローンの特徴について調査した。本手法は、Verilog HDLのソースコードに簡単な変換を適用することにより、既存のツールを用いてVerilog HDLのコードクローン検出を行う。評価実験の結果、提案手法は90%以上の精度でコードクローンを検出することを確認した。Verilog HDLのコードクローン量とその複雑さについて分析した結果、CやJavaと同様にコードクローンが存在することがわかった。Verilog HDLを用いた回路開発においても、一般のソースコードと同様の開発支援を要することがわかる一方、Verilog HDLにおけるコードクローンに対してリファクタリングによる集約を行う場合回路性能とのトレードオフを考慮する必要があることもわかった。

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分析に関して、詳細な分析をいくつかのテーマに沿って行った結果、着実な成果を得ることができた。具体的には、学術論文3篇をはじめ、国際学会にて14件の発表を行い、本課題の成果を国内外へ示すことができている。
研究実績の概要に記載した内容以外にも、類似プロジェクト分析においては、各OSSプロジェクトのソースコードやバイナリからプロジェクトの特徴をベクトル化し、類似プロダクトを高速に検索する手法、ならびにプロダクト間の類似度の指標に関する成果を得た。またOSSプロジェクトのライセンス分析においては、すでに我々が開発済であるOSSの個々のソースコード上に書かれたライセンスを分析するツールを用い、ライセンスの不整合によって起きるリスクが現状どの程度内在しているかを明らかにした。
また、コードクローンを整理し、プログラムサイズを削減するリファクタリングを施した場合のプログラムサイズの削減量の見積もり方法を提案し、評価を行ったり、コードをベクトル化しDNNを用いて効率よくコードクローンを検出する手法など、コードクローンに関連する研究も多数行った。
さらに、時間オートマトンネットワークのシミュレータの開発や再帰構造を持つCの関数の形式的検証に関する研究を行った。
そのほかのテーマに関しても、分析手法の開発やツール等の作成など、順調に成果が出ており、その結果は論文や国際会議等でも発表済である。国内外の研究者との共同研究などを推進して、広い視野に立った研究を今後も進めていけると考えている。

Strategy for Future Research Activity

本年度は、OSSプロジェクトに関して、より詳細な分析をいくつかのテーマに沿って行う。
まず類似プロジェクト分析に関しては、まず、プログラムの関数を単位としたベクトル化表現を用いた機械学習を行い、類似や非類似の判定を学習し、判定できる方法を確立する。ベクトル化表現法としてはLDAやLSHなど自然言語処理の技術を導入し、有効性を確かめる。また同型のプログラム断片を効率よく発見し、プロジェクトの類似性判定に用いる技術を開発する。今まで、このような目的にはコードクローン検出ツールが用いられてきたが、その利用方法は容易ではなく、また多くの不要な情報を出力するので、分析が困難であった。そこで文字列検索ツールgrepに似たユーザインタフェースを持つ、トークンを単位としたパターンマッチングツールの開発を行う。更に、ファイル圧縮技術を用いた2つのファイル間の類似性判定を行う技術の高速化、発展を行う。似たファイルを圧縮した場合、高い圧縮率を得ることができるが、それを応用したファイルの類似度計算を行うNCD法を開発しているが、それを応用してプロジェクトの類似度を効率よく計算する方法を検討、開発する。
また、OSSのライブラリの利用に関する分析を深化させる。近年、種々の言語のライブラリが多数構築され、それらは広く一般に利用されているが、ライブラリに問題が生じた場合は大きな影響が及ぶ。例えば、簡単で小さなライブラリの利用がどのぐらいあって、どの程度の影響を与えうるかの分析を試み、OSSライブラリの重要性の評価を行う。OSSのライセンスに関連しては、各OSSのファイルに書かれたコピーライトの記述が、どの程度実際のファイルの製作者と関連しているか分析し、コピーライト記述の信頼性評価手法を検討する。
その他、OSSの実行時のデバッグや信頼性の評価方法、プログラムの静的な検証、評価に関しても種々な研究を行う。

  • Research Products

    (36 results)

All 2019 2018

All Journal Article (3 results) (of which Peer Reviewed: 3 results,  Open Access: 2 results) Presentation (33 results) (of which Int'l Joint Research: 16 results)

  • [Journal Article] Hierarchical Clustering of OSS License Statements Toward Automatic Generation of License Rules2019

    • Author(s)
      Y. Higashi, M. Ohira, Y. Kashiwa, and Y. Manabe
    • Journal Title

      Journal of Information Processing (JIP)

      Volume: 27 Pages: 42-50

    • DOI

      10.2197/ipsjjip.27.42

    • Peer Reviewed
  • [Journal Article] 情報検索技術に基づく細粒度ブロッククローン検出2018

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

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

      Volume: 35 Pages: 16-36

    • DOI

      10.11309/jssst.35.16

    • Peer Reviewed / Open Access
  • [Journal Article] ハードウェア記述言語におけるコードクローンの定量的調査2018

    • Author(s)
      上村 恭平,森 彰,藤原 賢二,崔 恩瀞,飯田 元
    • Journal Title

      情報処理学会論文誌

      Volume: 59 Pages: 1225-1239

    • Peer Reviewed / Open Access
  • [Presentation] Code-to-Code Search Based on Deep Neural Network and Code Mutation2019

    • Author(s)
      Yuji Fujiwara, Norihiro Yoshida, Eunjong Choi, Katsuro Inoue
    • Organizer
      The 13th International Workshop on Software Clones (IWSC 2019)
    • Int'l Joint Research
  • [Presentation] ウェブアプリケーション開発におけるテストコードを用いた要求理解支援環境2019

    • Author(s)
      中地 祥剛, 崔 恩瀞, 吉田 則裕, 飯田 元
    • Organizer
      電子情報通信学会 ソフトウェアサイエンス研究会 2019年3月研究会
  • [Presentation] コードクローン保守支援を目的とした変更履歴可視化システム2019

    • Author(s)
      本田 紘貴, 徳井 翔梧, 横井 一輝, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • Organizer
      電子情報通信学会ソフトウェアサイエンス研究会2019年3月研究会
  • [Presentation] ソースコードコメントに着目した技術負債に対する修正の類似性の調査2019

    • Author(s)
      岡島 早紀, 神田 哲也, 井上 克郎
    • Organizer
      電子情報通信学会ソフトウェアサイエンス研究会2019年3月研究会
  • [Presentation] プログラム実行に対するフェイズ検出を用いたログ取得量の動的変更手法の提案2019

    • Author(s)
      溝内 剛, 嶋利 一真, 石尾 隆, 井上 克郎
    • Organizer
      ウィンターワークショップ2019・イン・福島飯坂
  • [Presentation] Tracking Method-Level Clones and a Case Study2019

    • Author(s)
      Kyohei Uemura, Akira Mori, Eunjong Choi, and Hajimu Iida
    • Organizer
      The 13th International Workshop on Software Clones (IWSC 2019)
    • Int'l Joint Research
  • [Presentation] FaCoY: A Code-to-Code Search Engine2019

    • Author(s)
      Kisub Kim, Dongsun Kim, Tegawend F. Bissyand, Eunjong Choi, Li Li, Jacques Klein, and Yves Le Traon
    • Organizer
      The 40th International Conference on Software Engineering
    • Int'l Joint Research
  • [Presentation] A Look at the Copyright Notices in Linux Kernel2018

    • Author(s)
      Shi Qiu, Daniel M. German, Katsuro Inoue
    • Organizer
      Open Compliance Summit 2018
    • Int'l Joint Research
  • [Presentation] A simulator for a network of timed automata2018

    • Author(s)
      Kozo Okano
    • Organizer
      Symposium on Advanced Information Systems (SAIS2018)
    • Int'l Joint Research
  • [Presentation] An Investigation of the Relationship Between Extract Method and Change Metrics: A Case Study of Jedit2018

    • Author(s)
      Eunjong Choi, Daiki Tanaka, Norihiro Yoshida, Kenji Fujiwara, Daniel Port, Hajimu Iida:
    • Organizer
      The 25th Asia-Pacific Software Engineering Conference (APSEC 2018)
    • Int'l Joint Research
  • [Presentation] Applying SAW to regression verification for C functions with recursive data structure2018

    • Author(s)
      Kozo Okano, Satoshi Harauchi, Shin Maruyama, and Shinpei Ogata
    • Organizer
      of International Workshop on Informatics 2018 (IWIN2018)
    • Int'l Joint Research
  • [Presentation] How Slim Will My System Be? Estimating Refactored Code Size by Merging Clones2018

    • Author(s)
      Norihiro Yoshida, Takuya Ishizu, Buford Edwards III, Katsuro Inoue
    • Organizer
      The IEEE/ACM 26th International Conference on Program Comprehension (ICPC 2018)
    • Int'l Joint Research
  • [Presentation] Investigating Vector-based Detection of Code Clones Using BigCloneBench2018

    • Author(s)
      Kazuki Yokoi, Eunjong Choi, Norihiro Yoshida, Katsuro Inoue
    • Organizer
      The 25th Asia-Pacific Software Engineering Conference (APSEC 2018)
    • Int'l Joint Research
  • [Presentation] Java アプリケーションの動的解析に基づくライブラリのバージョン互換性テストの生成2018

    • Author(s)
      嶋利 一真, 石尾 隆, 井上 克郎
    • Organizer
      第25回 ソフトウェア工学の基礎ワークショップ
  • [Presentation] Multilingual Detection of Code Clones Using ANTLR Grammar Definitions2018

    • Author(s)
      Yuichi Semura, Norihiro Yoshida, Eunjong Choi, Katsuro Inoue
    • Organizer
      The 25th Asia-Pacific Software Engineering Conference (APSEC 2018)
    • Int'l Joint Research
  • [Presentation] Poster: A Multi-Year Analysis of Students' Build Errors in Agile Software Development Educational Projects2018

    • Author(s)
      Erina Makihara, Hiroshi Igaki, Norihiro Yoshida, Kenji Fujiwara, Naoki Kawashima, Hajimu Iida
    • Organizer
      ACM/IEEE 40th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion 2018)
    • Int'l Joint Research
  • [Presentation] Understanding Popularity Growth of Packages in JavaScript Package Ecosystem2018

    • Author(s)
      Shi Qiu, Raula Gaikovina Kula, Katsuro Inoue
    • Organizer
      3rd IEEE/ACIS International Conference on Big Data, Cloud Computing, and Data Science Engineering
    • Int'l Joint Research
  • [Presentation] Use-Relationship Based Classification for Software Components2018

    • Author(s)
      Reishi Yokomori, Norihiro Yoshida, Masami Noro, Katsuro Inoue
    • Organizer
      The 6th International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2018)
    • Int'l Joint Research
  • [Presentation] ウェブアプリケーション開発においての要求獲得のためのテスト記述支援環境の提案2018

    • Author(s)
      中地 祥剛, 崔 恩瀞, 飯田 元, 吉田 則裕
    • Organizer
      情報処理学会 第200回ソフトウェア工学研究発表会
  • [Presentation] コードクローン検出が用いる局所性鋭敏型ハッシュに与えるパラメータ決定手法2018

    • Author(s)
      徳井 翔梧, 吉田 則裕, 崔 恩瀞, 井上 克郎
    • Organizer
      日本ソフトウェア科学会 第35回大会講演論文集
  • [Presentation] コード片のベクトル表現に基づく大規模コードクローン集合の特徴調査2018

    • Author(s)
      横井 一輝, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2018
  • [Presentation] ドキュメントおけるマージコンフリクトの調査と分析2018

    • Author(s)
      白木秀弥, 神田哲也, 井上克郎
    • Organizer
      第25回 ソフトウェア工学の基礎ワークショップ
  • [Presentation] フェイズ検出を用いたプログラムの性能バグ発生の自動検知2018

    • Author(s)
      溝内 剛, 嶋利 一真, 石尾 隆, 神田 哲也, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2018
  • [Presentation] 機械学習システムにおける技術的負債について2018

    • Author(s)
      吉田 則裕
    • Organizer
      第1回機械学習工学ワークショップ(MLSE2018)論文集
  • [Presentation] 構文定義記述を用いた多言語対応コードクローン検出ツールの改善2018

    • Author(s)
      瀬村 雄一, 吉田 則裕, 崔 恩瀞, 井上 克郎
    • Organizer
      電子情報通信学会ソフトウェアサイエンス研究会2018年7月研究会
  • [Presentation] 構文定義記述を用いた多言語対応コードクローン検出ツールの開発2018

    • Author(s)
      瀬村 雄一, 吉田 則裕, 崔 恩瀞, 井上 克郎
    • Organizer
      情報処理学会 第199回ソフトウェア工学研究発表会
  • [Presentation] 順伝播型ニューラルネットワークを用いた類似コードブロック検索の試み2018

    • Author(s)
      藤原 裕士, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2018
  • [Presentation] 部分的な実行再現を目的とした実行トレース収集手法の調査2018

    • Author(s)
      嶋利 一真, 石尾 隆, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2018
  • [Presentation] 類似するコーディングパターンの利用状況調査ツールの提案2018

    • Author(s)
      小笠原康貴, 神田哲也, 井上克郎
    • Organizer
      電子情報通信学会ソフトウェアサイエンス研究会2018年7月研究会
  • [Presentation] Towards Smoother Library Migrations: A Look at Vulnerable Dependency Migrations at Function Level for npm JavaScript Packages2018

    • Author(s)
      Rodrigo Elizalde Zapata, Raula Gaikovina Kula and Bodin Chinthanet, Takashi Ishio. Kenichi Matsumoto. Akinori Ihara
    • Organizer
      2018 IEEE International Conference on Software Maintenance and Evolution
    • Int'l Joint Research
  • [Presentation] システム開発過程での変更の影響度から見る 安全解析手法の比較検討2018

    • Author(s)
      入江 琴子,片平 真史,石濱 直樹,柿本 和希,崔 恩瀞,飯田元
    • Organizer
      情報処理学会関西支部大会
  • [Presentation] Maintaining third-party libraries through domain-specific category recommendations2018

    • Author(s)
      Daiki Katsuragawa, Akinori Ihara, Raula Gaikovina Kula and Kenichi Matsumoto,
    • Organizer
      IEEE/ACM 1st International Workshop on Software Health (SoHeal)
    • Int'l Joint Research
  • [Presentation] A generalized model for visualizing library popularity, adoption, and diffusion within a software ecosystem2018

    • Author(s)
      Raula Gaikovina Kula, Coen De Roover, Daniel M. German, Takashi Ishio and Katsuro Inoue
    • Organizer
      IEEE 25th International Conference on Software Analysis, Evolution and Reengineering
    • Int'l Joint Research

URL: 

Published: 2021-01-27  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi