研究概要 |
ソフトウェア変更の一つとして,オブジェクト指向ソフトウェアに対するリファクタリング技術の研究、および,リファクタリングに用いるプログラム解析技術の研究を進めた.リファクタリングとは、ソフトウェアの外部から見た挙動(振る舞い)を保存したまま,内部の構造だけを改良し,その設計を向上させる作業を指す、リファクタリング操作は一般的に煩雑であり,手動で行う際には、対象コードに対して多くの前提条件を検査すること,および,変更したコードが影響を及ぼす箇所を特定することが非常に面倒である. 本研究では、オブジェクト指向言語Javaのプログラムに対して,各文間の制御の流れを表現する制御フローグラフと、各文間の依存関係を表現するプログラム依存グラフを実用的に抽出する技術を確立した.この技術をリファクタリングツールに導入し,従来手動で行っていた各種リファクタリング操作の自動化を実現した.さらに,自動変換への第1段階として,このツールに,プログラマの過去のリファクタリング操作(変更操作)を履歴として蓄積し,プログラマの現在の操作に応じて,次に行うべき操作(将来の操作)を提案する仕組みを組み込んだ. さらに、本研究では、オブジェクト指向プログラムに対する解析技術として,基本ブロックに基づくスライシングと、このスライシングにより対象プログラムから新規メソッドを半自動的に抽出する手法を提唱した、本手法を実装したリファクタリングツールを用いることで,プログラマはリファクタリング対象コードにおいて着目する変数を指定し,ツールにより生成された候補から適切なメソッドを選択するだけでメソッド抽出リファクタリングを達成可能である.
|