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

2022 年度 実施状況報告書

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

研究課題

研究課題/領域番号 19K20239
研究機関大阪大学

研究代表者

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

研究期間 (年度) 2019-04-01 – 2024-03-31
キーワードソフトウェア工学 / ソフトウェア開発効率化 / API / Javaライブラリ / Stack Overflow
研究実績の概要

本研究では、Web上で手に入るソフトウェア開発に関するAPI利用例について、その利用例が最新版のAPIに対応したものであるかどうか、その情報の鮮度を判定する整合性検査手法を開発する。
本年度は、昨年度開発したPython言語に関する整合性検査手法について、ブラウザ拡張の形でユーザに提示するツールを開発した。利用者が常にPython言語の最新バージョンを利用しているとは限らないため、最新バージョンに対する情報の鮮度の判定のほか、Pythonのバージョン番号を指定してそのバージョンに対してコード片が有効かどうかを提示する仕組みを構築した。年度末に国際会議に採録が決定し、来年度に発表予定である。
また、Webの性質上そこに存在するAPI利用例は公開後に編集され、情報の鮮度が更新されることがある。そこで、API利用例が変更された際に、単にその情報の鮮度を判定するだけでなく、それを利用している側のソフトウェアがその変更に追従するべきかを考える必要があると考えた。実際のソフトウェアを調査し、API利用例の変更にソフトウェア側が追従していないケースについて分類を行った。その結果、ソフトウェア保守の観点から、いくつかの種類の変更において追従の必要性が高い、もしくはその必要性を検討するべきであるといえるものがあることを確認した。
情報の鮮度の判定に用いるデータの蓄積について、ここまではAPIの変更に対する静的な解析情報を用いていた。そこで、APIの変更を動的な解析により取得する手法について検討した。その技術開発の結果として、Javaライブラリのテストケースの実行履歴を取得し、新旧で比較し可視化する手法を提案した。

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

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

理由

Python言語について整合性違反の検出から、それを利用者に向けて提示するブラウザ拡張のツール部分まで、一連の流れとして試作を進めることができた。
API本体が更新された場合だけでなく、その利用例が更新された場合に対する分析を行い、どのような情報に着目すればよいかを明らかにした。また、API本体の更新についても、実行トレースを用いた動的な情報による詳細な解析を行うための基盤技術を開発できた。

今後の研究の推進方策

プログラム理解に関する国際会議(5月開催)に論文が採録されたことから、研究期間を延長し、会議での意見交換を行いその結果をもとに研究の深化を目指すこととする。当該国際会議はソフトウェア工学分野最大の国際会議に併設される形で実施されるため、世界のトップレベル研究者の意見をもとによりよい形で研究を進めることができると期待される。

次年度使用額が生じた理由

プログラム理解に関する国際会議(5月開催)に論文が採録され、また当該国際会議はソフトウェア工学分野最大の国際会議に併設される形で実施されるため、世界のトップレベル研究者の意見をもとによりよい形で研究を進めることができると期待される。このことから、研究期間を延長し、会議での意見交換を行いその結果をもとに研究の深化を目指すために計画を変更した。次年度使用額は主に国際会議発表のための費用にあてる予定である。

  • 研究成果

    (8件)

すべて 2022 その他

すべて 雑誌論文 (1件) (うち査読あり 1件) 学会発表 (6件) (うち国際学会 2件) 備考 (1件)

  • [雑誌論文] Stack Overflowのコード片へ加えられた変更に追従しないGitHubプロジェクトの変更パターン分類による考察2022

    • 著者名/発表者名
      栗原 拓己, 嶋利 一真, 神田 哲也, 井上 克郎
    • 雑誌名

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

      巻: J105-D ページ: 717-719

    • DOI

      10.14923/transinfj.2022JDL8007

    • 査読あり
  • [学会発表] Comparison of Developer’s Work Efficiency between Different Editors2022

    • 著者名/発表者名
      Sentaro Onizuka, Tetsuya Kanda, Katsuro Inoue
    • 学会等名
      29th Asia-Pacific Software Engineering Conference
    • 国際学会
  • [学会発表] Debianパッケージに対する依存関係を含むSPDXファイルの自動生成ツール2022

    • 著者名/発表者名
      田邉 傑士, 眞鍋 雄貴, 神田 哲也, 井上 克郎
    • 学会等名
      電子情報通信学会ソフトウェアサイエンス研究会2022年7月研究会
  • [学会発表] Javaプログラムを対象としたソースコードの変更量と実行トレースの変化量間の相関調査2022

    • 著者名/発表者名
      藤原 勇真, 神田 哲也, 嶋利 一真, 井上 克郎
    • 学会等名
      情報処理学会第211回ソフトウェア工学研究発表会
  • [学会発表] The Effect of Python Version Upgrades on the Compilability of Code Snippets Posted on Stack Overflow2022

    • 著者名/発表者名
      Shiyu Yang, Tetsuya Kanda, Katsuro Inoue
    • 学会等名
      情報処理学会第211回ソフトウェア工学研究発表会
  • [学会発表] didiffff: A Viewer for Comparing Changes in both Code and Execution Traces2022

    • 著者名/発表者名
      Tetsuya Kanda, Kazumasa Shimari, Katsuro Inoue
    • 学会等名
      30th IEEE/ACM International Conference on Program Comprehension
    • 国際学会
  • [学会発表] An Empirical Study of Python Code Snippets with Version Compatibility Issues on Stack Overflow2022

    • 著者名/発表者名
      Shiyu Yang, Tetsuya Kanda, Davide Pizzolotto, Daniel M. German, Yoshiki Higo
    • 学会等名
      第4回 次世代ソフトウェアエコシステムワークショップ
  • [備考] didiffff

    • URL

      https://github.com/tetsuyakanda/didiffff

URL: 

公開日: 2023-12-25  

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

Powered by NII kakenhi