研究課題/領域番号 |
15H02685
|
研究機関 | 立命館大学 |
研究代表者 |
丸山 勝久 立命館大学, 情報理工学部, 教授 (30330012)
|
研究分担者 |
林 晋平 東京工業大学, 情報理工学(系)研究科, 助教 (40541975)
|
研究期間 (年度) |
2015-04-01 – 2019-03-31
|
キーワード | ソフトウェアリファクタリング / ソフトウェア保守と進化 / ソフトウェア開発環境 / プログラム理解 |
研究実績の概要 |
本研究では、リファクタリングにおける外部的振る舞い保存に対して、フレームという概念を導入することで、リファクタリングにおいて開発者が意識しているものと意識していないものを分離するための仕組みを確立する。平成27年度は、主に2つの研究を実施した。 1. リファクタリングにおいて、開発者や保守者は必ずしもシステム全体のすべての入出力で外部的振る舞いを捉えているわけではなく、立場や状況によって保存すべき外部的振る舞いは異なると考えるのが妥当である。このような発想に基づき、さまざまな空間的フレームや時間的フレームの洗い出しに取り組み、Javaプログラムにおけるクラスのインタフェースに基づくフレームの定義に成功した。具体的には、インタフェースを公開メソッドの集合で捉え、その部分集合を空間的フレームとする手法を考案した。その上で、特定の空間的フレームに対する外部的振る舞いの保存を、そのフレームに属するメソッドの入出力結果がリファクタリング前後で同一であることと定義した。 2. 提案するリファクタリングを展開していくためには、実際の開発や保守においてどのようなリファクタリングが適用されているのかを正確に把握することが必須である。その際、従来のようにリファクタリングメニューの起動を監視し、その前後のソースコードの差分を記録するだけでは不十分である。なぜなら、現実におけるソースコードの改善を、外部的振る舞いを保存する自動リファクタリングだけで達成できる可能性は低く、自動リファクタリングだけを記録してもリファクタリングにおける外部的挙動の保存を正確に把握することができないからである。そこで、統合開発環境EclipseのJavaエディタ上で実施されたリファクタリング操作およびその適用前後に行われたコードの編集操作をすべて自動かつより正確に収集するツールを実装した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
平成27年度の計画は、(1)空間および時間に基づくフレームの洗い出しと(2)リファクタリング操作収集ツールの開発と収集結果の検証である。フレームの洗い出しという点では、Javaプログラムにおけるクラスのインタフェースに対して空間的フレームを定義した。研究会(ソフトウェア工学の基礎ワークショップFOSE2015)のポスターセッションにおいて、従来のリファクタリングにおける外部的振る舞いの保存に関する問題点とフレームを導入することの意義を発表した。また、リファクタリング操作を含む開発者の編集操作を自動かつより正確に記録するツールを実装し、ソースコード共有ウェブサービスGitHubで一般に公開した。 平成27年度は外部発表の回数がやや少なかった反面、初年度ということで研究協力者を含めた研究討論会に力を入れたことで、今後の研究展開に関する有益な知見が得られた。また、実装したツールを用いてリファクタリング操作の収集実験は行ったものの、収集結果の十分な検証までは達成できなかった。以上より、計画の一部が未完了ではあるが、研究は順調に進展しているといえる。
|
今後の研究の推進方策 |
当初の予定通り、考案したそれぞれのフレームに対して、外部的振る舞いの保存を形式的に定義することに取り組む。特に、インタフェースに基づく空間的フレームを定義し、このフレームにおける外部的振る舞いの保存を、自動テストによる入出力検査により機械的に判断可能な仕組みを確立し、それをソフトウェア開発環境に組み込んだプロトタイプツールを作成する。外部的振る舞いを部分的に保存する仕組みとそのプロトタイプツールを用いた具体的な適用例を提示することで、フレームを導入することの優位性を学会発表において示す。同時に、リファクタリング操作収集ツールの改良とさらなる収集実験を実施し、収集したデータの分析に取り組む。 研究成果の公開をさらに進めるために、数多くの国際会議と国内会議に参加する。研究経費は主に、研究成果発表(論文掲載料、会議参加費、旅費)、および、連携研究者・研究協力者との研究打合わせの旅費に使用する。
|