研究課題/領域番号 |
26730034
|
研究機関 | 金沢大学 |
研究代表者 |
櫻井 孝平 金沢大学, 電子情報学系, 助教 (80597021)
|
研究期間 (年度) |
2014-04-01 – 2017-03-31
|
キーワード | 実行履歴 / プログラム解析 |
研究実績の概要 |
本年度は長時間実行プログラムの履歴を取得する手法として、軽量なソフトェアプロファイルデータから復元する手法を提案した。従来手法による実行履歴の取得方法は、プログラムを改変して記録のための追加処理を各命令に挿入するものであったが、これは長時間実行プログラムに対しては膨大なデータと大きなオーバヘッドをもたらすため、現実的ではなかった。この問題を解決するために検討を行い、プロファイルデータとプログラムの解析結果から履歴を部分的に復元する手法を提案した。プロファイルデータはプログラム中の各手続きを実行した回数を記録した情報で、性能の分析などに利用されるものだが、本研究ではこの情報とプログラムの構造を自動的に解析することで、ある程度の履歴の復元を可能にする手法を開発した。プロファイルデータは実行時間が増えても、そのサイズの上限がプログラムの手続きの個数で決まるため、それほど増加しない。一方で実行順序の情報が落ちていることになるため、完全に復元することは難しいが、プロファイルデータの記録単位をスレッドごとなどに増やし、プログラムの実行順の候補となる解析手法を工夫することで、部分的に実行履歴を復元することに成功した。長時間実行を行うプログラムとしてApache Hadoopを想定し、実際に実験を行った。 また並行して、プログラムの解析をつかった自動的なバグ発見手法の開発と評価を行った。これは期待通りに実行されなかった実行履歴に記録されない箇所から、本来実行されるべき箇所を求める手法で、ポインタ解析と呼ぶプログラムの静的解析手法といくつかのヒューリスティックを利用する。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
長時間の実行履歴記録に対応するため、プロファイルデータとプログラムの解析により履歴の復元を行うという新しい方式を提案した。また実際にApache Hadoop上で実装を行い、簡単な実験を行った。この手法は当初想定した、不要な記録を削除する方式とは異なるが、長時間の記録のために実行力が増大しないという有効な手法である。 また、実行履歴を応用したデバッグ手法として、プログラム解析を使った自動的なバグ発見手法の開発と評価実験を行ったことで、実行履歴が実際にソフトウェア開発に役に立つことを示している。
|
今後の研究の推進方策 |
今後は、当初の目標にあったとおり、資源の制約が大きいプログラムに対して実行履歴を解析する手法を開発していく。対象は主にAndroidなどのスマートフォンのアプリを想定し、ログの取得とプログラムの解析を組み合わせて統合開発環境上に実行履歴を表示する仕組みを開発する。 これにはいくつかの段階を得てツールとして開発を行うことになる。まずプログラム解析のためのフレームワークを構築する。これは対象をスマートフォンのJavaのプログラムに絞ることで既存の解析フレームワークが流用できる。次にログから実行履歴を復元する中核の部分を構築する。さらに開発環境上で利用者にわかりやすいように提示を行うよう、統合開発環境に対するプラグインとして開発を行う。その上で、既存のオープンソースソフトウェアとして提供されるスマートフォンのアプリを実験の対象として、有効性の評価を行う。
|
次年度使用額が生じた理由 |
開発・実験用計算機の仕様の細部を変更したため。
|
次年度使用額の使用計画 |
実験用タブレット端末の購入費用に充てることを計画している。
|