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

2021 Fiscal Year Research-status Report

Web上のAPI利用例に対する情報の鮮度を判定する整合性検査手法の開発

Research Project

Project/Area Number 19K20239
Research InstitutionOsaka University

Principal Investigator

神田 哲也  大阪大学, 情報科学研究科, 助教 (90780726)

Project Period (FY) 2019-04-01 – 2023-03-31
Keywordsソフトウェア工学 / データマイニング / API / ソフトウェア開発効率化 / 整合性
Outline of Annual Research Achievements

本研究では、Web上で手に入るソフトウェア開発に関するAPI利用例について、その利用例が最新版のAPIに対応したものであるかどうか、その情報の鮮度を判定する整合性検査手法を開発する。
本年度は、検出した整合性違反の重要度をはかるために、バージョン検出結果と脆弱性データベースとの照合を行うツールを作成した。バージョン検出に高速な近似計算を用いる手法を適用することで、対象のライブラリが大きいものであっても実用的な時間で検出することができた。また、いくつかのソフトウェアとライブラリの組み合わせについて、ツールを用いて脆弱性の残留期間を計測し、著名なソフトウェアであっても脆弱性が長い期間残ったままであることがわかった。
Web上で手に入るソフトウェア開発に関するAPI利用例の中でも特に広く利活用が行われているプログラマ向けQ&Aサイト上のコード片について、Python言語に関する情報のうち、Python言語自体のバージョンについて判定する手法を開発した。Python言語がバージョン2系から3系に移行する中で、Q&Aサイトの利用者がそれに追従する様子や、新しいバージョンがリリースされた後も引き続き古いバージョン向けのコード片が投稿される様子を観測することができた。
また、情報の鮮度が落ちる原因であるソフトウェアの進化について、その履歴をデータベースとして利用しているが、その進化履歴が欠落してる場合においても手法を応用できるよう、軽量なデータ構造を利用したソフトウェア進化履歴の高速な復元手法を開発した。

Current Status of Research Progress
Current Status of Research Progress

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

Reason

Javaのライブラリについて、整合性違反の検出から、それを実際の開発現場で重要度に応じて提示する部分まで、一連の流れとして試作を進めることができている。また、Pythonなど他の言語についても手法に取り入れる目途が立った。
研究概要に示したほかに、Web上のAPI利用例が実際のオープンソースソフトウェアに再利用された例の調査やプログラムの実行トレースを応用した分析手法についても、研究を進めることができた。

Strategy for Future Research Activity

次年度は、これまでの研究成果をもとに、Q&AサイトなどWeb上のAPI利用例を閲覧時に、それに重ねる形で整合性検査手法の適用結果や、脆弱性情報との関連などの情報を提示する仕組みにまとめる。
また、Python言語自体のバージョンを特定することができたことから、これを発展させてPython言語のライブラリや他の言語など、当初進めていたJava以外の言語へ適用を広げていく。

Causes of Carryover

対外発表のすべてがオンライン開催となったため、旅費の支出がなくなった。
次年度は成果発表のための論文誌掲載費や、その実現に必要となった装置・物品の購入に未使用額を充てる方針である。

  • Research Products

    (10 results)

All 2022 2021

All Journal Article (2 results) (of which Peer Reviewed: 2 results,  Open Access: 2 results) Presentation (8 results)

  • [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] 軽量なデータ構造を利用したソフトウェア進化履歴の高速な復元手法2021

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

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

      Volume: J104-D Pages: 609-621

    • DOI

      10.14923/transinfj.2020JDP7080

    • Peer Reviewed / Open Access
  • [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] 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] GitHubプロジェクトに利用されているStack Overflowのコード片の進化パターンの調査2021

    • Author(s)
      栗原 拓己, 嶋利 一真, 神田 哲也, 井上 克郎
    • Organizer
      情報処理学会第208回ソフトウェア工学研究発表会
  • [Presentation] 再利用されたライブラリに対するバージョン検出を利用した脆弱性検知ツール2021

    • Author(s)
      杉森 遼, 伊藤 薫, 神田 哲也, 井上 克郎
    • Organizer
      ソフトウェアエンジニアリングシンポジウム2021
  • [Presentation] 準網羅的な実行トレースを用いた実行差分の可視化とデバッグの有用性検証2021

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

    • Author(s)
      栗原 拓己, 嶋利 一真, 神田 哲也, 井上 克郎
    • Organizer
      第2回次世代ソフトウェアエコシステムワークショップ

URL: 

Published: 2022-12-28  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi