研究課題/領域番号 |
15H02685
|
研究機関 | 立命館大学 |
研究代表者 |
丸山 勝久 立命館大学, 情報理工学部, 教授 (30330012)
|
研究分担者 |
林 晋平 東京工業大学, 情報理工学院, 助教 (40541975)
|
研究期間 (年度) |
2015-04-01 – 2019-03-31
|
キーワード | ソフトウェアリファクタリング / ソフトウェア保守と進化 / ソフトウェア開発環境 / プログラム解析 / プログラム理解 |
研究実績の概要 |
リファクタリングにおいて、開発者や保守者の立場によって保存すべき外部的振る舞いは異なると考えるのが妥当である。本研究では、リファクタリングにおける外部的振る舞いの保存に対して、フレームという概念を導入することで、リファクタリングにおいて開発者が意識しているものと意識していないものを分離するための仕組みを確立する。平成29年度は、主に3つの研究項目を実施した。 1. 外部的振る舞いの保存を常に保証したままでリファクタリングを達成することは、実際のソフトウェア開発や保守において現実的でない。そこで、リファクタリングの起動から完了までを時間的フレームとして捉え、その間に任意の編集操作を許容する仕組みを考案し、プロトタイプツールを開発した。このツールを利用することで、リファクタリングの前提条件の検査をソースコードの編集操作に連動させ、利用者が起動したリファクタリングに関して、実際の適用を遅延させることができる。 2. 統合開発環境において、リファクタリング操作およびその適用前後に行われたコードの編集操作を自動的に収集するツールの改良を実施し、より精度と利便性の高い編集情報を記録するツールを開発し、オープンソースとして公開した。 3. リファクタリングにより新規にメソッドが抽出された際、そのメソッドをテストするコードが存在しないことで発生する問題を明らかにした。その上で、もとのメソッドのテストケースを利用することで、抽出したメソッドのテストコードを自動生成する手法を提案した。テストコードの生成は、リファクタリング前後のソースコードに対する静的解析と、ソースコードから変換したプログラムに対する動的解析を組み合わせることで達成している。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
平成29年度の計画における研究項目は主に、(1)フレームに基づく外部的振る舞いの保存を保証する手法の確立とプロトタイプツールの作成、(2)リファクタリングツールの使用性に関する検討とリファクタリング環境の構築である。 研究項目(1)については、時間的フレームに基づき、事前条件の検査のタイミングを緩和した遅延リファクタリングという新しい概念を提唱した。さらに、この概念をメソッド抽出リファクタリングに適用したプロトタイプツールを開発した。この研究成果は、国際会議ICSE 2017のポスターセッションで発表した。プロトタイプツールのソースコードは、ソースコード共有ウェブサービスGitHubで広く一般に公開した。 研究項目(2)については、リファクタリング操作を正確に記録するツールの改良には成功した。このツールを利用することで、リファクタリングに関係する編集操作の記録が容易になっている。この研究成果は、国際会議SANER 2018のツールデモンストレーションセッションで発表した。また、このツールに関しても、GitHuBで広く一般に公開した。 平成29年度は、当初計画していた研究項目だけでなく、外部的振る舞いの保存を保証するためのテストケースとリファクタリングの適用によるコードの変化との関係を整理することに取り組んだ。これに関する研究成果は、情報処理学会および電子情報通信学会の研究会で発表した。 このように、平成29年度は、手法の検討だけでなくプロトタイプツールの開発にも力を入れた。その一方で、リファクタリングツールの使用性に関する検討がやや不十分となった。計画の一部が未完了ではあるものの、外部的振る舞いの保存という観点からテストケースの自動生成の意義を見いだすことに成功している点から、研究はおおむね順調に進展しているといえる。
|
今後の研究の推進方策 |
外部的振る舞いの保存を保証する手法の確立については一定の成果が得られたため、リファクタリングツールの使用性に関する検討に本格的に取りかかる。特に、テストケースに基づく空間的フレームについて、利用者がフレームを直感的に指定でき、さらに容易に管理できるリファクタリング環境の構築を目指す。 遅延リファクタリングについては、事前条件を緩和する仕組みをより一般化することで、メソッド抽出リファクタリングの他にも遅延可能なリファクタリングの種類を増やすことを目指す。 外部的振る舞いの保存を保証するテストコードの自動生成手法については、そのプロトタイプツールを完成させる。さらに、生成されたテストコードを空間的フレームとして維持管理する手法を確立し、リファクタリング環境に組み入れることを目指す。 このように、平成30年度では主に、平成27-29年度に提案したさまざまな手法を組み込んだ包括的なリファクタリング環境の構築に重点的に取り組む。さらに、構築したリファクタリング環境において具体的な適用例を数多く示すことで、フレームを導入することの優位性を立証し、リファクタリング分野においてフレームという概念の浸透を達成する。特に、研究成果の公開を強く意識し、数多くの学術誌に論文を投稿する。研究経費は主に、研究成果発表(論文掲載料、会議参加費、旅費)、および、研究打合わせの旅費に使用する。
|