(57)【要約】      （修正有）【課題】より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供する。【解決手段】異常検出装置は、ソフトウェアを実行して処理データをメモリ上に展開し、前記メモリのデータ値とデータ値を記憶する時間を示す時間情報Ｔとを複数記憶する。異常検出装置は、記憶する複数のデータ値と時間情報とに基づいて一次近似直線Ｂを算出し、複数のデータ値に基づいて標準誤差Ｚを算出し、前記一次近似直線Ｂと前記標準誤差Ｚと、記憶する１つのデータ値とに基づいて危険値到達直線Ｄを算出する。異常検出装置は、前記危険値到達直線Ｄと予め設定される危険値Ｆとに基づいて異常を検出する。【選択図】図４
2011065475.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアを実行して処理データをメモリ上に展開するソフトウェア実行部と、
前記メモリのデータ値とデータ値を記憶する時間を示す時間情報とを複数記憶する記憶部と、
前記記憶部により記憶する複数のデータ値と時間情報とに基づいて一次近似直線を算出する一次近似直線算出部と、
前記記憶部により記憶する複数のデータ値に基づいて標準誤差を算出する標準誤差算出部と、
前記一次近似直線と前記標準誤差と、前記記憶部により記憶する１つのデータ値とに基づいて危険値到達直線を算出する危険値到達直線算出部と、
前記危険値到達直線と予め設定される危険値とに基づいて異常を検出する異常検出部と、
を具備することを特徴とする異常検出装置。
【請求項２】
前記異常検出部は、前記危険値到達直線と前記危険値とに基づいて、前記メモリのデータ値が前記危険値に到達する危険値到達時間を算出し、前記危険値到達時間に基づいて異常を検出することを特徴とする請求項１に記載の異常検出装置。
【請求項３】
前記記憶部は、予め設定されるタイミングに基づいてデータ値を記憶することを特徴とする請求項１に記載の異常検出装置。
【請求項４】
前記記憶部は、データ値を記憶するタイミングに応じた時間情報をデータ値に対応付けて記憶することを特徴とする請求項３に記載の異常検出装置。
【請求項５】
前記異常検出部により異常を検出する場合、前記危険値到達時間に基づいて警告方法を選択し、選択した警告方法により警告を報知する警告部をさらに具備することを特徴とする請求項２に記載の異常検出装置。
【請求項６】
ソフトウェアを実行して処理データをメモリ上に展開し、
前記メモリのデータ値とデータ値を記憶する時間を示す時間情報とを複数記憶し、
前記記憶した複数のデータ値と時間情報とに基づいて一次近似直線を算出し、
前記記憶した複数のデータ値に基づいて標準誤差を算出し、
前記一次近似直線と前記標準誤差と、前記記憶した１つのデータ値とに基づいて危険値到達直線を算出し、
前記危険値到達直線と予め設定される危険値とに基づいて異常を検出する、
ことを特徴とする異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ソフトウェアにおける異常を検出するに基づいて異常検出装置、及び異常検出方法に関する。
【背景技術】
【０００２】
コンピュータのプログラムを実行し、正しく動作するか否かを確認するソフトウェアテストが一般的に行われている。ソフトウェアテストは、プログラム中のバグ（欠陥）をできる限り多く発見することを目的として行われる。
【０００３】
ソフトウェアによる処理を行う場合、ソフトウェアのプログラムは、プロセス毎にメモリ領域を確保する。また、プログラムは、プロセスの処理を終了する場合、当該プロセスの処理用に確保したメモリ領域を開放する。しかし、プログラムにおけるバグにより、プロセスを終了したにも係らず、メモリ領域を開放しないメモリリークが発生する場合がある。メモリリークが発生する場合、メモリ不足による異常終了、及び処理速度の低下などが発生する。
【０００４】
特許文献１には、ファイルに格納された現在のリソース使用量に基づいて一次近似式を算出し、リソースが危険値に達する時間を算出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１８２６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
リソース（データ値）は、上記の特許文献１に記載されている技術により算出した一次近似式をはずれて変化する可能性がある。即ち、データ値の変化量に誤差が存在する。
【０００７】
このような場合、特許文献１に記載されている技術では、危険予測を正確に行う事ができない可能性があるという問題がある。例えば、データ値が一次近似式により想定される値より大きく増加する場合、データ値が予想より早く危険値に到達する可能性がある。
【０００８】
そこで、本発明の目的は、より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一実施形態としての異常検出装置は、ソフトウェアを実行して処理データをメモリ上に展開するソフトウェア実行部と、前記メモリのデータ値とデータ値を記憶する時間を示す時間情報とを複数記憶する記憶部と、前記記憶部により記憶する複数のデータ値と時間情報とに基づいて一次近似直線を算出する一次近似直線算出部と、前記記憶部により記憶する複数のデータ値に基づいて標準誤差を算出する標準誤差算出部と、前記一次近似直線と前記標準誤差と、前記記憶部により記憶する１つのデータ値とに基づいて危険値到達直線を算出する危険値到達直線算出部と、前記危険値到達直線と予め設定される危険値とに基づいて異常を検出する異常検出部と、を具備する。
【００１０】
また、本発明の一実施形態としての異常検出方法は、ソフトウェアを実行して処理データをメモリ上に展開し、前記メモリのデータ値とデータ値を記憶する時間を示す時間情報とを複数記憶し、前記記憶した複数のデータ値と時間情報とに基づいて一次近似直線を算出し、前記記憶した複数のデータ値に基づいて標準誤差を算出し、前記一次近似直線と前記標準誤差と、前記記憶した１つのデータ値とに基づいて危険値到達直線を算出し、前記危険値到達直線と予め設定される危険値とに基づいて異常を検出する。
【発明の効果】
【００１１】
この発明の一形態によれば、より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の一実施形態に係るソフトウェアのテストを行う端末装置の構成例について説明するためのブロック図である。
【図２】図２は、図１に示す記憶部に記憶されるファイルの例について説明するための説明図である。
【図３】図３は、図２に示すメモリステータス格納部に格納されるデータの例について説明するための説明図である。
【図４】図４は、図３に示すデータに基づいて行われる異常検出処理の例について説明する為の説明図である。
【図５】図５は、図１及び図２に示す端末装置において行われる異常検出処理について説明するためのフローチャートである。
【図６】図６は、図２に示すメモリステータス格納部に格納されるデータの他の例について説明するための説明図である。
【図７】図７は、図６に示すデータに基づいて行われる異常検出処理の他の例について説明する為の説明図である。
【図８】図８は、図７に示すグラフについて説明する為の説明図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、本発明の一実施形態に係る異常検出方法、及び異常検出装置について詳細に説明する。
【００１４】
図１は、本発明の一実施形態に係るアプリケーションのテストを行う端末装置１の構成例について説明するためのブロック図である。  
図１に示すように、端末装置１は、ＣＰＵ１１、入出力部１２、ディスプレイ１３、キーボード１４、ＲＯＭ１５、ＲＡＭ１６、記憶部１７、及びデバッグＩ／Ｆ１８など備える。
【００１５】
ＣＰＵ１１は、端末装置１全体の制御を司る制御部として機能する。ＣＰＵ１１は、ＲＯＭ１５あるいは記憶部１７に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【００１６】
入出力部１２は、例えばＬＡＮなどを介して外部の機器と通信を行うためのインタフェース、または、記憶媒体を接続可能なインタフェースにより構成される。  
ディスプレイ１３は、ＣＰＵ１１の制御により種々の情報を表示する。キーボード１４は、端末装置１の操作者による操作を操作信号として受け取る。
【００１７】
ＲＯＭ１５は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＣＰＵ１１は、ＲＯＭ１５、または記憶部１７に記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【００１８】
ＲＡＭ１６は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１６は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１６は、入出力部１２を介して受信したデータを一時的に格納する。また、ＲＡＭ１６は、ＣＰＵ１１が実行するプログラムを一時的に格納する。
【００１９】
記憶部１７は、例えば、ＥＥＰＲＯＭまたはＨＤＤなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。
【００２０】
デバッグＩ／Ｆ１８は、ソフトウェア１９とのデータの送受信を行うためのインタフェースである。デバッグＩ／Ｆ１８は、ソフトウェア１９のデータの入出力を管理する。ソフトウェア１９は、操作入力のデータに対して処理結果を出力するソフトウェアである。ＣＰＵ１１は、ソフトウェア実行部として機能する。ＣＰＵ１１は、ソフトウェア１９を実行することにより、所定の処理を行う。
【００２１】
また、記憶部１７は、例えば図２に示すようなファイルを記憶する。  
図２は、図１に示す記憶部１７に記憶されているファイルの例について説明するための説明図である。
【００２２】
図２に示すように、記憶部１７は、シンボルファイル１７１、記録用プログラム１７２、メモリステータス格納部１７３、及び解析用プログラム１７４などを記憶する。なお、ＣＰＵ１１は、記録用プログラム１７２を実行することにより、記憶処理を行う。また、ＣＰＵ１１は、解析用プログラム１７４を実行することにより、解析処理を行う。
【００２３】
シンボルファイル１７１は、ソフトウェア１９のソースコード及びそのアドレスとＲＡＭ１６上のアドレスとを対応付けるファイルである。ＣＰＵ１１は、ソフトウェア１９をＲＡＭ１６上にコンパイルする場合、シンボルファイル１７１を生成し、記憶部１７に記憶する。ＣＰＵ１１は、ＲＡＭ１６上のアドレスに基づいて、ソフトウェア１９におけるソースコード及びそのアドレスを認識することができる。
【００２４】
記録用プログラム１７２は、ＲＡＭ１６の値（データ値）をメモリステータス格納部１７３に格納する為のプログラムである。ＣＰＵ１１は、ソフトウェア１９を実行する場合、同時に記録用プログラム１７２を実行する。
【００２５】
ＣＰＵ１１は、記録用プログラム１７２を実行する場合、予め設定されるタイミングに基づいて、ソフトウェア１９により使用されるＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶する。
【００２６】
なお、ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、ＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶するタイミングを設定する。例えば、ＣＰＵ１１は、所定時間毎にＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶するように設定する。また、例えば、ＣＰＵ１１は、所定時刻にＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶するように設定する。
【００２７】
メモリステータス格納部１７３は、記録用プログラム１７２により記憶されるＲＡＭ１６のデータ値を保持する。記録用プログラム１７２によりＲＡＭ１６のデータ値が複数回記憶される場合、メモリステータス格納部１７３は、ＲＡＭ１６のデータ値を複数保持する。
【００２８】
図３は、メモリステータス格納部１７３に格納されるデータの例について説明するための説明図である。  
図３に示すように、メモリステータス格納部１７３は、複数のデータ値を格納する。ここでは、１０分毎にＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶する例について説明する。
【００２９】
メモリステータス格納部１７３は、各データ値がメモリステータス格納部１７３に記憶されたタイミングを示す情報を各データ値に対応付けて記憶する。
【００３０】
例えば、所定時間毎にＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶する構成の場合、ＣＰＵ１１は、ソフトウェア１９を実行してからの経過時間を示す情報（時間情報）をデータ値に対応付けてメモリステータス格納部１７３に記憶する。即ち、記憶部１７のメモリステータス格納部１７３は、ＲＡＭ１６のデータ値とデータ値を記憶する時間を示す時間情報とを複数記憶する。
【００３１】
また、例えば、所定時刻にＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶する構成の場合、ＣＰＵ１１は、現時刻を示す情報をデータ値に対応付けてメモリステータス格納部１７３に記憶する。
【００３２】
図３に示す例によると、データ値は、ソフトウェア１９を実行した時点で「１０」、ソフトウェア１９を実行してから１０分後に「２００」、２０分後に「３０１」、３０分後に「４９８」、４０分後に「６８８」、５０分後に「９５０」、６０分後に「１１００」、と変化する。
【００３３】
ＣＰＵ１１は、時間に対するデータ値の変化に基づいて、異常を検出する。この場合、ＣＰＵ１１は、異常検出部として機能する。
【００３４】
ＣＰＵ１１は、異常検出を行う為に解析用プログラム１７４を実行する。解析用プログラム１７４は、メモリステータス格納部１７３に格納されるデータ値を解析するためのプログラムである。ＣＰＵ１１は、ソフトウェア１９を実行する場合、同時に解析用プログラム１７４を実行する。
【００３５】
ＣＰＵ１１は、解析用プログラム１７４を実行する場合、解析部として機能する。ＣＰＵ１１は、記憶用プログラム１７２によりデータ値をメモリステータス格納部１７３に記憶する場合、解析処理を行う。
【００３６】
ＣＰＵ１１は、解析処理を行う場合、メモリステータス格納部１７３に記憶されている複数のデータ値と各データ値が記憶された時間とに基づいて一次近似直線（例えば、回帰直線）を算出する。また、ＣＰＵ１１は、メモリステータス格納部１７３に記憶されている複数のデータ値に基づいて標準誤差を算出する。さらに、ＣＰＵ１１は、算出した回帰直線の傾きと、算出した標準誤差とに基づいて危険値到達直線を算出する。この場合、ＣＰＵ１１は、一次近似直線算出部、標準誤差算出部、及び危険値到達直線算出部として機能する。
【００３７】
また、ＣＰＵ１１は、異常検出部として機能する。ＣＰＵ１１は、算出した危険到達直線と予め設定される危険値、及び判定基準に基づいて、異常検出処理を行う。さらに、ＣＰＵ１１及びディスプレイ１３は、警告部として機能する。例えば、異常検出処理において異常を検出する場合、ＣＰＵ１１は、警告をディスプレイ１３に表示し、端末装置１の操作者に異常を検出したことを報知する。
【００３８】
ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、あるデータ値の値である危険値を設定する。また、ＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、判定基準を設定する。
【００３９】
図４は、データ値と時間との関係を表すグラフである。  
図４に示すグラフＡは、図３に示すデータ値と時間に基づいてプロットした点を繋いだグラフである。即ち、グラフＡは、ＲＡＭ１６のデータ値の時間変化を示すグラフである。
【００４０】
ＣＰＵ１１は、グラフＡの各点の値に基づいて、例えば最小二乗法を用いることにより、回帰直線Ｂを算出する。回帰直線Ｂは、データ値をＹ、時間をＸとする場合、Ｙ＝ａＸ＋ｂという関係を有する。ａは、回帰直線Ｂの傾きである。また、ｂは、回帰直線Ｂの切片である。
【００４１】
また、ＣＰＵ１１は、グラフＡの各点の値に基づいて、標準誤差Ｚを算出する。標準誤差Ｚは、データ値の標準となるばらつきの大きさである。
【００４２】
さらにＣＰＵ１１は、回帰直線Ｂと標準誤差Ｚとに基づいて、危険値到達直線Ｄを算出する。例えば、ＣＰＵ１１は、最後にメモリステータス格納部１７３に格納したデータ値、即ち、最新のデータ値の値に標準誤差Ｚを加算した値の点を通り、傾きが算出した回帰直線Ｂの傾きａである危険値到達直線Ｄを算出する。
【００４３】
図４に示す例によると、ＣＰＵ１１は、最新のデータ値をプロットした点Ｃから標準誤差Ｚを加算した点Ｅをプロットする。ＣＰＵ１１は、点Ｅを通り、且つ傾きが傾きａである直線を危険値到達直線Ｄと特定する。即ち、危険値到達直線Ｄは、Ｙ＝ａＸ＋ｂ＋Ｚという関係を有する。
【００４４】
ＣＰＵ１１は、危険値到達直線Ｄと予め設定される危険値とに基づいて、危険値到達時間を算出する。ＣＰＵ１１は、図４に示すように、危険値到達直線Ｄと危険値のラインとの交点Ｆにおける時間を危険値到達時間Ｇを算出する。危険値到達時間Ｇは、危険値到達直線ＤのＹに危険値を代入することによりＸとして算出する。ＣＰＵ１１は、最後にデータ値を保存した時間と危険値到達時間Ｇとに基づいて、データ値が危険値に到達するまでの時間Ｔを算出する。
【００４５】
ＣＰＵ１１は、算出した時間Ｔと、予め設定される判定基準とに基づいて、危険かどうかを判定する。判定基準は、時間と警告方法とを対応付けた情報である。例えば、ＣＰＵ１１は、算出した時間Ｔが１０分未満である場合にエラーダイアログをディスプレイ１３に表示するように設定する。
【００４６】
また、例えば、ＣＰＵ１１は、算出した時間Ｔが１０分乃至３０分である場合にログを記憶部１７に保存するように設定する。このログは、危険値に近い値にデータ値が達したことを示す情報である。端末装置１は、キーボード１４により所定の操作が行われた場合に記憶部１７に保存されているログをディスプレイ１３に表示する。
【００４７】
また、例えば、ＣＰＵ１１は、算出した時間Ｔが３０分以上である場合、ログを保存せず、警告を表示せずに異常検出処理を継続する。
【００４８】
図３及び図４に示す例によると、回帰直線Ｂは、Ｙ＝１８．４Ｘ−２０．１である。即ち、回帰直線Ｂの傾きａ＝１８．４である。また、回帰直線Ｂの切片ｂ＝−２０．１である。また、標準誤差Ｚは、１５１．１である。この結果、危険値到達直線Ｄは、Ｙ＝１８．４Ｘ＋１４７．１である。
【００４９】
図４に示す例では、危険値＝１５００である。そこで、Ｙ＝１５００を危険値到達直線Ｄの式に代入する。これにより、ＣＰＵ１１は、危険値到達時間Ｇ＝７３．５（分）を算出することができる。ＣＰＵ１１は、算出した危険値到達時間Ｇ＝７３．５（分）から最後にデータ値を保存した時間＝６０（分）を減算し、時間Ｔ＝１３．５（分）を算出する。この場合、時間Ｔは上記の時間Ｔ＝１０分乃至３０分の条件に適合する為、ＣＰＵ１１は、ログを記憶部１７に記憶する処理を行う。
【００５０】
図５は、図１及び図２に示す端末装置において行われる異常検出処理について説明するためのフローチャートである。  
まずＣＰＵ１１は、デバッグＩ／Ｆ１８を介してソフトウェア１９を読み込み、ＲＡＭ１６上にコンパイルする。この場合、ＣＰＵ１１は、ＲＡＭ１６のアドレスと、ソフトウェア１９のソースコードとを対応付けてシンボルファイル１７１を生成し、記憶部１７に格納する。
【００５１】
また、この際、ＣＰＵ１１は、例えば記憶部１７に記憶される設定データを用いて記憶用プログラム１７２及び解析用プログラム１７４の設定処理を行う（ステップＳ１１）。
【００５２】
ここでは、ＣＰＵ１１は、記憶用プログラム１７２に対してＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶するタイミングを設定する。また、ＣＰＵ１１は、危険値、及び判定基準を解析用プログラム１７４に設定する。
【００５３】
この為にＣＰＵ１１は、キーボード１４などにより入力される情報に基づいて、ＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶するタイミング、危険値、及び判定基準などを設定する為の設定データを生成し、記憶部１７に記憶する。
【００５４】
ＣＰＵ１１は、設定したタイミングにおいてＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶する（ステップＳ１２）。
【００５５】
ＣＰＵ１１は、ステップＳ１２においてメモリステータス格納部１７３に記憶したデータ値が、予め設定した危険値以上であるか否か判定する。（ステップＳ１３）。
【００５６】
データ値が、予め設定した危険値未満である場合（ステップＳ１３、ＮＯ）、ＣＰＵ１１は、メモリステータス格納部１７３に記憶されている複数のデータ値と各データ値が記憶された時間とに基づいて回帰直線Ｂ及び標準誤差Ｚを算出する（ステップＳ１４）。なお、メモリステータス格納部１７３に格納されているデータ値が１つである場合、ＣＰＵ１１は、ステップＳ１２に移行し、次のタイミングを待つ。
【００５７】
ＣＰＵ１１は、算出した回帰直線Ｂの傾きａと、算出した標準誤差Ｚとに基づいて危険値到達直線Ｄを算出する（ステップＳ１５）。
【００５８】
ＣＰＵ１１は、算出した危険到達直線Ｄと予め設定される危険値とに基づいて危険値到達時間Ｇを算出する（ステップＳ１６）。
【００５９】
ＣＰＵ１１は、最後にデータ値を保存した時間と危険値到達時間Ｇとに基づいて、データ値が危険値に到達するまでの時間Ｔを算出する（ステップＳ１７）。
【００６０】
算出した時間Ｔが３０分以上である場合、ＣＰＵ１１は、ログを保存せず、警告を表示せずにステップＳ１２に移行し、異常検出処理を継続する。
【００６１】
算出した時間Ｔが１０分乃至３０分である場合、ＣＰＵ１１は、ログを記憶部１７に保存する（ステップＳ１８）。ＣＰＵ１１は、ログを保存した後、ステップＳ１２に移行し、異常検出処理を継続する。
【００６２】
算出した時間Ｔが１０分未満である場合、ＣＰＵ１１は、異常を検出し、エラーダイアログをディスプレイ１３に表示し、処理を終了する（ステップＳ１９）。また、ステップＳ１３において、データ値が、予め設定した危険値以上であると判定した場合（ステップＳ１３、ＹＥＳ）、ＣＰＵ１１は、異常を検出し、エラーダイアログをディスプレイ１３に表示し、処理を終了する（ステップＳ１９）。
【００６３】
さらに、ＣＰＵ１１は、異常を検出したＲＡＭ１６上のアドレスに基づいてバグを含む可能性のあるソースコードを特定する。即ち、ＣＰＵ１１は、シンボルファイル１７１を参照し、受信するアドレスを検索し、検索したアドレスに対応付けられているソースコードに関する情報を抽出する。
【００６４】
上記したように、本実施形態に係る異常検出装置１は、予め設定されるタイミングでＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶する。また、異常検出装置１は、メモリステータス格納部１７３に記憶した複数のデータ値に基づいて、回帰直線Ｂ及び標準誤差Ｚを算出する。さらに、異常検出装置としての端末装置１は、回帰直線Ｂ及び標準誤差Ｚに基づいて、危険値到達直線Ｄを算出する。またさらに、端末装置１は、予め設定される危険値と危険値到達直線Ｄとに基づいて、データ値が危険値に到達するまでの時間Ｔを算出する。端末装置１は、時間Ｔと予め設定される判定基準とに基づいて、異常を検出する。
【００６５】
このように、一次近似直線に標準誤差を加味し、データの変化の傾向を求めることにより、データの揺らぎを考慮した異常検出を行う事ができる。これにより、異常を検出し損ねる可能性を抑える事ができる。この結果、より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供することができる。
【００６６】
なお、上記した実施形態では、判定基準として時間Ｔが１０分未満の場合、１０分乃至３０分の場合、及び３０分以上の場合を例に挙げて説明したが、これに限定されない。判定基準として設定する時間は任意であり、如何なる設定であってもよい。例えば、エラーダイアログを表示する判定の時間を長く設定する場合、端末装置１は、より早い段階で異常を検出する。
【００６７】
また、上記した実施形態では、危険値＝１５００として説明したが、危険値は如何なる値であってもよい。なお、危険値の値が低いほど、端末装置１は、より早い段階で異常を検出する。
【００６８】
次に、異常検出処理の他の例について説明する。  
図６は、メモリステータス格納部１７３に格納されるデータの他の例について説明するための説明図である。
【００６９】
図６に示すように、メモリステータス格納部１７３は、複数のデータ値を格納する。ここでは、１０分毎に６００分の間、ＲＡＭ１６のデータ値をメモリステータス格納部１７３に記憶する例について説明する。
【００７０】
また、図７は、図６に示すデータ値と時間との関係を表すグラフである。  
図７に示すグラフＨは、図６に示すデータ値と時間に基づいてプロットした点を繋いだグラフである。即ち、グラフＨは、ＲＡＭ１６のデータ値の時間変化を示すグラフである。
【００７１】
ＣＰＵ１１は、図６及び図７に示すデータに基づいて、異常検出処理を行う。ＣＰＵ１１は、異常検出処理を行う為に解析用プログラム１７４を実行する。まず、ＣＰＵ１１は、メモリステータス格納部１７３に格納されているデータ値を複数の区間に区切る。図６に示す例では、ＣＰＵ１１は、ソフトウェア１９を実行してから、１０分から２００分の間に記憶したデータ値を第１の区間のデータ値１７３１、２１０分から４００分の間に記憶したデータ値を第２の区間のデータ値１７３２、４１０分から６００分の間に記憶したデータ値を第３の区間のデータ値１７３３、また、１０分から６００分の間に記憶したデータ値を全区間のデータ値として区切っている。ＣＰＵ１１は、区切った各区間毎に解析処理を行う。
【００７２】
直線Ｉは、第１の区間のデータ値１７３１に基づいて算出した危険値到達直線Ｉである。なお、データ値から危険値到達直線を算出する為の方法は、図３及び図４に示す例と同様であるので省略する。直線Ｊは、第２の区間のデータ値１７３２に基づいて算出した危険値到達直線Ｊである。直線Ｋは、第３の区間のデータ値１７３３に基づいて算出した危険値到達直線Ｋである。
【００７３】
またさらに、ＣＰＵ１１は、第１の区間、第２の区間、及び第３の区間のデータ値に基づいて危険値到達直線Ｌを算出する。
【００７４】
ＣＰＵ１１は、予め設定される危険値と、算出した危険到達直線Ｉ、Ｊ、Ｋ、及びＬのそれぞれとに基づいて危険値到達時間を算出する。ＣＰＵ１１は、各区間毎に算出した危険値到達時間から、各区間の最後に記憶したデータ値の時間を減算し、各区間の最後のタイミングからデータ値が危険値に到達するまでの時間を算出する。
【００７５】
ＣＰＵ１１は、予め設定される判定基準と、上記の処理により各区間毎に算出したデータ値が危険値に到達するまでの時間とに基づいて、危険かどうかを判定する。なお、判定基準は、図３及び図４に示す判定基準と同様であるので、説明を省略する。なお、本例によると、第１の区間、第２の区間、第３の区間、及び全区間の各区間毎に危険かどうかの判定を行う事ができる。この為、例えば、データ値の増減の度合いが大きく変化する場合であっても、高い精度で異常を検出することができる。
【００７６】
図８は、図６及び図７に示すデータについて説明する為の図である。ここでは、危険値＝５０００と設定した場合について説明する。  
図６に示す第１の区間のデータに基づいて演算を行う場合、ＣＰＵ１１は、回帰直線がＹ＝７．０Ｘ＋３６であり、標準誤差が１０３．２であり、危険値到達直線がＹ＝７．０Ｘ＋１３．２であり、危険値到達時間が７１２（分）である結果を取得する。この場合、ＣＰＵ１１は、データ値が危険値に達するまでの時間＝７１２−２００＝５１２（分）を算出する。
【００７７】
また、図６に示す第２の区間のデータに基づいて演算を行う場合、ＣＰＵ１１は、回帰直線がＹ＝−０．９Ｘ＋１４７．５であり、標準誤差が１５．１であり、危険値到達直線がＹ＝−０．９Ｘ＋１６８３．１であり、危険値到達時間が−３６８５（分）である結果を取得する。この場合、ＣＰＵ１１は、データ値が危険値に達するまでの時間＝−３６８５−４００＝−４０８５（分）を算出する。
【００７８】
また、図６に示す第３の区間のデータに基づいて演算を行う場合、ＣＰＵ１１は、回帰直線がＹ＝１．５Ｘ＋１３５．２であり、標準誤差が２１．８であり、危険値到達直線がＹ＝１．５Ｘ＋７２１．８であり、危険値到達時間が２８５２（分）である結果を取得する。この場合、ＣＰＵ１１は、データ値が危険値に達するまでの時間＝２８５２−６００＝２２５２（分）を算出する。
【００７９】
また、図６に示す全区間のデータに基づいて演算を行う場合、ＣＰＵ１１は、回帰直線がＹ＝２．７Ｘ＋２３．９であり、標準誤差が７３．３であり、危険値到達直線がＹ＝２．３Ｘ＋５３．３であり、危険値到達時間が１８３２（分）である結果を取得する。この場合、ＣＰＵ１１は、データ値が危険値に達するまでの時間＝１８３２−６００＝１２３２（分）を算出する。
【００８０】
ＣＰＵ１１は、予め設定される判定基準と、上記の方法により算出した、データ値が危険値に達するまでの時間と、に基づいて、異常を検出する。
【００８１】
上記したように、本例によると、異常検出装置としての端末装置１は、予め設定される判定基準と、各区間毎のデータ値が危険値に到達するまでの時間とに基づいて、危険かどうかを判定する。これにより、データ値の増減の度合いが大きく変化する場合であっても、高い精度で異常を検出することができる。この結果、より高精度に異常を検出することができる異常検出装置、及び異常検出方法を提供することができる。
【００８２】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【符号の説明】
【００８３】
１…端末装置、１１…ＣＰＵ、１２…入出力部、１３…ディスプレイ、１４…キーボード、１５…ＲＯＭ、１６…ＲＡＭ、１７…記憶部、１９…ソフトウェア、１７１…シンボルファイル、１７２…記録用プログラム、１７３…メモリステータス格納部、１７４…解析用プログラム。
【図１】
2011065475.tif 000003
【図２】
2011065475.tif 000004
【図３】
2011065475.tif 000005
【図４】
2011065475.tif 000006
【図５】
2011065475.tif 000007
【図６】
2011065475.tif 000008
【図７】
2011065475.tif 000009
【図８】
2011065475.tif 000010