寺田研究室学生部屋ページ > 論文 > ユーザ負荷のないUI操作記録・再生型デバッグシステム

ユーザ負荷のないUI操作記録・再生型デバッグシステム


著者

柏村 俊太郎

論文名

ユーザ負荷のないUI操作記録・再生型デバッグシステム

発表年月

2008年2月

発表学会等

電気通信大学平成18年度修士論文

概要

一般に、プログラムのデバッグや理解は困難なものであるが、そのプログラムがGUI( Graphical User Interface ) を持つもの( 以降、GUI プログラムと表記) である場合、さらに難易度が増すことになる。
その原因の1つとして、GUI プログラムの動作はユーザとのインタラクションに大きく依存するということが挙げられる。これにより、プログラムの動作の解明において有用であるはずのデバッガの有効性が発揮できなくなってしまう。
GUI プログラムはユーザによるマウスやキーボードを用いたGUI コンポーネントへの操作( 以降、ユーザ操作と表記) を待ち、与えられた操作に従って動作していく。逆に言えば、ユーザが操作を与えない限り操作を待っているプログラムは動かない。
一方、デバッガを用いてプログラムの動作を解析する場合、ステップ実行やブレークポイントなどのデバッガの機能を利用するために、ユーザはデバッガを操作しなければならない。
よって、プログラムを動作させるためにはプログラムのGUI へ操作を与えねばらならず、その様子を観察するためにはデバッガを操作しなければならない、という操作同士の干渉が起こってしまう。例えば、GUI コンポーネントをマウスドラッグで移動させつつ、その過程をプログラムが描画する様子をデバッガのステップ実行機能により解析する、などということは不可能である。

本研究では、既にいくつか存在するプログラミング支援手法のうち、実行トレースを用いる手法に注目した。
実行トレースとは、プログラム実行の様子の記録のことであり、実行トレースを用いる手法とは、まず初めにプログラムを実行して実行トレースを採取し、それを可視化することでユーザにプログラム実行の詳細を提示する、というものである。この手法では、プログラムの実行と観察をそれぞれ独立して行うことになる。よって、GUI プログラムに適用すれば、プログラム実行時はデバッギ( デバッグ及び理解の対象となるプログラムの意) への操作に、観察時はデバッガへの操作に、それぞれ専念することができ、問題となっている操作の干渉を回避することが可能になる。
しかし、実行トレースを用いたデバッグ手法をGUI プログラムに適用すると、実行トレース採取時に発生するオーバーヘッドによるインタラクションの阻害や、プログラムが停止状態になることによる操作の伝達漏れといった問題が発生する。

本研究では、GUI プログラムのデバッグ及び理解を支援することを目的とし、実行トレースを用いた手法をGUI プログラムに適用する際発生する問題の解決を行う。問題解決のため、実行トレース採取のためのプログラム実行を次の2pass に分けるという手法を提案し実装する。
1. pass1: ユーザ操作記録のための実行
2. pass2: 実行トレース採取のための実行
実行トレースを用いた手法を適用することで、デバッガ操作とデバッギ操作の干渉を起こさずにGUI プログラム実行の様子を観察することが可能となる。
なお、今回はデバッギとして想定するプログラミング言語をJava とした。

ファイル

http://sp.ice.uec.ac.jp/thesis/kashimura_master.pdf