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

2015 Fiscal Year Annual Research Report

フレームベースリファクタリング環境の構築

Research Project

Project/Area Number 15H02685
Research InstitutionRitsumeikan University

Principal Investigator

丸山 勝久  立命館大学, 情報理工学部, 教授 (30330012)

Co-Investigator(Kenkyū-buntansha) 林 晋平  東京工業大学, 情報理工学(系)研究科, 助教 (40541975)
Project Period (FY) 2015-04-01 – 2019-03-31
Keywordsソフトウェアリファクタリング / ソフトウェア保守と進化 / ソフトウェア開発環境 / プログラム理解
Outline of Annual Research Achievements

本研究では、リファクタリングにおける外部的振る舞い保存に対して、フレームという概念を導入することで、リファクタリングにおいて開発者が意識しているものと意識していないものを分離するための仕組みを確立する。平成27年度は、主に2つの研究を実施した。
1. リファクタリングにおいて、開発者や保守者は必ずしもシステム全体のすべての入出力で外部的振る舞いを捉えているわけではなく、立場や状況によって保存すべき外部的振る舞いは異なると考えるのが妥当である。このような発想に基づき、さまざまな空間的フレームや時間的フレームの洗い出しに取り組み、Javaプログラムにおけるクラスのインタフェースに基づくフレームの定義に成功した。具体的には、インタフェースを公開メソッドの集合で捉え、その部分集合を空間的フレームとする手法を考案した。その上で、特定の空間的フレームに対する外部的振る舞いの保存を、そのフレームに属するメソッドの入出力結果がリファクタリング前後で同一であることと定義した。
2. 提案するリファクタリングを展開していくためには、実際の開発や保守においてどのようなリファクタリングが適用されているのかを正確に把握することが必須である。その際、従来のようにリファクタリングメニューの起動を監視し、その前後のソースコードの差分を記録するだけでは不十分である。なぜなら、現実におけるソースコードの改善を、外部的振る舞いを保存する自動リファクタリングだけで達成できる可能性は低く、自動リファクタリングだけを記録してもリファクタリングにおける外部的挙動の保存を正確に把握することができないからである。そこで、統合開発環境EclipseのJavaエディタ上で実施されたリファクタリング操作およびその適用前後に行われたコードの編集操作をすべて自動かつより正確に収集するツールを実装した。

Current Status of Research Progress
Current Status of Research Progress

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

Reason

平成27年度の計画は、(1)空間および時間に基づくフレームの洗い出しと(2)リファクタリング操作収集ツールの開発と収集結果の検証である。フレームの洗い出しという点では、Javaプログラムにおけるクラスのインタフェースに対して空間的フレームを定義した。研究会(ソフトウェア工学の基礎ワークショップFOSE2015)のポスターセッションにおいて、従来のリファクタリングにおける外部的振る舞いの保存に関する問題点とフレームを導入することの意義を発表した。また、リファクタリング操作を含む開発者の編集操作を自動かつより正確に記録するツールを実装し、ソースコード共有ウェブサービスGitHubで一般に公開した。
平成27年度は外部発表の回数がやや少なかった反面、初年度ということで研究協力者を含めた研究討論会に力を入れたことで、今後の研究展開に関する有益な知見が得られた。また、実装したツールを用いてリファクタリング操作の収集実験は行ったものの、収集結果の十分な検証までは達成できなかった。以上より、計画の一部が未完了ではあるが、研究は順調に進展しているといえる。

Strategy for Future Research Activity

当初の予定通り、考案したそれぞれのフレームに対して、外部的振る舞いの保存を形式的に定義することに取り組む。特に、インタフェースに基づく空間的フレームを定義し、このフレームにおける外部的振る舞いの保存を、自動テストによる入出力検査により機械的に判断可能な仕組みを確立し、それをソフトウェア開発環境に組み込んだプロトタイプツールを作成する。外部的振る舞いを部分的に保存する仕組みとそのプロトタイプツールを用いた具体的な適用例を提示することで、フレームを導入することの優位性を学会発表において示す。同時に、リファクタリング操作収集ツールの改良とさらなる収集実験を実施し、収集したデータの分析に取り組む。
研究成果の公開をさらに進めるために、数多くの国際会議と国内会議に参加する。研究経費は主に、研究成果発表(論文掲載料、会議参加費、旅費)、および、連携研究者・研究協力者との研究打合わせの旅費に使用する。

  • Research Products

    (8 results)

All 2016 2015 Other

All Journal Article (1 results) (of which Peer Reviewed: 1 results,  Acknowledgement Compliant: 1 results) Presentation (5 results) (of which Int'l Joint Research: 2 results) Remarks (2 results)

  • [Journal Article] Slicing Fine-Grained Code Change History2016

    • Author(s)
      Katsuhisa Maruyama, Takayuki Omori, Shinpei Hayashi
    • Journal Title

      IEICE Transaction on ED

      Volume: Vol.E99-D Pages: 671-687

    • DOI

      10.1587/transinf.2015EDP7282

    • Peer Reviewed / Acknowledgement Compliant
  • [Presentation] Supporting Merge Conflict Resolution by Using Fine-Grained Code Change History2016

    • Author(s)
      Yuichi Nishimura, Katsuhisa Maruyama
    • Organizer
      23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER'16)
    • Place of Presentation
      大阪大学吹田キャンパス(大阪府・吹田市)
    • Year and Date
      2016-03-16
    • Int'l Joint Research
  • [Presentation] 命名方法の関連性に基づく識別子名の一括変更支援2016

    • Author(s)
      小俣 仁美, 林 晋平, 佐伯 元司
    • Organizer
      情報処理学会 第191回ソフトウェア工学研究発表会
    • Place of Presentation
      大阪大学吹田キャンパス(大阪府・吹田市)
    • Year and Date
      2016-03-15
  • [Presentation] フレームベースリファクタリング ~その概念と意義~2015

    • Author(s)
      丸山勝久,林晋平,吉田則裕,崔恩瀞
    • Organizer
      日本ソフトウェア科学会 ソフトウェア工学の基礎研究会 (FOSE2015)
    • Place of Presentation
      ほほえみの宿 滝の湯(山形県・天童市)
    • Year and Date
      2015-11-27
  • [Presentation] プログラム編集履歴を用いた版管理システムでの競合解決支援2015

    • Author(s)
      西村雄一,丸山勝久
    • Organizer
      日本ソフトウェア科学会第32回大会
    • Place of Presentation
      早稲田大学西早稲田キャンパス(東京都・新宿区)
    • Year and Date
      2015-09-10
  • [Presentation] Hierarchical Categorization of Edit Operations for Separately Committing Large Refactoring Results2015

    • Author(s)
      Jumpei Matsuda, Shinpei Hayashi, Motoshi Saeki
    • Organizer
      14th International Workshop on Principles of Software Evolution (IWPSE'15)
    • Place of Presentation
      Bergamo (Italy)
    • Year and Date
      2015-08-30
    • Int'l Joint Research
  • [Remarks] MergeHelper

    • URL

      http://www.fse.cs.ritsumei.ac.jp/mergehelper/

  • [Remarks] Change Tracker

    • URL

      https://github.com/katsuhisamaruyama/changetracker

URL: 

Published: 2017-01-06  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi