研究概要 |
1.OLIT(Open Look Intrinsics Toolkit)のうちで特にmenuButtonに着目し,35個のターミナルプランと17個の抽象化プランを抽出した.そして,これらのプランをプログラム合成系に適用し,プランを用いてC++のソースプログラムを半自動的に合成できることを確認した.さらにこの実験を通じて,プランにおいては変数だけではなく,関数名や定数が重要である,変数の型に関する情報も保持することが望ましい,などが今後の課題として明らかになった. 2.プログラムプランをOODB(オブジェクト指向データベース)に格納するためのクラス設計を行い,それをC++で実現した.プランは設計上では5個のクラスで構成されたが,実現に際してはさらに4個のクラスを追加した.プランを扱う際には,ネットワーク状に結合されたオブジェクトを正しくコピーする必要があることが明らかになり,木構造やネットワーク構造,リスト構造など,任意の構造のオブジェクトを正しくコピーするための機構を開発し,上記のプログラムプランの実装に適用し,正しく動作することを確認した. 3.ソースプログラムのデータフロー解析を行い,プログラムの複雑さを示す余波複雑度を計算するツール試作した.そしてプログラム保守の実験を行い,この余波複雑度が,ソースコードの行数,McCabeの閉路複雑度などの尺度よりも,プログラムの保守性とより強い相関を持つことを確かめた. 以上のように,本研究では,プログラム保守作業においてもっとも時間を必要とする作業であるプログラム理解を支援するために,プログラムプログラムプランの収集ならびに管理に関する研究を行った.また保守に必要な作業量を事前に見積もるための尺度として,余波複雑度が有効であることを確かめた.
|