研究概要 |
本研究は,膨大な資産として蓄積されている品質の確かなソフトウェアシステムを逆解析し,その品質を保ちながら,コンポーネントの組み上げによるソフトウェアの新しい工法に適する設計を復元(デザインリカバリ)することを目的として行なった.とくに,オブジェクト指向分析/設計とオブジェクト指向言語によるプログラムの間の距離は,従来の構造化分析/設計と既存言語によるプログラムより近いことから,既存言語のプログラム(本研究ではcプログラム)に対してリバースエンジニアリングを行い,オブジェクト指向的なカプセルを抽出することとした.その結果得られたデザインリカバリのプロセスは次の通りである. 1.カプセル発見のための基礎指標の計算-プログラム構成要素間関係の解析により,関数を構成する文の重要度,参照される関数や変数の重要度,関数間および関数と変数や型の間の関連度,構造型の順序指標等を求める. 2.指標に基づくカプセル抽出-関数と型の間の関連度行列をもとにカプセルの第1次候補群を抽出する. 3.カプセル群の補正-大域変数と関数との参照関係解析により,それらを既存カプセルに吸収する,あるいは新規カプセルに収容するといった補正,整形操作を施す. 上述の基礎指標や参照関係解析は,ソフトウェアの意味要素を中立的にとらえるメゾソフトウェアモデルに基づいている.そのため本研究では,cプログラムをメゾソフトウェア要素群に変換するツールもあわせて開発した.いくつかの実用的フリーソフトウェアに対し,本手法によって実験的に抽出したカプセル群をみると,発見されたカプセル数やカプセルに収容できた構成要素の割合において,統計的におおむね良好な値を示している.
|