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

2017 Fiscal Year Annual Research Report

Program comprehension based on feature identification using hybrid program analysis

Research Project

Project/Area Number 15H02683
Research InstitutionTokyo Institute of Technology

Principal Investigator

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

Co-Investigator(Kenkyū-buntansha) 林 晋平  東京工業大学, 情報理工学院, 助教 (40541975)
石尾 隆  奈良先端科学技術大学院大学, 先端科学技術研究科, 准教授 (60452413)
渥美 紀寿  京都大学, 学術情報メディアセンター, 助教 (70397446)
Project Period (FY) 2015-04-01 – 2019-03-31
Keywordsソフトウェア工学 / ソフトウェア保守 / プログラム理解 / リバースエンジニアリング
Outline of Annual Research Achievements

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

Current Status of Research Progress
Current Status of Research Progress

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

Reason

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

Strategy for Future Research Activity

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

  • Research Products

    (21 results)

All 2018 2017

All Journal Article (5 results) (of which Int'l Joint Research: 2 results,  Peer Reviewed: 5 results) Presentation (16 results) (of which Int'l Joint Research: 10 results)

  • [Journal Article] Context-Based Approach to Prioritize Code Smells for Prefactoring2018

    • Author(s)
      Natthawute Sae-Lim, Shinpei Hayashi, Motoshi Saeki
    • Journal Title

      Journal of Software: Evolution and Process

      Volume: 30 Pages: 1-24

    • DOI

      10.1002/smr.1886

    • Peer Reviewed
  • [Journal Article] 変数のデータフローによるAPI利用コード例の検索2017

    • Author(s)
      竹之内 啓太, 石尾 隆, 井上 克郎
    • Journal Title

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

      Volume: 34(4) Pages: 68--74

    • DOI

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

    • Peer Reviewed
  • [Journal Article] A Robust Multi-Objective Approach to Balance Severity and Importance of Refactoring Opportunities2017

    • Author(s)
      Mohamed Wiem Mkaouer, Marouane Kessentini, Mel O Cinneide, Shinpei Hayashi, Kalyanmoy Deb
    • Journal Title

      Empirical Software Engineering

      Volume: 22(2) Pages: -

    • DOI

      10.1007/s10664-016-9426-8

    • Peer Reviewed / Int'l Joint Research
  • [Journal Article] クラス責務割当てのファジィ制約充足問題としての定式化2017

    • Author(s)
      林 晋平, 柳田 拓人, 佐伯 元司, 三村 秀典
    • Journal Title

      情報処理学会論文誌

      Volume: 58(4) Pages: 795-806

    • Peer Reviewed
  • [Journal Article] 改版履歴の分析に基づく変更支援手法にお ける時間的近接性の考慮と同一作業コミットの統合による影響2017

    • Author(s)
      森達也, Anders Hagward, 小林隆志
    • Journal Title

      情報処理学会論文誌

      Volume: 58(4) Pages: 807-817

    • Peer Reviewed / Int'l Joint Research
  • [Presentation] ChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source Code2018

    • Author(s)
      Katsuhisa Maruyama, Shinpei Hayashi, Takayuki Omori
    • Organizer
      the 25th IEEE International Conference on Software Analysis, Evolution and Reengineering
    • 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, Katsuro Inoue
    • Organizer
      the 25th IEEE International Conference on Software Analysis, Evolution and Reengineering
    • Int'l Joint Research
  • [Presentation] 情報検索に基づくBug Localizationへの不吉な臭いの深刻度の利用2018

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

    • Author(s)
      中野真明貴,野田訓広, 小林隆志, 林晋平
    • Organizer
      IEICE ソフトウェアサイエンス研究会 2018年 3月
  • [Presentation] Inference-Based Detection of Architectural Violations in MVC22017

    • Author(s)
      Shinpei Hayashi, Fumiki Minami, Motoshi Saeki
    • Organizer
      12th International Conference on Software Technologies (ICSOFT 2017)
    • Int'l Joint Research
  • [Presentation] How Do Developers Select and Prioritize Code Smells? A Preliminary Study2017

    • Author(s)
      Natthawute Sae-Lim, Shinpei Hayashi, Motoshi Saeki
    • Organizer
      the 33rd IEEE International Conference on Software Maintenance and Evolution (ICSME 2017)
    • Int'l Joint Research
  • [Presentation] Can Developers' Interaction Data Improve Change Recommendation?2017

    • Author(s)
      Akihiro Yamamori, Anders Hagward, Takashi Kobayashi
    • Organizer
      the 41st IEEE Computer Society International Conference on Computers, Software & Applications (COMPSAC2017)
    • Int'l Joint Research
  • [Presentation] Identifying Core Objects for Trace Summarization Using Reference Relations and Access Analysis2017

    • Author(s)
      Kunihiro Noda, Tatsuya Toda, Takashi Kobayashi Noritoshi Atsumi
    • Organizer
      the 41st IEEE Computer Society International Conference on Computers, Software & Applications (COMPSAC2017)
    • Int'l Joint Research
  • [Presentation] Mediating Turf Battles! Prioritizing Shared Modules in Locating Multiple Features2017

    • Author(s)
      Maaki Nakano, Kunihiro Noda, Shinpei Hayashi, Takashi Kobayashi
    • Organizer
      the 41st IEEE Computer Society International Conference on Computers, Software & Applications (COMPSAC2017)
    • Int'l Joint Research
  • [Presentation] "Source File Set Search for Clone-and-Own Reuse Analysis",2017

    • Author(s)
      Takashi Ishio, Yusuke Sakaguchi, Kaoru Ito, Katsuro Inoue
    • Organizer
      2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR2017)
    • Int'l Joint Research
  • [Presentation] A Tool Supporting Postponable Refactoring2017

    • Author(s)
      Katsuhisa Maruyama, Shinpei Hayashi
    • Organizer
      the 39th International Conference on Software Engineering (ICSE 2017)
    • Int'l Joint Research
  • [Presentation] Revisiting Context-Based Code Smells Prioritization: On Supporting Referred Context2017

    • Author(s)
      Natthawute Sae-Lim, Shinpei Hayashi, Motoshi Saeki
    • Organizer
      9th International Workshop on Managing Technical Debt (MTD 2017)
    • Int'l Joint Research
  • [Presentation] 開発ツール連携のためのProxyChatBotフレーム ワーク2017

    • Author(s)
      高木豪, 小林隆志
    • Organizer
      IPSJ SIGSE ソフトウェアエンジニアリングシンポジウム2017
  • [Presentation] Visualizing a Tangled Change for Supporting Its Decomposition and Commit Construction2017

    • Author(s)
      Sarocha Sothornprapakorn, Shinpei Hayashi, Motoshi Saeki
    • Organizer
      IPSJ SIGSE ソフトウェアエンジニアリングシンポジウム2017
  • [Presentation] 探索に基づくリファクタリング補完の実現に向けて2017

    • Author(s)
      星野 友宏, 林 晋平, 佐伯 元司
    • Organizer
      IPSJ SIGSE ソフトウェアエンジニアリングシンポジウム2017
  • [Presentation] 行動履歴分析に基づく変更支援における部分履 歴抽出の影響調査2017

    • Author(s)
      藤原拓海, 小林隆志
    • Organizer
      ソフトウェアサイエンス研究会 7月研究会

URL: 

Published: 2018-12-17  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi