• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2018 年度 実績報告書

オープンソースソフトウェアのリスクや健全性診断のためのエコシステム分析法の開発

研究課題

研究課題/領域番号 18H04094
研究機関大阪大学

研究代表者

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

研究分担者 吉田 則裕  名古屋大学, 情報学研究科, 准教授 (00582545)
眞鍋 雄貴 (真鍋雄貴)  熊本大学, 大学院先端科学研究部(工), 助教 (20625339)
松下 誠  大阪大学, 情報科学研究科, 准教授 (60304028)
石尾 隆  奈良先端科学技術大学院大学, 先端科学技術研究科, 准教授 (60452413)
岡野 浩三  信州大学, 学術研究院工学系, 准教授 (70252632)
ラウラ ガイコビナ・クラ  奈良先端科学技術大学院大学, 先端科学技術研究科, 助教 (80749094)
神田 哲也  大阪大学, 情報科学研究科, 助教 (90780726)
崔 恩瀞  奈良先端科学技術大学院大学, 先端科学技術研究科, 助教 (90755943)
研究期間 (年度) 2018-04-01 – 2023-03-31
キーワードオープンソースソフトウェア / エコシステム / コードクローン / 深層学習 / ライセンス
研究実績の概要

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

現在までの達成度 (区分)
現在までの達成度 (区分)

2: おおむね順調に進展している

理由

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

今後の研究の推進方策

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

  • 研究成果

    (36件)

すべて 2019 2018

すべて 雑誌論文 (3件) (うち査読あり 3件、 オープンアクセス 2件) 学会発表 (33件) (うち国際学会 16件)

  • [雑誌論文] Hierarchical Clustering of OSS License Statements Toward Automatic Generation of License Rules2019

    • 著者名/発表者名
      Y. Higashi, M. Ohira, Y. Kashiwa, and Y. Manabe
    • 雑誌名

      Journal of Information Processing (JIP)

      巻: 27 ページ: 42-50

    • DOI

      10.2197/ipsjjip.27.42

    • 査読あり
  • [雑誌論文] 情報検索技術に基づく細粒度ブロッククローン検出2018

    • 著者名/発表者名
      横井 一輝, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • 雑誌名

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

      巻: 35 ページ: 16-36

    • DOI

      10.11309/jssst.35.16

    • 査読あり / オープンアクセス
  • [雑誌論文] ハードウェア記述言語におけるコードクローンの定量的調査2018

    • 著者名/発表者名
      上村 恭平,森 彰,藤原 賢二,崔 恩瀞,飯田 元
    • 雑誌名

      情報処理学会論文誌

      巻: 59 ページ: 1225-1239

    • 査読あり / オープンアクセス
  • [学会発表] Code-to-Code Search Based on Deep Neural Network and Code Mutation2019

    • 著者名/発表者名
      Yuji Fujiwara, Norihiro Yoshida, Eunjong Choi, Katsuro Inoue
    • 学会等名
      The 13th International Workshop on Software Clones (IWSC 2019)
    • 国際学会
  • [学会発表] ウェブアプリケーション開発におけるテストコードを用いた要求理解支援環境2019

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

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

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

    • 著者名/発表者名
      溝内 剛, 嶋利 一真, 石尾 隆, 井上 克郎
    • 学会等名
      ウィンターワークショップ2019・イン・福島飯坂
  • [学会発表] Tracking Method-Level Clones and a Case Study2019

    • 著者名/発表者名
      Kyohei Uemura, Akira Mori, Eunjong Choi, and Hajimu Iida
    • 学会等名
      The 13th International Workshop on Software Clones (IWSC 2019)
    • 国際学会
  • [学会発表] FaCoY: A Code-to-Code Search Engine2019

    • 著者名/発表者名
      Kisub Kim, Dongsun Kim, Tegawend F. Bissyand, Eunjong Choi, Li Li, Jacques Klein, and Yves Le Traon
    • 学会等名
      The 40th International Conference on Software Engineering
    • 国際学会
  • [学会発表] A Look at the Copyright Notices in Linux Kernel2018

    • 著者名/発表者名
      Shi Qiu, Daniel M. German, Katsuro Inoue
    • 学会等名
      Open Compliance Summit 2018
    • 国際学会
  • [学会発表] A simulator for a network of timed automata2018

    • 著者名/発表者名
      Kozo Okano
    • 学会等名
      Symposium on Advanced Information Systems (SAIS2018)
    • 国際学会
  • [学会発表] An Investigation of the Relationship Between Extract Method and Change Metrics: A Case Study of Jedit2018

    • 著者名/発表者名
      Eunjong Choi, Daiki Tanaka, Norihiro Yoshida, Kenji Fujiwara, Daniel Port, Hajimu Iida:
    • 学会等名
      The 25th Asia-Pacific Software Engineering Conference (APSEC 2018)
    • 国際学会
  • [学会発表] Applying SAW to regression verification for C functions with recursive data structure2018

    • 著者名/発表者名
      Kozo Okano, Satoshi Harauchi, Shin Maruyama, and Shinpei Ogata
    • 学会等名
      of International Workshop on Informatics 2018 (IWIN2018)
    • 国際学会
  • [学会発表] How Slim Will My System Be? Estimating Refactored Code Size by Merging Clones2018

    • 著者名/発表者名
      Norihiro Yoshida, Takuya Ishizu, Buford Edwards III, Katsuro Inoue
    • 学会等名
      The IEEE/ACM 26th International Conference on Program Comprehension (ICPC 2018)
    • 国際学会
  • [学会発表] Investigating Vector-based Detection of Code Clones Using BigCloneBench2018

    • 著者名/発表者名
      Kazuki Yokoi, Eunjong Choi, Norihiro Yoshida, Katsuro Inoue
    • 学会等名
      The 25th Asia-Pacific Software Engineering Conference (APSEC 2018)
    • 国際学会
  • [学会発表] Java アプリケーションの動的解析に基づくライブラリのバージョン互換性テストの生成2018

    • 著者名/発表者名
      嶋利 一真, 石尾 隆, 井上 克郎
    • 学会等名
      第25回 ソフトウェア工学の基礎ワークショップ
  • [学会発表] Multilingual Detection of Code Clones Using ANTLR Grammar Definitions2018

    • 著者名/発表者名
      Yuichi Semura, Norihiro Yoshida, Eunjong Choi, Katsuro Inoue
    • 学会等名
      The 25th Asia-Pacific Software Engineering Conference (APSEC 2018)
    • 国際学会
  • [学会発表] Poster: A Multi-Year Analysis of Students' Build Errors in Agile Software Development Educational Projects2018

    • 著者名/発表者名
      Erina Makihara, Hiroshi Igaki, Norihiro Yoshida, Kenji Fujiwara, Naoki Kawashima, Hajimu Iida
    • 学会等名
      ACM/IEEE 40th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion 2018)
    • 国際学会
  • [学会発表] Understanding Popularity Growth of Packages in JavaScript Package Ecosystem2018

    • 著者名/発表者名
      Shi Qiu, Raula Gaikovina Kula, Katsuro Inoue
    • 学会等名
      3rd IEEE/ACIS International Conference on Big Data, Cloud Computing, and Data Science Engineering
    • 国際学会
  • [学会発表] Use-Relationship Based Classification for Software Components2018

    • 著者名/発表者名
      Reishi Yokomori, Norihiro Yoshida, Masami Noro, Katsuro Inoue
    • 学会等名
      The 6th International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2018)
    • 国際学会
  • [学会発表] ウェブアプリケーション開発においての要求獲得のためのテスト記述支援環境の提案2018

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

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

    • 著者名/発表者名
      横井 一輝, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • 学会等名
      ソフトウェアエンジニアリングシンポジウム2018
  • [学会発表] ドキュメントおけるマージコンフリクトの調査と分析2018

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

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

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

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

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

    • 著者名/発表者名
      藤原 裕士, 崔 恩瀞, 吉田 則裕, 井上 克郎
    • 学会等名
      ソフトウェアエンジニアリングシンポジウム2018
  • [学会発表] 部分的な実行再現を目的とした実行トレース収集手法の調査2018

    • 著者名/発表者名
      嶋利 一真, 石尾 隆, 井上 克郎
    • 学会等名
      ソフトウェアエンジニアリングシンポジウム2018
  • [学会発表] 類似するコーディングパターンの利用状況調査ツールの提案2018

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

    • 著者名/発表者名
      Rodrigo Elizalde Zapata, Raula Gaikovina Kula and Bodin Chinthanet, Takashi Ishio. Kenichi Matsumoto. Akinori Ihara
    • 学会等名
      2018 IEEE International Conference on Software Maintenance and Evolution
    • 国際学会
  • [学会発表] システム開発過程での変更の影響度から見る 安全解析手法の比較検討2018

    • 著者名/発表者名
      入江 琴子,片平 真史,石濱 直樹,柿本 和希,崔 恩瀞,飯田元
    • 学会等名
      情報処理学会関西支部大会
  • [学会発表] Maintaining third-party libraries through domain-specific category recommendations2018

    • 著者名/発表者名
      Daiki Katsuragawa, Akinori Ihara, Raula Gaikovina Kula and Kenichi Matsumoto,
    • 学会等名
      IEEE/ACM 1st International Workshop on Software Health (SoHeal)
    • 国際学会
  • [学会発表] A generalized model for visualizing library popularity, adoption, and diffusion within a software ecosystem2018

    • 著者名/発表者名
      Raula Gaikovina Kula, Coen De Roover, Daniel M. German, Takashi Ishio and Katsuro Inoue
    • 学会等名
      IEEE 25th International Conference on Software Analysis, Evolution and Reengineering
    • 国際学会

URL: 

公開日: 2021-01-27  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi