(57)【要約】【課題】より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供する。【解決手段】異常検出装置（１）は、複数の異なる判定プログラムを予め記憶する判定プログラム格納部（１７４）を具備する。異常検出装置は、ソフトウェアを実行して処理データをメモリ上に展開し、前記メモリ上の変数の値を予め設定されるタイミングで読み出し、読み出したメモリ領域の変数の用途に応じて前記判定プログラム格納部に格納されている複数の判定プログラムのうちの１つを選択する。異常検出装置は、選択した判定プログラムと、読み出した変数の値とに基づいて異常を検出する。【選択図】      図３
2011065476.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを実行して処理データをメモリ上に展開するソフトウェア実行部と、
複数の異なる判定プログラムを予め記憶する判定プログラム格納部と、
前記メモリ上の変数の値を予め設定されるタイミングで読み出す読み出し部と、
前記読み出し部により読み出したメモリ領域の変数の用途に応じて前記判定プログラム格納部に格納されている複数の判定プログラムのうちの１つを選択するプログラム選択部と、
前記プログラム選択部により選択した判定プログラムと、前記読み出し部により読み出した変数の値とに基づいて異常を検出する異常検出部と、
を具備することを特徴とする異常検出装置。
【請求項２】
前記ソフトウェア実行部により実行されるソフトウェア中の変数の用途を示す用途情報と前記変数が展開されるメモリ領域を示す情報とを対応付けて記憶する第１の記憶部をさらに具備し、
前記プログラム選択部は、前記第１の記憶部により記憶されている情報を参照し、前記読み出し部により読み出したメモリ領域を示す情報に対応付けられている用途情報を取得し、前記用途情報に応じて前記判定プログラム格納部に格納されている複数の判定プログラムのうちの１つを選択する、
ことを特徴とする請求項１に記載の異常検出装置。
【請求項３】
用途情報と判定プログラムを示す情報とを対応付けて記憶する第２の記憶部をさらに具備し、
前記プログラム選択部は、前記第１の記憶部により記憶されている情報を参照し、前記読み出し部により読み出したメモリ領域を示す情報に対応付けられている用途情報を取得し、前記第２の記憶部により記憶されている情報を参照し、前記用途情報に対応付けられている判定プログラムを示す情報に基づいて、前記判定プログラム格納部に格納されている複数の判定プログラムのうちの１つを選択する、
ことを特徴とする請求項２に記載の異常検出装置。
【請求項４】
前記異常検出部は、異なるタイミングにおいて読み出した少なくとも２つ以上の変数の値の時間的変化と前記プログラム選択部により選択した判定プログラムとに基づいて異常を検出することを特徴とする請求項１に記載の異常検出装置。
【請求項５】
前記異常検出部により異常を検出する場合、異常を検出したことを報知する報知部をさらに具備することを特徴とする請求項１に記載の異常検出装置。
【請求項６】
ソフトウェアを実行して処理データをメモリ上に展開し、
複数の異なる判定プログラムを予め記憶し、
前記メモリ上の変数の値を予め設定されるタイミングで読み出し、
前記読み出したメモリ領域の変数の用途に応じて予め格納されている複数の判定プログラムのうちの１つを選択し、
前記選択した判定プログラムと、前記読み出した変数の値とに基づいて異常を検出する、
ことを特徴とする異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ソフトウェアにおける異常を検出する異常検出装置、及び異常検出方法に関する。
【背景技術】
【０００２】
コンピュータのプログラムを実行し、正しく動作するか否かを確認するソフトウェアテストが一般的に行われている。ソフトウェアテストは、プログラム中のバグ（欠陥）をできる限り多く発見することを目的として行われる。
【０００３】
ソフトウェアによる処理を行う場合、ソフトウェアのプログラムは、ソフトウェア中の変数を実行し、メモリに展開する。しかし、例えばソフトウェアにバグが含まれている場合、本来想定される動作と異なる動作を行う可能性がある。
【０００４】
そこで、特許文献１には、事前に登録したメモリの監視領域を定期的に読み出し表示する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０７−１９１８８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記した特許文献１に記載されている技術によると、表示される情報を操作者が監視することにより、ソフトウェアにより使用されるメモリの内容の時間的な変化を把握することができる。これにより、動作の把握が容易になり、効率的にデバッグを行う事ができる。
【０００７】
しかし、表示される情報を操作者が監視するために、操作者が判断を誤った場合、バグを見逃す可能性があるという問題がある。特に、ソフトウェアの変数によってメモリの内容の時間的変化の態様が異なる。
【０００８】
例えば、変数がカウンタである場合、メモリ内容（変数の値）は、単調増加または単調減少する。この場合、変数の値が変化しない場合に異常を検出する。また、変数が定数である場合、メモリ内容（変数の値）は、変化しない。この場合、変数の値が変化する場合に異常を検出する。
【０００９】
上記のような判断を操作者が表示に基づいて行うことは困難であり、バグを見逃す可能性が高いという問題がある。
【００１０】
そこで、本発明の目的は、より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一実施形態としての異常検出装置は、ソフトウェアを実行して処理データをメモリ上に展開するソフトウェア実行部と、複数の異なる判定プログラムを予め記憶する判定プログラム格納部と、前記メモリ上の変数の値を予め設定されるタイミングで読み出す読み出し部と、前記読み出し部により読み出したメモリ領域の変数の用途に応じて前記判定プログラム格納部に格納されている複数の判定プログラムのうちの１つを選択するプログラム選択部と、前記プログラム選択部により選択した判定プログラムと、前記読み出し部により読み出した変数の値とに基づいて異常を検出する異常検出部と、を具備する。
【００１２】
また、本発明の一実施形態としての異常検出方法は、ソフトウェアを実行して処理データをメモリ上に展開し、複数の異なる判定プログラムを予め記憶し、前記メモリ上の変数の値を予め設定されるタイミングで読み出し、前記読み出したメモリ領域の変数の用途に応じて予め格納されている複数の判定プログラムのうちの１つを選択し、前記選択した判定プログラムと、前記読み出した変数の値とに基づいて異常を検出する。
【発明の効果】
【００１３】
この発明の一形態によれば、より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の一実施形態に係るソフトウェアのテストを行う端末装置の構成例について説明するためのブロック図である。
【図２】図２は、図１に示す記憶部に記憶されるファイルの例について説明するための説明図である。
【図３】図３は、図１及び図２に示す端末装置における処理について概略的に説明する為の説明図である。
【図４】図４は、ＲＡＭの値のサンプリング結果の例について説明する為の説明図である。
【図５】図５は、ＲＡＭの値のサンプリング結果の例について説明する為の説明図である。
【図６】図６は、ＲＡＭの値のサンプリング結果の例について説明する為の説明図である。
【図７】図７は、図１及び図２に示す端末装置における設定処理について説明する為のフローチャートである。
【図８】図８は、図１及び図２に示す端末装置における異常検出処理について説明する為のフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、本発明の一実施形態に係る異常検出装置、及び異常検出方法について詳細に説明する。
【００１６】
従来の異常検出装置は、メモリの内容の時間的な変化を示す情報を表示することにより、操作者に異常の有無の判断を行わせる。しかしソフトウェアの変数によりメモリ内容の時間的変化の態様が異なるため、人為的ミスが生じる可能性が高いという問題がある。本実施形態では、異常検出装置がメモリの内容の時間的な変化を示す情報と判定基準（判定ロジック）とに基づいて異常を検出する。さらに、異常検出装置は、判定ロジックを、メモリの用途に応じて変えることにより、より高い精度で異常検出を行う。
【００１７】
図１は、本発明の一実施形態に係るアプリケーションのテストを行う端末装置１の構成例について説明するためのブロック図である。  
図１に示すように、端末装置１は、ＣＰＵ１１、入出力部１２、ディスプレイ１３、キーボード１４、ＲＯＭ１５、ＲＡＭ１６、記憶部１７、及びデバッグＩ／Ｆ１８など備える。
【００１８】
ＣＰＵ１１は、端末装置１全体の制御を司る制御部として機能する。ＣＰＵ１１は、ＲＯＭ１５あるいは記憶部１７に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【００１９】
入出力部１２は、例えばＬＡＮなどを介して外部の機器と通信を行うためのインタフェース、または、記憶媒体を接続可能なインタフェースにより構成される。  
ディスプレイ１３は、ＣＰＵ１１の制御により種々の情報を表示する。キーボード１４は、端末装置１の操作者による操作を操作信号として受け取る。
【００２０】
ＲＯＭ１５は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＣＰＵ１１は、ＲＯＭ１５、または記憶部１７に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００２１】
ＲＡＭ１６は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１６は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１６は、入出力部１２を介して受信したデータを一時的に格納する。また、ＲＡＭ１６は、ＣＰＵ１１が実行するプログラムを一時的に格納する。
【００２２】
記憶部１７は、例えば、ＥＥＰＲＯＭまたはＨＤＤなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。
【００２３】
デバッグＩ／Ｆ１８は、ソフトウェア１９とのデータの送受信を行うためのインタフェースである。デバッグＩ／Ｆ１８は、ソフトウェア１９のデータの入出力を管理する。
【００２４】
ソフトウェア１９は、操作入力のデータに対して処理結果を出力するソフトウェアである。ソフトウェア１９は、複数の変数を備える。ＣＰＵ１１は、ソフトウェア実行部として機能する。ＣＰＵ１１は、ソフトウェア１９の変数に基づいて演算処理を実行することにより、種々の動作を実現する。
【００２５】
また、記憶部１７は、例えば図２に示すようなファイルを記憶する。  
図２は、図１に示す記憶部１７に記憶されているファイルの例について説明するための説明図である。
【００２６】
図２に示すように、記憶部１７は、監視プログラム１７１、用途判別テーブル１７２、判定ロジックテーブル１７３、判定プログラム格納部１７４、及びデータ格納部１７５などを備える。
【００２７】
また、ＣＰＵ１１は、ソフトウェア１９をＲＡＭ１６上にコンパイルする場合、シンボルファイルを生成し、記憶部１７に記憶する。ＣＰＵ１１は、シンボルファイルを参照することにより、ＲＡＭ１６上のアドレスに基づいて、ソフトウェア１９における変数を示す情報及びそのアドレスを認識する。
【００２８】
監視プログラム１７１は、端末装置１により異常検出処理を行う為のプログラムである。ＣＰＵ１１は、監視プログラム１７１を実行することにより、ソフトウェア１９における異常を検出する異常検出処理を行う。
【００２９】
用途判別テーブル１７２は、ソフトウェア１９における変数を示す情報（変数名）、ＲＡＭ１６におけるアドレス、サイズ、及び用途を示す情報（用途情報）を対応付けて記憶する記憶部として機能する。ＣＰＵ１１は、用途判別テーブル１７２を参照することにより、ＲＡＭ１６のアドレスから変数名、及び用途情報を取得する。
【００３０】
判定ロジックテーブル１７３は、用途情報と判定プログラムを示す情報とを対応付けて記憶する記憶部として機能する。ＣＰＵ１１は、判定ロジックテーブル１７３を参照することにより、用途情報から判定プログラムを示す情報を選択して取得する。この場合、ＣＰＵ１１は、プログラム選択部として機能する。
【００３１】
判定プログラム格納部１７４は、異常検出処理において判定基準として用いられる判定プログラムを複数記憶する。図２に示す例では、判定プログラム格納部１７４は、判定プログラムＸ、判定プログラムＹ、及び判定プログラムＺを記憶する。判定プログラムＸは、カウンタ（＋）の変数の異常検出処理に用いられるプログラムである。判定プログラムＹは、カウンタ（−）の変数の異常検出処理に用いられるプログラムである。判定プログラムＺは、定数として動作する変数の異常検出処理に用いられるプログラムである。
【００３２】
ＣＰＵ１１は、監視プログラム１７１を実行することにより、ＲＡＭ１６上の変数の値に関する異常検出処理を行う。ＣＰＵ１１は、監視プログラム１７１を実行する場合、予め設定されるタイミングに基づいて、異常検出処理を実行する。
【００３３】
なお、ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、異常検出処理を行うタイミングを設定する。例えば、ＣＰＵ１１は、所定時間毎に異常検出処理を実行するようにタイミングを設定する。また、例えば、ＣＰＵ１１は、所定時刻に異常検出処理を実行するように設定する。
【００３４】
図３は、図１及び図２に示す端末装置１における処理について概略的に説明する為の説明図である。  
ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、用途判別テーブル１７２を作成する。即ち、ＣＰＵ１１は、入力される変数名、アドレス、サイズ、及び用途情報を対応付けて用途判別テーブル１７２に登録する。ここで入力するアドレスの領域が、監視の対象となる。
【００３５】
なお、用途判別テーブル１７２への登録は、手動で行ってもよいし、プログラムのビルド時に生成されるマップファイル（変数とアドレスの対応関係が記載されたファイル）から自動で登録してもよい。
【００３６】
図３に示す例によると、変数ｉは、変数の値が増加するループカウンタである。ＣＰＵ１１は、用途判別テーブル１７２の用途情報として、「カウンタ（＋）」という情報を登録する。変数ｊは、変数の値が減少するループカウンタである。ＣＰＵ１１は、用途判別テーブル１７２の用途情報として、「カウンタ（−）」という情報を登録する。また、変数ｃｏｎｓｔＭｓｇは、固定メッセージデータを格納する。ＣＰＵ１１は、用途判別テーブル１７２の用途情報として、「定数」という情報を登録する。なお、変数名から変数の用途を推測できる場合、自動で用途情報を設定することも可能である。
【００３７】
また、ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、判定ロジックテーブル１７３を作成する。即ち、ＣＰＵ１１は、入力される用途情報及び判定プログラムを示す情報を対応付けて用途判別テーブル１７２に記憶する。
【００３８】
ＣＰＵ１１は、監視プログラム１７１を実行すると、予め設定されるタイミングにおいて、用途判別テーブル１７２に登録されているアドレス及びサイズに基づいてＲＡＭ１６にアクセスし、メモリの値（変数の値）を読み出す。この場合、ＣＰＵ１１は、読み出し部として機能する。
【００３９】
また、ＣＰＵ１１は、読み出したアドレスに対応付けられている用途情報を用途判別テーブル１７２から取得する。さらにＣＰＵ１１は、取得した用途情報に対応付けられている判定プログラムを示す情報を取得する。ＣＰＵ１１は、判定プログラム格納部１７４から判定プログラムを示す情報に対応する判定プログラムを読み出す。ＣＰＵ１１は、判定プログラムを実行することにより、読み出した変数の値に基づいて異常が存在するか否かを判定する。
【００４０】
ＣＰＵ１１は、異なるタイミングにおいて取得される少なくとも２つ以上の変数の値に基づいて変数の値の時間的変化を確認する。この為に、ＣＰＵ１１は、前回読み出した変数の値を例えばＲＡＭ１６に一時的に記憶する。ＣＰＵ１１は、確認した変数の時間的変化と判定プログラムとに基づいて判定を行う。即ち、ＣＰＵ１１は、変数の時間的変化が、用途に応じた変化であるか否かを判定する。
【００４１】
ＣＰＵ１１は、変数の時間的変化が、用途に応じた変化ではない場合、異常を検出する。ＣＰＵ１１は、異常を検出する場合、例えば、ディスプレイ１３に異常を検出したことを示す情報を表示し、操作者に報知する。この場合、ＣＰＵ１１は、報知部として機能する。
【００４２】
図４乃至図６は、変数の値のサンプリング結果の例について説明する為の説明図である。なお、図４は、変数ｉの値のサンプリング結果の例である。図５は、変数ｊの値のサンプリング結果の例である。図６は、変数ｃｏｎｓｔＭｓｇの値のサンプリング結果の例である。なお、ＣＰＵ１１は、タイミングｔ１、ｔ２、ｔ３、ｔ４、ｔ５の順でＲＡＭ１６の変数の値を取得するとして説明する。
【００４３】
図３の用途判別テーブル１７２において示すように、図４の変数ｉは、カウンタ（＋）である。ＣＰＵ１１は、判定ロジックテーブル１７３を参照し、カウンタ（＋）に対応付けられている判定プログラムＸを判定プログラム格納部１７４から読み出す。
【００４４】
ＣＰＵ１１は、判定プログラムＸを実行する場合、変数の値の時間的変化が増加である場合、異常を検出しない。即ち、ＣＰＵ１１は、変数の値の時間的変化が変化無し、または減少である場合、異常を検出する。
【００４５】
図４に示す例によると、各タイミングにおいて変数の値が前回の変数より大きい為、ＣＰＵ１１は、異常を検出しない。
【００４６】
図３の用途判別テーブル１７２において示すように、図５の変数ｊは、カウンタ（−）である。ＣＰＵ１１は、判定ロジックテーブル１７３を参照し、カウンタ（−）に対応付けられている判定プログラムＹを判定プログラム格納部１７４から読み出す。
【００４７】
ＣＰＵ１１は、判定プログラムＹを実行する場合、変数の値の時間的変化が減少である場合、異常を検出しない。即ち、ＣＰＵ１１は、変数の値の時間的変化が変化無し、または増加である場合、異常を検出する。
【００４８】
図５に示す例によると、変数の値が前回の変数の値と同じ、または前回の変数の値より大きい場合がある。この場合、ＣＰＵ１１は、異常を検出する。
【００４９】
図３の用途判別テーブル１７２において示すように、図６の変数ｃｏｎｓｔＭｓｇは、定数である。ＣＰＵ１１は、判定ロジックテーブル１７３を参照し、定数に対応付けられている判定プログラムＺを判定プログラム格納部１７４から読み出す。
【００５０】
ＣＰＵ１１は、判定プログラムＺを実行する場合、変数の値が変化しない場合、異常を検出しない。即ち、ＣＰＵ１１は、変数の値が変化する場合、異常を検出する。
【００５１】
図５に示す例によると、タイミングｔ５において変数の値が変化している為、ＣＰＵ１１は、異常を検出する。
【００５２】
なお、判定プログラムは、変数の値に基づいて複雑な演算を行うことにより異常を検出することができる。
【００５３】
例えば、判定プログラムＸにおいて、変数の値が増加傾向か否かを判定する場合、ＣＰＵ１１は、２つのタイミングにおける変数の値が、「今回の変数の値＞前回の変数の値」の条件を満たす場合、異常無しと判定する。
【００５４】
また、例えば、変数ｉが１０〜１０００の値の間で１０ずつ増加する変数である場合、ＣＰＵ１１は、２つのタイミングにおける変数の値が、「今回の変数の値＝前回の変数の値＋１０」の条件を満たす場合、異常無しと判定する。
【００５５】
またさらに、複雑な条件を加えることができる。例えば、「前回の変数の値＜今回の変数の値≦前回の変数の値×１．１」という条件を設定する場合、ＣＰＵ１１は、変数の値が増加傾向であり、且つ、増加の度合いが１０％以内であるか否かの判定を行うことができる。
【００５６】
上記したように、監視するメモリ領域の用途に応じた変数の値の時間的変化に基づいて判定の為の式、即ち判定プログラムを設定することにより、より柔軟に精度の高い異常検出処理を行うことができる。
【００５７】
図７は、図１及び図２に示す端末装置１における設定処理について説明する為のフローチャートである。  
ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、監視対象の領域の設定登録を行う（ステップＳ１１）。即ち、ＣＰＵ１１は、入力されるアドレス及びサイズを用途判別テーブル１７２に登録する。ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、用途情報の設定登録を行う（ステップＳ１２）。即ち、ＣＰＵ１１は、入力される変数及び用途情報を用途判別テーブル１７２に登録する。
【００５８】
また、ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、判定ロジックの登録を行う（ステップＳ１３）。即ち、ＣＰＵ１１は、入力操作により選択される判定プログラムを示す情報と、ステップＳ１２において入力される用途情報とを対応付けて判定ロジックテーブルに登録する。
【００５９】
図８は、図１及び図２に示す端末装置１における異常検出処理について説明する為のフローチャートである。
【００６０】
まずＣＰＵ１１は、デバッグＩ／Ｆ１８を介してソフトウェア１９を読み込み、ＲＡＭ１６上にコンパイルする。
【００６１】
ＣＰＵ１１は、監視プログラム１７１を実行し（ステップＳ１４）、異常検出処理を開始する。ＣＰＵ１１は、用途判別テーブル１７２からアドレス、サイズ、変数名、及び用途情報を読み出し、予め設定されるタイミングにおいて、読み出したアドレスとサイズとに基づいてＲＡＭ１６上の変数の値を読み出す（ステップＳ１５）。
【００６２】
ＣＰＵ１１は、読み出した用途情報に応じた判定ロジックを実行する（ステップＳ１６）。この為に、ＣＰＵ１１は、判定ロジックテーブル１７３を参照し、読み出した用途情報に対応付けられている判定プログラムを示す情報を読み出し、判定プログラムを判定プログラム格納部１７４から読み出し、実行する。
【００６３】
ＣＰＵ１１は、読み出した判定プログラムと変数の値とに基づいて異常を検出する（ステップＳ１７）。即ち、ＣＰＵ１１は、異なるタイミングにおいて取得される少なくとも２つ以上の変数の値に基づいて変数の値の時間的変化を確認し、この時間的変化が読み出した判定プログラムに対応するものであるか否かを判定する。
【００６４】
ＣＰＵ１１は、変数の時間的変化が、判定プログラムに応じた変化ではない場合、異常を検出する（ステップＳ１７、ＹＥＳ）。
【００６５】
ＣＰＵ１１は、異常を検出する場合、警告を操作者に報知する（ステップＳ１８）。ＣＰＵ１１は、例えば、ディスプレイ１３に異常を検出したことを示す情報を表示し、操作者に報知する。
【００６６】
ＣＰＵ１１は、例えば、操作入力などに基づいて、監視終了か否かを判定する（ステップＳ１９）。ＣＰＵ１１は、例えばキー入力などにより異常検出処理が終了される操作が入力されるか否か判定する。
【００６７】
監視終了の操作入力が無い場合、ＣＰＵ１１は、ステップＳ１５に移行し、次のタイミングを待つ待機状態に移行する。また、監視終了の操作入力が有る場合、ＣＰＵ１１は、処理を終了する。
【００６８】
上記したように、本実施形態に係る異常検出装置１は、変数の用途に応じて異なる判定ロジックを予め準備し、変数に対応する判定ロジックを用いて変数の値の解析を行い、異常を検出する。これにより、変数の特性に応じて変数の値を監視し、異常を検出することができる。
【００６９】
この結果、異常を見逃す、誤検知するという可能性を抑えることができ、精度を高めることができる。この結果、より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供することができる。
【００７０】
なお、上記した実施形態では、判定基準としての判定プログラムとして、カウンタ（＋）、カウンタ（−）、及び定数を例にあげて説明したが、これに限定されない。判定プログラムは、変数の用途に応じて適宜設定されるものであり、用途に応じたものであれば如何なるものであっても判定プログラムとして用いることができる。
【００７１】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【符号の説明】
【００７２】
１…端末装置、１１…ＣＰＵ、１２…入出力部、１３…ディスプレイ、１４…キーボード、１５…ＲＯＭ、１６…ＲＡＭ、１７…記憶部、１７１…監視プログラム、１７２…用途判別テーブル、１７３…判定ロジックテーブル、１７４…判定プログラム、１７５…データ格納部。
【図１】
2011065476.tif 000003
【図２】
2011065476.tif 000004
【図３】
2011065476.tif 000005
【図４】
2011065476.tif 000006
【図５】
2011065476.tif 000007
【図６】
2011065476.tif 000008
【図７】
2011065476.tif 000009
【図８】
2011065476.tif 000010