研究概要 |
ソフトウェアの構成を変更する手法の一つとして,オブジェクト指向ソフトウェアに対するリファクタリング技術の研究を進めた.リファクタリングとは,ソフトウェアの外部から見た挙動(振る舞い)を保存したまま,内部の構造だけを改良し,その設計を向上させる作業を指す.リファクタリング操作は一般的に煩雑であり,手動で行う際には,対象コードに対して多くの前提条件を検査すること,および,変更したコードが影響を及ぼす箇所を特定することが面倒である.さらに,リファクタリングの適用においては,対象ソースコードのどの部分にどのタイミングで行うのかを決定することが非常に難しい. 本研究では,オブジェクト指向言語Javaのプログラムに対して,各文間の制御の流れを表現する制御フローグラフ(CFG),各文間の依存関係を表現するプログラム依存グラフ(PDG),プログラムの設計書であるUMLダイアグラム(クラス図とシーケンス図)を用い,ソースコードのどの部分にいつリファクタリングを適用すればよいのかを過去の変更の履歴やソフトウェアメトリクス値の変動から判断する技術,さらに,変更前後に成立する条件をCFGやPDGを用いて論理式で記述することで変更により挙動が変わらなかったことを保証する技術を確立した. また,本研究では,コンポーネントによるWebサービスの構築に着目し,コンポーネントインタフェースのグルーピングによって提供されるWebサービスの種類を増加させる技術,さらに,それらを非機能特性に応じて検索する技術を考案した.コンポーネントの種類を見かけ上増加させ,それらを効果的に組み合わせることで,適応的ソフトウェアの実現に近づくと考えられる.
|