研究課題/領域番号 |
26280021
|
研究機関 | 大阪大学 |
研究代表者 |
石尾 隆 大阪大学, 情報科学研究科, 助教 (60452413)
|
研究分担者 |
小林 隆志 東京工業大学, 情報理工学(系)研究科, 准教授 (50345386)
|
研究期間 (年度) |
2014-04-01 – 2017-03-31
|
キーワード | ソフトウェア工学 / デバッグ / 動的解析 / Java / 依存関係解析 |
研究実績の概要 |
本年度は,まず,実行トレース取得ツールの実装を行った.業務システムなどで一般的に使用されている Java を対象として,プログラムに実行トレース記録用命令を埋め込むツール selogger を開発し,オープンソースソフトウェアとして公開した.このツールは,収集したログ情報を,開発者が指定した並列度でディスクに書き出せるようにすることで,実行環境の遊休資源があるときだけ性能を向上する方式を採用した.元々計画していた並行処理の非同期なログ取得は,クラウド環境で一般的な性能の計算機で性能が安定しなかったため,並行処理自体の順序は記録し,ディスクへの出力のみを元プログラムの実行と並行で処理するものとした. selogger で取得したプログラムの実行ログを用いて任意のメソッドの実行状況を再現する REMViewer を開発した.このツールは,いわゆる Capture&Replay として知られる技術の再実装を基本としているが,プログラムの実行に含まれる多様な振る舞いから開発者が注目したい動きに注目できるように,1つのメソッドの複数回の実行を実行経路に基づいて分類し,可視化する技術を開発して組み込んだ.さらに,プログラムの実行から,バグの発生時に特徴的な動作に開発者が着目できるようにするために,プログラムの命令間の動的な制御およびデータの依存関係を抽出し,比較する技術を試作した.具体的な方式としては,実行トレースを,依存関係で接続された命令の 3-gram の集合へと変換することで,実行トレースをよりコンパクトな表現へと変換し,差分の計算を容易なものとした.そして,その情報を統計的デバッグに利用することで,既存の統計的デバッグ手法と比べて,デバッグの精度を向上できる場合があることを示した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
計画していた実装方式とは異なる形とはなったが,Java プログラムから実行トレースを取得するためのツールを実装し,また,研究チームでツールのソースコードを共有し,実際にそれを使用した実行状況の再現,統計的デバッグツールの試作を行うことで,一般的な計算機環境での実行トレースの取得,分析環境を整えることができた. 今後の計画に含めている,クラウド環境で運用されるサーバソフトウェアを対象としたデバッグ環境の研究を進める準備は整っていると考えている. また,当初の計画では後から実施する予定であった統計的デバッグの活用についても,予備的な実験に留まる規模ではあるが試行することができ,部分的な成果を得ていることから,今後の研究が円滑に進むことが期待できる.
|
今後の研究の推進方策 |
実行トレースの記録および解析では,計算機の性能を生かすために具体的なプログラムの動きをそのまま表現する必要があり,その状況を深く理解するために,研究チームでもツールのデモンストレーションなどを通じた詳しい議論を対面で行う必要があった. そこで,本年度は,学会発表等の様々な機会を通じて相互に訪問し,情報交換を継続的に行うことを計画している.
|
次年度使用額が生じた理由 |
実験用の高性能ワークステーションを1台導入する予定であったが,実行トレース記録手法の研究を円滑に進めるための性能および台数の再考が必要になり,導入を遅延したため.
|
次年度使用額の使用計画 |
次年度に実験用ワークステーションの導入を行う予定である.
|