研究概要 |
新しい方式であるバイナリレベルデータ統合と軽量データ統合を使って,高精度なCASEツール(ソフトウェア開発ツール)を実現する手法の確立を目指し、C言語用,ELF/DWARF2,理解ツールに対象を限定したツール構築実験を行ってきた。今年は大きく次の3つの研究を行った。 1.コード・文書間の追跡性ツールの研究:ソースコードと外部文書の関係は現実のソフトウェア開発ではほとんど管理されておらず、保守性悪化の大きな原因となっている。本研究では我々が開発した教育用OS(udos)を例題に、コード・文書間の追跡性や追跡対象となるキーワードに関する研究を行った。従来法であるTF/IDF法をプログラム向けに改良したckTF/IDF法を提案した.また,プログラム上の実装レベル制約とソースコード間の追跡性保存に関する研究を行った.また,教育用OS(udos)の設計法として,中レベル抽象,薄い中間層,追跡性に関する研究も行った. 2.C++言語用コールグラフ生成系の開発:C++言語はその複雑な言語仕様のため、C言語以上にツール構築が困難であることが知られている。本研究では関数呼び出しの直前のバイナリコードの解析手法として,条件分岐を無視した軽量な抽象実行を用いる方法を提案し,仮想関数にも対応した高精度なコールグラフ生成系の構築に成功した。 3.C言語におけるシステムヘッダファイルの適切な利用に関する研究:Cプログラム中の#includeをチェックするツール「簡単#include検査君」を開発した.教科書用の158個の小さなサンプルコードに実験的に適用し,58個のファイルから#includeミスを発見できた.経験として,ツールは#includeミスの発見に非常に有効だったこと,#includeミスは予想よりもはるかに多かったこと,などの貴重な知見を得た.
|