前年度に作成したプロトタイプをもとに,自動進化の予測を行うシステムを構築した.システムは大きく,Javaのソースコードを解析し状態ベクトルを抽出するモジュールと,状態ベクトルを用いて次のメソッドの状態を予測するモジュールからなる.後者ではWekaを利用している. 構築したシステムを用いていくつかのオープンソースソフトウェアについて実験を行った.その結果,変更が非常に小さい場合には(状態ベクトルの要素が1つしか変化しないような場合には),オープンソースソフトウェアAntに対しては83%から94%の精度で,オープンソースソフトウェアArgoUMLについては87%から92%の精度で予測が的中していた.また,もう少し大きな変更までを対象にした場合には(状態ベクトルの要素が5つまで変化する場合),Antに対しては55%から62%の精度で,ArgoUMLについては48%から58%の精度で予測できていた. これらの研究実績は,電子情報通信学会のソフトウェアサイエンス研究会での発表およびAsia-pacific Software Engineering Conferenceでの採録および発表を行った.前者においては研究奨励賞を受賞した. 本研究成果は,ソースコードレベルでの予測には至っていないものの,過去の変更情報を利用して今後の変更を予測することに向けた大きな一歩になった.今後は状態ベクトルによる予測をソースコードへと変換することにより,ソースコードレベルでの変更を高精度で予測することを目指す.
|