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

2017 年度 実績報告書

ハイブリッドプログラム解析を利用した機能識別に基づくプログラム理解支援技術

研究課題

研究課題/領域番号 15H02683
研究機関東京工業大学

研究代表者

小林 隆志  東京工業大学, 情報理工学院, 准教授 (50345386)

研究分担者 林 晋平  東京工業大学, 情報理工学院, 助教 (40541975)
石尾 隆  奈良先端科学技術大学院大学, 先端科学技術研究科, 准教授 (60452413)
渥美 紀寿  京都大学, 学術情報メディアセンター, 助教 (70397446)
研究期間 (年度) 2015-04-01 – 2019-03-31
キーワードソフトウェア工学 / ソフトウェア保守 / プログラム理解 / リバースエンジニアリング
研究実績の概要

本研究は,ソフトウェアが提供する外的機能とその実現方法である内的機能とを区別して識別することでソフトウェア更新を効果的に行うためのプログラム理解を支援する手法の開発を目指す.外的機能の組み合わせを実行トレースおよびソースコードの静的構造特徴,改版履歴を対象としたハイブリッドプログラム解析を行うことで,外的機能を実現する内的機能およびその関係を識別し開発者のプログラム理解を支援する.
本年度は,「内的機能構造の識別」のための手法として,外的機能の組み合わせを実行した複数の実行トレースに対して,欠陥箇所特定手法を応用することで,内的機能を構成するソフトウェアモジュールと外的機能との関係性を高精度に特定する手法について評価を行い論文発表を行った.
また,この結果である形式概念束上の構造特徴を解析することにより外的機能間の関係を導出する手法を開発した.さらに,形式概念分析を利用する動的機能捜索を支援するために,既存のテストケース群が実行される際に呼び出すソフトウェアモジュールの同一性を分析することで,実行トレース内の内的機能の境界点を発見し,それらのモジュール名から外的機能名を推定する手法も開発し,論文発表を行った.これらの手法により,内的機能を構成するモジュールと外的機能との関係の効果的な解析が可能となった.
また,昨年にひきつづき,静的解析基盤技術の研究を行い,変数間のデータフローの詳細な解析による特徴的なプログラム構造の抽出や,より上位の設計情報への抽象化に関して論文発表を行った.また,機能を理解する上で重要なプログラム中のクラスを発見する手法として,「詳細な動的解析基盤」を用いて取得した実行履歴の分析に基づく重要度の効果について評価を行い論文を発表した.

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

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

理由

「内的機能構造の識別」と「外的機能の復元・詳細補完」については,動的機能捜索の結果である形式概念束上での構造的関係について研究をすすめており,静的構造特徴と合わせることにより外的機能を理解・復元する上で重要なモジュールの推定がある程度可能であることを示している.また,改版履歴分析についても,改変時に同時に修正される,強い関係のモジュール群が効果的に特定できることを示している.以上のことから,静的解析と動的解析,活動履歴解析を総合的に分析することでプログラム理解を支援する基盤が整いつつあり,当初計画通りであると考える.

今後の研究の推進方策

「内的機能構造の識別」に関する手法については,昨年度開発した外的機能の組み合わせを実行した複数の実行トレースに対して共通性分析を適用した結果と,プログラム中のモジュールの利用関係の双方を利用したハイブリッド解析の改良手法をもちいて,内的機能構造を抽出する方法を検討する.外的機能群の候補とそれらの関係を抽出し外的機能の理解を支援する手法と,外的機能に対応する内的機能構造の情報を利用し,外的機能の振る舞いを表現するソフトウェア要約手法についても検討を行う.
実用規模のソフトウェアに対するハイブリッド解析のために,動的解析の際の実行履歴の記録方法と解析方法に対する改良を行う.実行履歴の記録方法は従来型のログ出力だけでなく,必要に応じて記録する箇所を切り替える方式を活用し,実行履歴の蓄積量を減らすことで解析の効率化を目指す.
また,昨年に引き続き,静的解析に基づく設計意図抽出手法を応用し,段階的抽象化のためのグループ化手法に関して研究を行う.コアクラス発見の例題を題材にした抽象化の品質を評価実験の結果から明らかとなった問題に対して,実行時のオブジェクトの関係性を表現するメトリクスを導入し,より精度の高いコアクラス発見手法について検討を行う.
過去の開発における変更箇所の関連性については,引き続きプログラムの開発履歴に着目し,開発履歴中の改版履歴と操作履歴から抽出した進化結合の応用方法について検討を行う.

  • 研究成果

    (21件)

すべて 2018 2017

すべて 雑誌論文 (5件) (うち国際共著 2件、 査読あり 5件) 学会発表 (16件) (うち国際学会 10件)

  • [雑誌論文] Context-Based Approach to Prioritize Code Smells for Prefactoring2018

    • 著者名/発表者名
      Natthawute Sae-Lim, Shinpei Hayashi, Motoshi Saeki
    • 雑誌名

      Journal of Software: Evolution and Process

      巻: 30 ページ: 1-24

    • DOI

      10.1002/smr.1886

    • 査読あり
  • [雑誌論文] 変数のデータフローによるAPI利用コード例の検索2017

    • 著者名/発表者名
      竹之内 啓太, 石尾 隆, 井上 克郎
    • 雑誌名

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

      巻: 34(4) ページ: 68--74

    • DOI

      https://doi.org/10.11309/jssst.34.4_68

    • 査読あり
  • [雑誌論文] A Robust Multi-Objective Approach to Balance Severity and Importance of Refactoring Opportunities2017

    • 著者名/発表者名
      Mohamed Wiem Mkaouer, Marouane Kessentini, Mel O Cinneide, Shinpei Hayashi, Kalyanmoy Deb
    • 雑誌名

      Empirical Software Engineering

      巻: 22(2) ページ: -

    • DOI

      10.1007/s10664-016-9426-8

    • 査読あり / 国際共著
  • [雑誌論文] クラス責務割当てのファジィ制約充足問題としての定式化2017

    • 著者名/発表者名
      林 晋平, 柳田 拓人, 佐伯 元司, 三村 秀典
    • 雑誌名

      情報処理学会論文誌

      巻: 58(4) ページ: 795-806

    • 査読あり
  • [雑誌論文] 改版履歴の分析に基づく変更支援手法にお ける時間的近接性の考慮と同一作業コミットの統合による影響2017

    • 著者名/発表者名
      森達也, Anders Hagward, 小林隆志
    • 雑誌名

      情報処理学会論文誌

      巻: 58(4) ページ: 807-817

    • 査読あり / 国際共著
  • [学会発表] ChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source Code2018

    • 著者名/発表者名
      Katsuhisa Maruyama, Shinpei Hayashi, Takayuki Omori
    • 学会等名
      the 25th IEEE International Conference on Software Analysis, Evolution and Reengineering
    • 国際学会
  • [学会発表] 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, Katsuro Inoue
    • 学会等名
      the 25th IEEE International Conference on Software Analysis, Evolution and Reengineering
    • 国際学会
  • [学会発表] 情報検索に基づくBug Localizationへの不吉な臭いの深刻度の利用2018

    • 著者名/発表者名
      高橋 碧, セーリム ナッタウット, 林 晋平, 佐伯 元司
    • 学会等名
      情報処理学会第199回ソフトウェア工学研究発表会, 2018
  • [学会発表] 実行トレースの共通性分 析に基づく機能開始点の特定2018

    • 著者名/発表者名
      中野真明貴,野田訓広, 小林隆志, 林晋平
    • 学会等名
      IEICE ソフトウェアサイエンス研究会 2018年 3月
  • [学会発表] Inference-Based Detection of Architectural Violations in MVC22017

    • 著者名/発表者名
      Shinpei Hayashi, Fumiki Minami, Motoshi Saeki
    • 学会等名
      12th International Conference on Software Technologies (ICSOFT 2017)
    • 国際学会
  • [学会発表] How Do Developers Select and Prioritize Code Smells? A Preliminary Study2017

    • 著者名/発表者名
      Natthawute Sae-Lim, Shinpei Hayashi, Motoshi Saeki
    • 学会等名
      the 33rd IEEE International Conference on Software Maintenance and Evolution (ICSME 2017)
    • 国際学会
  • [学会発表] Can Developers' Interaction Data Improve Change Recommendation?2017

    • 著者名/発表者名
      Akihiro Yamamori, Anders Hagward, Takashi Kobayashi
    • 学会等名
      the 41st IEEE Computer Society International Conference on Computers, Software & Applications (COMPSAC2017)
    • 国際学会
  • [学会発表] Identifying Core Objects for Trace Summarization Using Reference Relations and Access Analysis2017

    • 著者名/発表者名
      Kunihiro Noda, Tatsuya Toda, Takashi Kobayashi Noritoshi Atsumi
    • 学会等名
      the 41st IEEE Computer Society International Conference on Computers, Software & Applications (COMPSAC2017)
    • 国際学会
  • [学会発表] Mediating Turf Battles! Prioritizing Shared Modules in Locating Multiple Features2017

    • 著者名/発表者名
      Maaki Nakano, Kunihiro Noda, Shinpei Hayashi, Takashi Kobayashi
    • 学会等名
      the 41st IEEE Computer Society International Conference on Computers, Software & Applications (COMPSAC2017)
    • 国際学会
  • [学会発表] "Source File Set Search for Clone-and-Own Reuse Analysis",2017

    • 著者名/発表者名
      Takashi Ishio, Yusuke Sakaguchi, Kaoru Ito, Katsuro Inoue
    • 学会等名
      2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR2017)
    • 国際学会
  • [学会発表] A Tool Supporting Postponable Refactoring2017

    • 著者名/発表者名
      Katsuhisa Maruyama, Shinpei Hayashi
    • 学会等名
      the 39th International Conference on Software Engineering (ICSE 2017)
    • 国際学会
  • [学会発表] Revisiting Context-Based Code Smells Prioritization: On Supporting Referred Context2017

    • 著者名/発表者名
      Natthawute Sae-Lim, Shinpei Hayashi, Motoshi Saeki
    • 学会等名
      9th International Workshop on Managing Technical Debt (MTD 2017)
    • 国際学会
  • [学会発表] 開発ツール連携のためのProxyChatBotフレーム ワーク2017

    • 著者名/発表者名
      高木豪, 小林隆志
    • 学会等名
      IPSJ SIGSE ソフトウェアエンジニアリングシンポジウム2017
  • [学会発表] Visualizing a Tangled Change for Supporting Its Decomposition and Commit Construction2017

    • 著者名/発表者名
      Sarocha Sothornprapakorn, Shinpei Hayashi, Motoshi Saeki
    • 学会等名
      IPSJ SIGSE ソフトウェアエンジニアリングシンポジウム2017
  • [学会発表] 探索に基づくリファクタリング補完の実現に向けて2017

    • 著者名/発表者名
      星野 友宏, 林 晋平, 佐伯 元司
    • 学会等名
      IPSJ SIGSE ソフトウェアエンジニアリングシンポジウム2017
  • [学会発表] 行動履歴分析に基づく変更支援における部分履 歴抽出の影響調査2017

    • 著者名/発表者名
      藤原拓海, 小林隆志
    • 学会等名
      ソフトウェアサイエンス研究会 7月研究会

URL: 

公開日: 2018-12-17  

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

Powered by NII kakenhi