提案書に掲げた初年度(H21年度)の具体的な作業は、(1)プロトタイピングと(2)初期評価であった。結果、初期に掲げた目標の多くを達成し、2年目以降の研究の展開についての具体的なイメージをつかむことができた。ツールの応用として研究成果を国際ワークショップ(査読付き)および研究会で発表した(前者についてはその拡大版がLNCSに採録され、H22年度に発行予定)。 プロトタイプとして実装したツールに実装したリバースエンジニアリングのための手法は、類似コード検出、プログラムスライシング(プログラムを依存関係のグラフとして表現し、一定の基準により部分グラフに相当するプログラムを求めるもの)、ドキュメントとソースコードの双方を対象としたソースコード検索の3つである。その一部についてH22年5月にプロトタイプとして配布を開始する。 また、分析手法を組み合わせるための手段としては、同提案書にある「分解」を実現するためのデザインポリシー「汎用型による水平分解」を確立した。具体的には、(i)分析対象となるソースコードやAST、PDGなどのデータを、プログラミング言語に組み込みの汎用のデータ構造、あるいは、汎用のデータ構造と同じAPIを持つデータ構造によって表現した。(ii)分析手法は汎用データ型に適用される特殊なアルゴリズムとして実装した。これにより、種々の分析手法を実現する(相互に依存性を持たない)小規模なモジュール群を、小規模なスクリプト(グルーコード)により連携させることで、分析手法の相互運用が可能になった。
|