研究課題
リファクタリングにおいて、開発者や保守者の立場によって保存すべき外部的振る舞いは異なると考えることは妥当である。本研究では、リファクタリングにおける外部的振る舞いの保存に対して、フレームという概念を導入することで、リファクタリングにおいて開発者が意識しているものと意識していないものを分離するための仕組みを確立する。平成30年度は、主に3つの研究項目を実施した。1.メソッド抽出リファクタリングを適用した際、抽出後のメソッドの振る舞いが保存されていることを確認するためのテストコードを自動生成する手法を実装したプロトタイプツールを作成した。具体的には、抽出したメソッドを呼び出すもとのメソッドに対してテストを実行し、抽出したメソッドの入力値と出力値の対を収集する。テストケースを生成するだけでなく、収集した入出力値とプログラムスライシングを組み合わせることで、テストコードの自動生成まで達成した。2.リファクタリングの適用を判断する基準となるコードの不吉な臭い(code smell)の自動検出や不吉な臭いをバグの発生箇所の局所化に利用する手法の検討を行った。従来のようにメトリクス値を単純に利用するのではなく、メトリクス値の相対的な変化に着目することで不吉な臭いの検出精度が向上する可能性を示した。また、不吉な臭いを活用することで、バグ修正が必要なモジュールの予測精度が向上することを示した。3.統合開発環境において、リファクタリング操作およびその適用前後に行われたコードの編集操作を自動的に収集するツールを評価するための評価実験を実施した。実験では、リファクタリング操作を中心をしたプログラミング活動の9つのタスクを設定し、従来ツールおよび提案ツールにより収集可能な編集操作の精度と収集した編集操作の理解度に対して比較を行い、提案ツールの有用性を示した。
平成30年度が最終年度であるため、記入しない。
すべて 2019 2018
すべて 雑誌論文 (3件) (うち査読あり 3件) 学会発表 (7件) (うち国際学会 5件)
情報処理学会論文誌
巻: vol. 60, no. 4 ページ: 1040-1050
IEICE Transactions on Information and Systems
巻: vol. E101-D, no. 7 ページ: 1780-1789
10.1587/transinf.2017KBP0023
巻: vol. E101-D, no. 7 ページ: 1733-1742
10.1587/transinf.2017KBP0006