(57)【要約】【課題】少ない計算量で故障診断できる電子回路装置、故障診断装置、故障診断システム、及び故障診断プログラムを提供する。【解決手段】  電子回路装置が有する機能の一部を提供する中位プログラムと中位プログラムが提供する機能の一部を提供する下位プログラムとを、中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶装置と、下位プログラムを故障診断した後に、診断対象とした下位プログラムに関連付けて記憶装置が記憶した中位プログラムを故障診断することを特徴とする故障診断装置とを備える。  これによれば、下位プログラムを中位プログラムによりも先に故障診断するため、下位プログラムに生じた故障原因により引起される故障を効率良く診断できる。【選択図】図１
2008262510.tif 000002
【特許請求の範囲】
【請求項１】
電子回路装置が有する機能の一部を提供する中位プログラムと前記中位プログラムが提供する機能の一部を提供する下位プログラムとを、前記中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶装置と、
前記下位プログラムを故障診断した後に、診断対象とした前記下位プログラムに関連付けて前記記憶装置が記憶した中位プログラムを故障診断することを特徴とする故障診断装置とを備えることを特徴とする故障診断システム。
【請求項２】
前記記憶装置は、前記中位プログラムと前記中位プログラムが提供する機能を含む機能を提供する上位プログラムとを、前記上位プログラムが記述する中位プログラムを実行する処理手順に基づいて関連付けて記憶し、
前記故障診断装置は、前記上位プログラムを故障診断した後に、実行状態が正常でないと診断した前記上位プログラムに関連付けて前記記憶装置が記憶した中位プログラム及び下位プログラムを故障診断することを特徴とする請求項１に記載の故障診断システム。
【請求項３】
電子回路装置が有する機能の一部を提供する中位プログラムと前記中位プログラムが提供する機能の一部を提供する下位プログラムとを、前記中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶手段と、
前記下位プログラムを故障診断した後に、診断対象とした前記下位プログラムに関連付けて前記記憶手段が記憶した中位プログラムを故障診断することを特徴とする故障診断手段とを備えることを特徴とする故障診断装置。
【請求項４】
電子回路装置が有する画像を処理する機能の一部を提供する中位プログラムと前記中位プログラムが提供する機能の一部を提供する下位プログラムとを、前記中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶手段と、
前記下位プログラムを故障診断した後に、診断対象とした前記下位プログラムに関連付けて前記記憶手段が記憶した中位プログラムを故障診断することを特徴とする故障診断手段とを備えることを特徴とする電子回路装置。
【請求項５】
コンピュータを、
電子回路装置が有する機能の一部を提供する中位プログラムと前記中位プログラムが提供する機能の一部を提供する下位プログラムとを、前記中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶手段と、
前記下位プログラムを故障診断した後に、診断対象とした前記下位プログラムに関連付けて前記記憶手段が記憶した中位プログラムを故障診断することを特徴とする故障診断手段として機能させることを特徴とする故障診断プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路装置、故障診断装置、故障診断システム、及び故障診断プログラムに関する。
【背景技術】
【０００２】
従来から、ソフトウェアが有する特定の機能を実現するために用いられるコンポネントに生じた障害を検出する検出方法が知られている（例えば、特許文献１）。
【０００３】
この検出方法は、ソフトウェアを実行するコンピュータシステムが有するプローブ機構がコンポネントへサービスを要求するステップと、所定時間間隔で要求に対する応答を検査するステップと、所定時間内にコンポネントから応答があるか否かに基づいて障害を検出するステップとを有することを特徴とする。
【０００４】
またこの検出方法は、階層木構造によりコンポネントがソフトウェアを構成する場合に、コンポネントが子を有するか否かを判断するステップと、子を有すると判断した場合には子へサービスを要求するステップとを更に有することを特徴とする方法である。
【特許文献１】特開平４‐２３０５３８
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的とするところは、少ない計算量で故障診断できる電子回路装置、故障診断装置、故障診断システム、及び故障診断プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明に係る故障診断システムは、電子回路装置が有する機能の一部を提供する中位プログラムと中位プログラムが提供する機能の一部を提供する下位プログラムとを、中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶装置と、下位プログラムを故障診断した後に、診断対象とした下位プログラムに関連付けて記憶装置が記憶した中位プログラムを故障診断することを特徴とする故障診断装置とを備えることを特徴としている。
【０００７】
上記構成において、記憶装置は、中位プログラムと中位プログラムが提供する機能を含む機能を提供する上位プログラムとを、上位プログラムが記述する中位プログラムを実行する処理手順に基づいて関連付けて記憶し、故障診断装置は、上位プログラムを故障診断した後に、実行状態が正常でないと診断した上位プログラムに関連付けて記憶装置が記憶した中位プログラム及び下位プログラムを故障診断する構成を採用できる。
【０００８】
本発明に係る故障診断装置は、電子回路装置が有する機能の一部を提供する中位プログラムと中位プログラムが提供する機能の一部を提供する下位プログラムとを、中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶手段と、下位プログラムを故障診断した後に、診断対象とした下位プログラムに関連付けて記憶手段が記憶した中位プログラムを故障診断することを特徴とする故障診断手段とを備えることを特徴としている。
【０００９】
本発明に係る電子回路装置は、電子回路装置が有する画像を処理する機能の一部を提供する中位プログラムと中位プログラムが提供する機能の一部を提供する下位プログラムとを、中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶手段と、下位プログラムを故障診断した後に、診断対象とした下位プログラムに関連付けて記憶手段が記憶した中位プログラムを故障診断することを特徴とする故障診断手段とを備えることを特徴としている。
【００１０】
本発明に係る故障診断プログラムは、電子回路装置が有する機能の一部を提供する中位プログラムと中位プログラムが提供する機能の一部を提供する下位プログラムとを、中位プログラムが記述する下位プログラムを実行する処理手順に基づいて関連付けて記憶する記憶手段と、下位プログラムを故障診断した後に、診断対象とした下位プログラムに関連付けて記憶手段が記憶した中位プログラムを故障診断することを特徴とする故障診断手段として機能させることを特徴としている。
【発明の効果】
【００１１】
請求項１の構成によれば、下位プログラムを中位プログラムによりも先に故障診断するため、下位プログラムに生じた故障原因により引起される故障を効率良く診断できる。
【００１２】
請求項２の構成によれば、実行状態が正常でないと診断された上位プログラムが実行手順を記述する中位プログラム及び下位プログラムを先に故障診断するため、プログラムに生じた故障原因により引起される故障を効率良く診断できる。
【００１３】
請求項３の構成によれば、下位プログラムを中位プログラムによりも先に故障診断するため、下位プログラムに生じた故障原因により引起される故障を効率良く診断できる。
【００１４】
請求項４の構成によれば、下位プログラムを中位プログラムによりも先に故障診断するため、画像を処理する下位プログラムに生じた故障原因により引起される故障を効率良く診断できる。
【００１５】
請求項５の構成によれば、下位プログラムを中位プログラムによりも先に故障診断するため、下位プログラムに生じた故障原因により引起される故障を効率良く診断できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
【実施例１】
【００１７】
図１は本発明に係る故障診断装置の一実施形態を示す機能ブロック図である。
故障診断装置１０００は、例えば、スキャン（画像入力）機能、プリント（画像出力）機能、ＦＡＸ通信機能、情報通信機能、又はコピー（複写）機能、並びに故障診断機能を有する複写機等で構成される電子回路装置である。
【００１８】
故障診断装置１０００は、電子回路装置である故障診断装置１０００がアプリケーション・プログラム（以下単に、アプリケーションという）を実行することで生じた故障を診断する。
【００１９】
尚、アプリケーションとは、故障診断装置１０００が有する機能を提供するために実行するプログラムである。また、アプリケーションは、例えば、画像入力機能、画像出力機能、ＦＡＸ通信機能、情報通信機能、又は複写機能等の画像を処理する機能を提供するために実行するプログラムを含む。
【００２０】
図１に示す故障診断装置１０００は、画像入力部１０１０、画像出力部１０１５、ＦＡＸ通信部１０２０、情報通信部１０２５、情報入力部１０３０、情報表示部１０３５、記憶部１０４０、制御部１０５０、及び故障診断部１０６０で構成され、それぞれの部はバス１００５を介して情報の授受が可能なように接続される。
【００２１】
画像入力部１０１０、画像出力部１０１５、ＦＡＸ通信部１０２０、情報通信部１０２５、情報入力部１０３０、情報表示部１０３５、記憶部１０４０、制御部１０５０、及び故障診断部１０６０が有する各機能は、故障診断装置１０００が実行するソフトウェア制御により実現される。
【００２２】
ここで、図２を参照して、ソフトウェア制御を実行するための故障診断装置１０００のハードウェア構成について説明する。図２は、このソフトウェア制御を実現するための故障診断装置１０００のハードウェアの一構成例を表す図である。
【００２３】
故障診断装置１０００は、例えば、ＣＰＵ（Central Processing Unit）等の演算部１００１、ＥＰＲＯＭ（Erasable Programmable Read-Only Memory）又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の読み出し専用メモリであるＲＯＭ１００２（Read-Only Memory ）、ＤＲＡＭ（Dynamic  RAM）又はＳＲＡＭ（Static  RAM）等の揮発性メモリ及びＮＶＲＡＭ（Non Volatile RAM）等の不揮発性メモリで構成されるＲＡＭ１００３（Random Access Memory）、並びにハードディスク等の外部記憶装置で構成される外部記憶部１００４で構成され、演算部１００１、ＲＯＭ１００２、ＲＡＭ１００３、及び外部記憶部１００４は互いにバス１００５によって接続している。
【００２４】
ソフトウェア制御は、ＲＯＭ１００２又は外部記憶部１００４に格納したプログラムであるアプリケーションを演算部１００１が読込み、読込んだアプリケーションに従って演算部１００１が演算を行うことにより上記各部の機能を実現する。なお、ＲＡＭ１００３には、演算結果のデータが書き込まれ、特にＮＶＲＡＭには、電源オフ時にバックアップが必要なデータが保存される。
【００２５】
ここで図１に戻り、故障診断装置１０００の構成について引続き説明を行う。
画像入力部１０１０は、例えば、スキャナで構成される。画像入力部１０１０は、例えば、印刷用紙等の印刷媒体に印刷された画像を光学的に読取り、読取った画像を記憶部１０４０に保存することで画像入力機能を提供する。
【００２６】
画像出力部１０１５は、例えば、プリンタで構成される。画像出力部１０１５は、記憶部１０４０が記憶する画像を、例えば、印刷用紙等の印刷媒体に印刷出力することで画像出力機能を提供する。
【００２７】
ＦＡＸ通信部１０２０は、例えば、ＦＡＸモデムで構成され、通信網１００に接続する。ＦＡＸ通信部１０２０は、例えば、Ｇ３又はＧ４プロトコルに従って通信網１００から画像を受信し、受信した画像を記憶部１０４０へ保存することでＦＡＸ送信機能を提供する。
【００２８】
また、ＦＡＸ通信部１０２０は、同様に、記憶部１０４０が記憶する画像を通信網１００へ送信することでＦＡＸ受信機能を提供する。尚、ＦＡＸ受信機能とＦＡＸ送信機能とを合わせてＦＡＸ通信機能という。
【００２９】
情報通信部１０２５は、例えば、ネットワークアダプタで構成され、通信網１００に接続する。情報通信部１０２５は、例えば、ＴＣＰ／ＩＰプロトコルに従って通信網１００から画像又は各種の情報を受信し、受信した画像又は各種の情報を記憶部１０４０へ保存することで情報受信機能を提供する。
【００３０】
また、情報通信部１０２５は、同様に、記憶部１０４０が記憶する画像又は情報を通信網１００へ送信することで情報送信機能を提供する。尚、情報受信機能と情報送信機能とを合わせて情報通信機能という。
【００３１】
通信網１００は、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、ＭＡＮ（Metropolitan Area Network）、又は公衆回線網で構成され、故障診断装置１０００に接続する。
【００３２】
情報入力部１０３０は、例えば、キーボード、マウス、又はタッチパネルで構成される。情報入力部１０３０は、故障診断装置１０００を使用する使用者に操作されて、各種の情報を入力する。尚、情報入力部１０３０が入力する情報は、電子回路装置１０００が有する機能の提供を命じる情報、及び診断対象とするアプリケーションを識別する情報を含む。
【００３３】
情報表示部１０３５は、例えば、ＣＲＴ（Cathode Ray Tube）、液晶ディスプレイ、又はプラズマディスプレイで構成される。情報表示部１０３５は、制御部１０４０又は故障診断部１０６０に制御されて、各種情報を表示する。尚、情報表示部１０３５が表示する情報については後述する。
【００３４】
記憶部１０４０は、例えば、ＲＯＭ１００２、ＲＡＭ１００３又は外部記憶部１００４で構成される。記憶部１０４０は、電子回路装置である故障診断装置１０００が実行するアプリケーション、及びアプリケーションが電子回路装置１０００を構成するハードウェアを制御するために利用するプログラムで構成されるＯＳ（Operating System）を記憶する。
【００３５】
また記憶部１０４０は、アプリケーション又はアプリケーションが提供する機能の一部を提供するプログラムであるコンポネントに故障の原因が生じているか否かを診断する（以下単に、コンポネントを故障診断するという）ためのプログラム（以下単に、テストモジュールという）を記憶する。
【００３６】
ここで図３を参照して、記憶部１０４０が記憶するアプリケーションについて説明する。図３は、アプリケーションの一構成例を表す図である。
【００３７】
アプリケーションＡＰは、アプリケーションＡＰが提供する機能の一部を提供するプログラムであるコンポネントＣＰによって構成される。尚、逆にいえば、アプリケーションＡＰが提供する機能は、コンポネントＣＰが提供する機能を含む。
【００３８】
具体的には、図３に示すアプリケーションＡＰ１は、アプリケーションＡＰ１が提供する機能の一部を提供するコンポネントＣＰ１１を実行する実行手順を記述する。
【００３９】
つまり図３は矢印を用いて、電子回路装置１０００がアプリケーションＡＰ１を実行する際に、電子回路装置１０００がコンポネントＣＰ１１を実行する（以下単に、アプリケーションＡＰ１はコンポネントＣＰ１１を呼び出すという）ことを表す。
【００４０】
同様に、アプリケーションＡＰ２は、アプリケーションＡＰ２が提供する機能の一部を提供するコンポネントＣＰ１１及び他部を提供するコンポネントＣＰ１２を呼び出す。
【００４１】
同様に、コンポネントＣＰ１１は、コンポネントＣＰ１１が提供する機能の一部を提供するコンポネントＣＰ２１及び他部を提供するコンポネントＣＰ２２で構成される。尚、逆にいえば、コンポネントＣＰ１１が提供する機能は、コンポネントＣＰ２１が提供する機能、及びコンポネントＣＰ２２が提供する機能を含む。また、コンポネントＣＰ１１は、コンポネントＣＰ１１及びコンポネントＣＰ２２を呼び出す。
【００４２】
以下同様に、コンポネントＣＰ１２はコンポネントＣＰ２２を、コンポネントＣＰ２１はコンポネントＣＰ３１から３３を、コンポネントＣＰ２２はコンポネントＣＰ３３及び３４を、コンポネントＣＰ３１はコンポネントＣＰ４１を、コンポネントＣＰ３２はコンポネントＣＰ４１及び４２を、コンポネントＣＰ３３はコンポネントＣＰ４１及び４３を、コンポネントＣＰ３４はコンポネントＣＰ４１、４３、及び４４を呼び出す。
【００４３】
コンポネントＣＰ４１から４４は、それぞれＯＳを構成する制御プログラムを呼び出す。尚、ＯＳを構成する制御プログラムは、電子回路装置１０００を構成するハードウェアを制御するためのプログラムを含む。
【００４４】
ここで、アプリケーションＡＰで構成されるプログラム群をアプリケーション層ＬＡＰと呼ぶ。また、アプリケーション層ＬＡＰに属するアプリケーションＡＰから直接的に呼び出されるコンポネント群を第１層のコンポネント層ＬＣＰ１という。
【００４５】
更に、第１層のコンポネント層ＬＣＰ１に属するコンポネントＣＰ１から直接的に呼び出されるコンポネント群を第２層のコンポネント層ＬＣＰ２といい、同様に順次、コンポネント層ＬＣＰを定義する。
【００４６】
ここで、特定のプログラムを中位プログラムとする場合には、中位プログラムを呼び出すプログラムを上位プログラムといい、中位プログラムが呼び出すプログラムを下位プログラムという。つまり、上位プログラム、中位プログラム、及び下位プログラム間の関係は相対的に定まる。
【００４７】
また、上位プログラム（又は中位プログラム）が属する層に対して中位プログラム（又は下位プログラム）が属する層を下位層という。逆に、中位プログラム（又は下位プログラム）が属する層に対して上位プログラム（又は中位プログラム）が属する層を上位層という。
【００４８】
具体的には、コンポネントＣＰ３４を中位プログラムとすると、コンポネントＣＰ３４を呼び出すコンポネントＣＰ２２を上位プログラムといい、コンポネントＣＰ３４が呼び出すコンポネントＣＰ４１、４３、及び４４を下位プログラムという。
【００４９】
また、中位プログラムであるコンポネントＣＰ３４が属する第３のコンポネント層ＬＣＰ３に対して下位プログラムであるコンポネントＣＰ４１、４３、及び４４が属する第４のコンポネント層ＬＣＰ４を下位層といい、上位プログラムであるコンポネントＣＰ２２が属する第２のコンポネント層ＬＣＰ２を上位層という。
【００５０】
更に同様に、コンポネントＣＰ１１を中位プログラムとすると、アプリケーションＡＰ１及びＡＰ２が上位プログラムとなり、コンポネントＣＰ２１及び２２が下位プログラムとなる。また同様に、第１のコンポネント層ＬＣＰ１に対してアプリケーション層ＬＡＰが上位層となり、第２のコンポネント層ＬＣＰ２が下位層となる。
【００５１】
上記実施例では、中位プログラムを直接的に呼び出すプログラムを上位プログラムといい、中位プログラムが直接的に呼び出すプログラムを下位プログラムというとして説明したが、これに限定される訳ではない。
【００５２】
中位プログラムを他のプログラムを介して間接的に呼び出すプログラムを上位プログラムとし、中位プログラムが他のプログラムを介して間接的に呼び出すプログラムを下位プログラムとする構成を採用できる。
【００５３】
この構成において、コンポネントＣＰ３４を中位プログラムとすると、コンポネントＣＰ３４をコンポネントＣＰ２２を介して間接的に呼び出すコンポネントＣＰ１１及びＣＰ１２を上位プログラムという。また、コンポネントＣＰ２２を中位プログラムとすると、コンポネントＣＰ２２がコンポネントＣＰ３３及びＣＰ３４を介して間接的に呼び出すコンポネントＣＰ４１から４４を下位プログラムという。
【００５４】
以下、特に断りがない場合には、中位プログラムを直接的に呼び出す上位プログラムを上位プログラムといい、中位プログラムが直接的に呼び出す下位プログラムを下位プログラムとして説明する。
【００５５】
尚、ＯＳを介して（実施例によっては介さずに）ハードウェアを制御するコンポネントＣＰ４１から４４は、コンポネントＣＰ４１から４４よりも上位の階層に属するコンポネントに比べて、ハードウェアに発生する不具合の影響を受け易い。よって、コンポネントＣＰ４１から４４は、コンポネントＣＰ４１から４４の上位プログラムに比べて、故障の原因が発生し易い。同様の理由から、より下位の階層に属するコンポネントの方が、より上位の階層に属するコンポネントに比べて、故障の原因が発生し易い。
【００５６】
ここで図１に戻り引き続き故障診断装置１０００の構成について説明する。
記憶部１０４０は、関連表と階層表と結果表とを記憶する。関連表とは、特定の上位（又は中位）プログラムであるコンポネントと、上位（又は中位）プログラムが直接的に呼び出す中位（又は下位）プログラムであるコンポネントとを、上位（又は中位）プログラムが記述する中位（又は下位）プログラムを実行する処理手順に基づいて関連付ける表である。
【００５７】
ここで表１を参照して、関連表について説明する。表１は、関連表の一例を示す表である。
【００５８】
【表１】
2008262510.tif 000003
【００５９】
表１に示す関連表は、中位プログラム名フィールド、テストモジュール名フィールド、下位プログラム名1フィールド、下位プログラム名2フィールド、及び下位プログラム名3フィールドを有している。
【００６０】
中位プログラム名フィールドは中位（又は上位）プログラムであるアプリケーション又はコンポネントを識別する名称を、テストモジュールカラム名フィールドは同一レコードの中位プログラム名フィールドに保存した名称で識別されるアプリケーション又はコンポネントに故障の原因が生じているか否かを診断するためのテストモジュールを識別する名称を保存する。
【００６１】
また、下位プログラム名1フィールド、下位プログラム名2フィールド、及び下位プログラム名3フィールドは、同一レコードの中位プログラム名フィールドに保存した名称で識別されるアプリケーション又はコンポネントが呼び出す下位（又は中位）プログラムを識別する名称をそれぞれ保存する。
【００６２】
上記実施例では、関係表は、下位（又は中位）プログラムの名称を保存するフィールドを３個有する場合について説明したが、これに限定される訳ではなく、中位（又は上位）プログラムが直接呼び出す下位（又は中位）プログラムの数のフィールドを有する。
【００６３】
尚、記憶部１０４０は、記憶部１０４０が記憶するアプリケーション及びコンポネント毎に、アプリケーション又はコンポネントの名称を中位プログラム名フィールドに保存した関連表を有する。また、これに限定される訳ではなく、関連表は、中位プログラム名フィールドをキーフィールドとし、アプリケーション及びコンポネント毎に１レコードを保存する構成を採用できる。
【００６４】
よって、記憶部１０４０は、記憶部１０４０が記憶する全てのアプリケーション及びコンポネントに関する複数の関連表を記憶することで、上位（又は中位）プログラムであるコンポネントと、上位（又は中位）プログラムが間接的に呼び出す中位（又は下位）プログラムであるコンポネントとを関連付けて記憶する。
【００６５】
次に表２を参照して、階層表について説明する。表２は、階層表の一例を示す表である。
【００６６】
【表２】
2008262510.tif 000004
【００６７】
表２に示す階層表は、名称フィールドと階層フィールドとを有する。名称フィールドはキーフィールドであり、アプリケーション又はコンポネントの名称を保存する。階層フィールドは同一レコードの名称フィールドに保存された名称で識別されるアプリケーション又はコンポネントが属する層を識別する情報を保存する。
【００６８】
尚、階層フィールドに保存された数字である「０」はアプリケーション層を、１以上の自然数「ｎ」は第ｎ層のコンポネント層を表す。また、階層表は、記憶部１０４０が記憶する全てのアプリケーション又はコンポネントの名称を名称フィールドに保存する。
【００６９】
次に表３を参照して、結果表について説明する。表３は、結果表の一例を示す表である。
【００７０】
【表３】
2008262510.tif 000005
【００７１】
表３に示す結果表は、コンポネント名フィールド、及び結果フィールドを有する。コンポネント名フィールドはコンポネントを識別する名称を保存し、結果フィールドは同一レコードのコンポネント名フィールドに保存した名称で識別されるコンポネントの診断の結果を保存する。
【００７２】
ここで図１に戻り引き続き故障診断装置１０００の構成について説明する。
【００７３】
記憶部１０４０は、画像入力部１０１０が入力した画像、ＦＡＸ通信部１０２０が受信した画像、若しくは情報通信部１０２５が受信した画像及び各種情報を記憶する。記憶部１０４０が記憶する画像は、画像出力部１０１５、ＦＡＸ通信部１０２０、又は情報通信部１０２５によって参照される。
【００７４】
制御部１０５０は、画像入力部１０１０、画像出力部１０１５、ＦＡＸ通信部１０２０、情報通信部１０２５、情報入力部１０３０、情報表示部１０３５、記憶部１０４０、及び故障診断部１０６０の実行を制御する。
【００７５】
具体例として、制御部１０５０が情報入力部１０３０からコピー機能の提供を命じる命令を取得した場合を挙げて説明する。制御部１０５０は、取得した命令に従って画像入力部１０１０の実行を制御した後に、画像入力部１０１０が入力した画像を出力するよう画像出力部１０１５を制御することで、コピー機能を提供する。尚、スキャン機能、プリント機能、ＦＡＸ通信機能、及び情報通信機能についても同様であるので説明を省略する。
【００７６】
また、制御部１０５０は、情報入力部１０３０から故障診断機能の提供を命じる命令を取得し、取得した命令に従って故障診断モードに移行する。次に、制御部１０５０は、故障診断部１０６０が後述する故障診断処理を実行するよう制御する。尚、故障診断モードとは、制御部１０５０が、故障診断に必要な命令及び情報以外の入力を情報入力部１０３０から受付けない状態をいう。
【００７７】
故障診断部１０６０は、後述する故障診断処理を実行することで、下位プログラムを故障診断した後に、診断対象とした下位プログラムに関連付けて記憶部１０４０が記憶した（下位プログラムを直接的又は間接的に呼び出す）中位プログラムを故障診断する。
【００７８】
ここで図４から６を参照して、故障診断部１０６０が実行する故障診断処理について説明する。図４から６は、故障診断部１０６０が実行する故障診断処理の一例を表すフローチャートである。
【００７９】
先ず、故障診断部１０６０は、情報入力部１０３０から、診断対象とするアプリケーション（以下単に、診断対象アプリケーションという）を識別する情報を取得する（ステップＳＴ０００１）。尚、アプリケーションを識別する情報はアプリケーション名を含む。次に、故障診断部１０６０は、記憶部１０４０が記憶する階層表からコンポネントと階層とを関連付けて取得する（ステップＳＴ０００２）。
【００８０】
その後、故障診断部１０６０は、ステップＳＴ０００２で取得したコンポネントの内で、ステップＳＴ０００４から０００６の処理の対象としていないコンポネント（以下単に、この処理において、未処理のコンポネントという）が存在するか否かを判断する（ステップＳＴ０００３）。故障診断部１０６０は、未処理のコンポネントが存在すると判断する場合にはステップＳＴ０００４の処理を、そうでない場合にはステップＳＴ０００７の処理を実行する。
【００８１】
ステップＳＴ０００３において、故障診断部１０６０は、未処理のコンポネントが存在すると判断した場合には、未処理のコンポネントの１つを、以下この図において診断対象コンポネントとする（ステップＳＴ０００４）。次に、故障診断部１０６０は、個別診断処理を実行するプロセスを生成する（ステップＳＴ０００５）。
【００８２】
次に、故障診断部１０６０は、ステップＳＴ０００５で生成したプロセスに対して診断対象コンポネントを識別する情報を送信する（ステップＳＴ０００６）。その後、故障診断部１０６０は、ステップＳＴ０００３に戻り上記処理を繰り返す。
【００８３】
尚、本実施例では、故障診断部１０６０は、個別診断処理を実行するプロセスを生成する場合について説明するが、これに限定される訳ではない。例えば、プロセス（process）ではなくスレッド（thread）を生成する構成を採用できる。また、プロセス（process）又はスレッド（thread）を生成して並列処理をするのではなく、逐次処理を実行する構成を採用できる。
【００８４】
ステップＳＴ０００３において、故障診断部１０６０は、未処理のコンポネントが存在しないと判断した場合には、記憶部１０４０から診断対象アプリケーションに関する関連表を取得し、取得した関連表から、診断対象アプリケーションの下位コンポネントを取得する（ステップＳＴ０００７）。
【００８５】
次に、故障診断部１０６０は、取得した下位のコンポネントについて、ステップＳＴ０００９及びＳＴ００１０の処理対象としていないコンポネント（以下単に、この処理において、未処理の下位コンポネントという）が存在するか否か判断する（ステップＳＴ０００８）。故障診断部１０６０は、未処理の下位のコンポネントが存在すると判断する場合にはステップＳＴ０００９の処理を、そうでない場合にはステップＳＴ００１１の処理を実行する。
【００８６】
ステップＳＴ０００８において、故障診断部１０６０は、未処理の下位コンポネントが存在すると判断した場合には、未処理の下位コンポネントの内の１つを、以下この図において、処理対象コンポネントとする（ステップＳＴ０００９）。
【００８７】
次に、故障診断部１０６０は、ステップＳＴ０００５で生成したプロセスの内で、ステップＳＴ０００６において処理対象コンポネントを識別する情報を送信したプロセス（以下単に、処理対象コンポネントに対するプロセスという）に対して実行通知を送信する（ステップＳＴ００１０）。故障診断部１０６０は、ステップＳＴ０００８に戻り上記処理を繰り返す。
【００８８】
尚、故障診断部１０６０は、コンポネントを識別する情報、実行通知、及び後述する終了通知のプロセス（又はスレッド）間における送受信を、例えば、ＯＳが提供するパイプ、シグナル、ソケット、又は共有メモリを用いる方法、又はその他の既存のプロセス（又はスレッド）間通信方法を実行することで実現できる。
【００８９】
ステップＳＴ０００８において、故障診断部１０６０は、未処理下位コンポネントが存在しないと判断した場合、又はステップＳＴ００１３を実行した後には、ステップＳＴ００１０で実行通知を送信したプロセスであって、診断対象アプリケーションの下位コンポネントに対して個別診断処理を実行するプロセスの１つから終了通知を取得する（ステップＳＴ００１１）。
【００９０】
次に、故障診断部１０６０は、全ての下位コンポネントに対するプロセスの処理が終了したか否かを判断する（ステップＳＴ００１２）。故障診断部１０６０は、全ての下位コンポネントに対するプロセスの処理が終了したと判断する場合にはステップＳＴ００１４の処理を、そうでない場合にはステップＳＴ００１３の処理を実行する。
【００９１】
ステップＳＴ００１２において、故障診断部１０６０は、全ての下位コンポネントに対するプロセスの処理が終了していないと判断した場合には、所定時間（又は所定のイベントが発生するまで）スリープする（ステップＳＴ００１３）。その後、故障診断部１０６０は、ステップＳＴ００１１に戻り上記処理を繰り返す。
【００９２】
ステップＳＴ００１２において、故障診断部１０６０は、全ての下位コンポネントに対するプロセスの処理が終了していると判断した場合には、記憶部１０４０が記憶する結果表を取得する（ステップＳＴ００１４）。次に、故障診断部１０６０は、情報表示部１０３５が結果表を表示するよう制御する（ステップＳＴ００１５）。その後、故障診断部１０６０は、故障診断処理を終了する。
【００９３】
次に図７及び８を参照して、故障診断部１０６０が実行する個別診断処理について説明する。図７は故障診断部１０６０が実行する個別診断処理の一例を表すフローチャートの一部であり、図８は故障診断部１０６０が実行する個別診断処理の一例を表すフローチャートの他部である。
【００９４】
先ず、故障診断部１０６０は、個別診断処理の対象とするコンポネント（以下この処理及び後述する実診断処理において、診断対象コンポネントという）を識別する情報を取得する（ステップＳＴ０１０１）。
【００９５】
次に、故障診断部１０６０は、実行通知を受信する（ステップＳＴ０１０２）。尚、図示を省略するが、故障診断部１０６０は、ステップＳＴ０１０１の処理を実行した後に、実行通知を受信するまでの間はスリープをする処理を実行しているとする。
【００９６】
その後、故障診断部１０６０は、記憶部１０４０から、診断対象コンポネントに関する関係表を取得し、診断対象コンポネントの下位コンポネントを取得する（ステップＳＴ０１０３）。
【００９７】
次に、故障診断部１０６０は、診断対象コンポネントに対する下位コンポネントが存在するか否かを判断する（ステップＳＴ０１０４）。故障診断部１０６０は、下位コンポネントが存在すると判断する場合にはステップＳＴ０１０５の処理を、そうでない場合にはステップＳＴ０１１１の処理を実行する。
【００９８】
ステップＳＴ０１０４において、故障診断部１０６０は、下位コンポネントが存在すると判断した場合には、ステップＳＴ０１０５からＳＴ０１０７の処理対象としていない下位コンポネント（以下この図において、未処理の下位コンポネントという）が存在するか否かを判断する（ステップＳＴ０１０５）。
【００９９】
故障診断部１０６０は、未処理の下位コンポネントが存在すると判断する場合にはステップＳＴ０１０６の処理を、そうでない場合にはステップＳＴ０１０８の処理を実行する。
【０１００】
ステップＳＴ０１０５において、故障診断部１０６０は、未処理の下位コンポネントが存在すると判断した場合には、未処理の下位コンポネントの１つを、以下この図において処理対象コンポネントとする（ステップＳＴ０１０６）。次に、故障診断部１０６０は、処理対象コンポネントに対して個別診断処理を行うプロセスへ実行通知を送信する（ステップＳＴ０１０７）。その後、故障診断部１０６０は、ステップＳＴ０１０５に戻り上記処理を繰り返す。
【０１０１】
ステップＳＴ０１０５において、故障診断部１０６０は、未処理の下位コンポネントが存在しないと判断した場合には、下位コンポネントに対して個別診断処理を行うプロセスの内の１つから終了通知を取得する（ステップＳＴ０１０８）。
【０１０２】
次に、故障診断部１０６０は、ステップＳＴ０１０８で取得した終了通知に基づいて、診断対象コンポネントの下位コンポネントに対する全ての個別診断処理が終了したか否かを判断する（ステップＳＴ０１０９）。故障診断部１０６０は、下位コンポネントに対する全ての個別診断処理が終了していないと判断する場合には、ステップＳＴ０１１０の処理を、そうでない場合にはステップＳＴ０１１１の処理を実行する。
【０１０３】
ステップＳＴ０１０９において、故障診断部１０６０は、全ての個別診断処理が終了していないと判断した場合には、所定時間又は所定のイベントが発生するまでの間スリープする（ステップＳＴ０１１０）。その後、ステップＳＴ０１０８に戻り上記処理を繰り返す。
【０１０４】
ステップＳＴ０１０４において、故障診断部１０６０は、下位コンポネントが存在しないと判断した場合、又はステップＳＴ０１０９において、全ての個別診断処理が終了したと判断した場合には、診断対象コンポネントに対して後述する実診断処理を実行する（ステップＳＴ０１１１）。
【０１０５】
次に、故障診断部１０６０は、本プロセスに対して実行通知を送信したプロセスへ終了通知を送信する（ステップＳＴ０１１２）。その後、故障診断部１０６０は、個別診断処理の実行を終了する。尚、実行通知を送信したプロセスは、故障診断処理を実行するプロセス、又は診断対象コンポネントの上位コンポネントを診断対象コンポネントとして個別診断処理を実行するプロセスである。
【０１０６】
次に図９を参照して、故障診断部１０６０が実行する実診断処理について説明する。図９は故障診断部１０６０が実行する実診断処理の一例を表すフローチャートである。
【０１０７】
先ず、故障診断部１０６０は、記憶部１０４０が記憶する関連表から診断対象コンポネントを診断するテストモジュールを識別する名称を取得する（ステップＳＴ０２０１）。次に、故障診断部１０６０は、取得した名称で識別される記憶部１０４０が記憶するテストモジュールを実行して診断対象コンポネントに故障の原因が生じているか否かを故障診断する（ステップＳＴ０２０２）。
【０１０８】
故障診断を行う方法は、例えば、所定の時間間隔で故障診断部１０６０へ応答をする手順を記述したコンポネント及び応答を取得する手順を記述したテストモジュールとを用いる場合には、診断対象とするコンポネントから所定時間内に応答が得られるか否かに基づいて、コンポネントの実行状態が正常であるか否かを診断する方法を採用できる。しかし、上記方法に限定される訳ではなく、その他の通常用いられる故障診断方法を採用できる。
【０１０９】
その後、故障診断部１０６０は、記憶部１０４０が記憶する結果表に、診断対象コンポネントを識別する情報と、診断対象コンポネントの診断結果とを関連付けて登録する（ステップＳＴ０２０３）。その後、故障診断部１０６０は、実診断処理の実行を終了する。尚、図示は省略するが、故障診断部１０６０は、結果表に情報を登録する際には、例えば、ファイルロック等の排他制御を行うものとする。
【０１１０】
ここで図１０を参照して、故障診断部１０６０が実行する個別診断処理の他例について説明する。図１０は、故障診断部１０６０が実行する個別診断処理の他例を表すフローチャートである。
【０１１１】
先ず、故障診断部１０６０は、ステップＳＴ０３０１からＳＴ０３０６の処理を実行する（ステップＳＴ０３０１からＳＴ０３０６）。尚、ステップＳＴ０３０１からＳＴ０３０６の処理は、図７を参照して説明したステップＳＴ０１０１からＳＴ０１０６の処理と同様であるので説明を省略する。
【０１１２】
ステップＳＴ０３０６の処理を実行した後に、故障診断部１０６０は、記憶部１０４０が記憶する結果表を取得する（ステップＳＴ０３０７）。次に、故障診断部１０６０は、処理対象コンポネントに関連付けて登録された診断結果を参照することで、処理対象コンポネントに対して既に個別診断処理が実行されたか否かを判断する（ステップＳＴ０３０８）。
【０１１３】
故障診断部１０６０は、個別診断処理が既に実行されたと判断する場合にはステップＳＴ０３０５に戻り上記処理を繰り返し、そうでない場合にはステップＳＴ０３０９の処理を実行する。
【０１１４】
ステップＳＴ０３０８において、故障診断部１０６０は、処理対象コンポネントに対して未だに個別診断処理が実行されていないと判断した場合には、ステップＳＴ０３０９の処理を実行する（ステップＳＴ０３０９）。尚、ステップＳＴ０３０９の処理は、図７を参照して説明したステップＳＴ１０７の処理と同様であるので説明を省略する。その後、故障診断部１０６０は、ステップＳＴ０３０５に戻り上記処理を繰り返す。
【０１１５】
ステップＳＴ０３０４において、故障診断部１０６０は、下位コンポネントが存在しないと判断した場合、図８を参照して説明したステップＳＴ０１１１及びＳＴ０１１２の処理を実行した後に、個別診断処理の実行を終了する。
【０１１６】
ステップＳＴ０３０５において、故障診断部１０６０は、未処理の下位コンポネントが存在しないと判断した場合には、図８を参照して説明したステップＳＴ０１０８からＳＴ０１１２の処理を実行した後に、個別診断処理の実行を終了する。
【０１１７】
ここで、図３を再度参照して、図１０を参照して説明した個別診断処理の他例について、具体例を挙げて再度説明する。
【０１１８】
先ず、故障診断部１０６０が、ステップＳＴ０３０１において、図３に示すコンポネントＣＰ３１を識別する情報を取得した場合における個別診断処理の一例について説明する。
【０１１９】
故障診断部１０６０は、ステップＳＴ０３０３において、診断対象コンポネントＣＰ３１の下位コンポネントＣＰ４１を取得する。その後、故障診断部１０６０は、ステップＳＴ０３０６において、下位コンポネントＣＰ４１を処理対象コンポネントとする。
【０１２０】
次に、故障診断部１０６０は、ステップＳＴ０３０７において、結果表から下位コンポネントである処理対象コンポネントＣＰ４１が診断済みであるか否かを判断する。
【０１２１】
ここで図３に示すように、診断対象コンポネントＣＰ３１の下位コンポネントＣＰ４１は、他のコンポネントＣＰ３２から３４の下位コンポネントでもある。
【０１２２】
よって、他のコンポネントＣＰ３２から３４のいずれか１つを診断対象コンポネントとして他のプロセスが実行した個別診断処理のステップＳＴ０３０９の処理において、下位コンポネントＣＰ４１に対するプロセスに実行通知が既になされ、かつ下位コンポネントＣＰ４１を対象とする個別診断処理が終了している場合が考えられる。
【０１２３】
そこで、故障診断部１０６０は、ステップＳＴ０３０８において、処理対象コンポネントＣＰ４１が診断済みであるか否かを判断し、診断済みであると判断する場合には、処理対象コンポネントＣＰ４１に対するプロセスへ実行通知を送信する処理（つまり、ステップＳＴ０３０９の処理）を実行せず、上記ステップＳＴ０３０５の処理を繰り返すこととした。
【０１２４】
本実施例においては、記憶部１０４０が記憶手段に相当し、故障診断部１０６０が故障診断手段に相当する。
【０１２５】
以下、本発明の第２の実施形態について図面を参酌しながら説明する。
【実施例２】
【０１２６】
第２の実施例において説明する故障診断装置は、故障診断装置とは異なる電子回路装置が実行するプログラムを診断対象とする点で実施例１と異なる。
【０１２７】
またこの故障診断装置は、上位プログラムを故障診断した後に、実行状態が正常でないと診断した上位プログラムに関連付けた中位プログラム及び下位プログラムを故障診断する点で実施例１と異なる。
【０１２８】
先ず、図１１を参照して、実施例２における故障診断システムの構成について説明する。図１１は、実施例２における故障診断システムの一構成例を表す図である。
【０１２９】
図１１が示す故障診断システム２０は、通信網２００、故障診断装置２０００、電子回路装置９０００から９００ｎで構成される。尚、電子回路装置９０００から９００ｎの接続、構成、及び機能は、それぞれほぼ同一であるため、以下単に、電子回路装置９０００のみについて説明する。
【０１３０】
通信網２００は、故障診断装置２０００、及び電子回路装置９０００をそれぞれ通信可能に接続する。尚、通信網２００の構成及び機能は、実施例１で説明した通信網１００の構成等とほぼ同様であるので説明を省略する。
【０１３１】
故障診断装置２０００は、通信網２００を介して電子回路装置９０００に接続している。故障診断装置２０００は、電子回路装置９０００に生じた故障を診断する。尚、故障診断装置２０００の構成及び機能については、実施例１で説明した故障診断装置１０００の構成等とほぼ同様であるため、以下相違点について主に説明する。
【０１３２】
よって図１２を参照して、故障診断装置２０００の構成について説明する。図１２は、故障診断装置２０００の一構成例を表す機能ブロック図である。
【０１３３】
故障診断装置２０００は、情報通信部２０２５、情報入力部２０３０、情報表示部２０３５、記憶部２０４０、制御部２０５０、及び故障診断部２０６０で構成され、それぞれの部は情報の授受が可能なようにバス２００５を介して接続している。
【０１３４】
故障診断装置２０００は、実施例１で説明した画像入力部１０１０、画像出力部１０１５、及びＦＡＸ通信部１０２０に相当する部を有しないため、スキャン機能、プリント機能、ＦＡＸ通信機能、及びコピー機能を有しない。
【０１３５】
情報通信部２０２５は、通信網２００を介して電子回路装置９０００から、故障診断に必要な情報を受信し、受信した情報を故障診断部２０６０へ出力する。尚、故障診断に必要な情報とは、電子回路装置９０００が実行するコンポネントを診断するための情報を含む。また、コンポネントを診断するための情報は、例えば、コンポネントの実行状態が正常である場合に電子回路装置９０００が送信する応答を表す情報を含む。
【０１３６】
記憶部２０４０は、実施例１で説明した記憶部１０４０と異なり、スキャン機能、プリント機能、ＦＡＸ通信機能、及びコピー機能を提供するために実行するアプリケーションを記憶しない。
【０１３７】
また記憶部２０４０は、電子回路装置９０００が記憶する上位（又は中位）プログラムであるコンポネントと、中位（又は下位）プログラムであるコンポネンとを関連付ける関連表を記憶する。
【０１３８】
更に記憶部２０４０は、電子回路装置９０００が記憶するコンポネントとコンポネントが属する階層とを関連付ける階層表、及び電子回路装置９０００が記憶するコンポネントとコンポネントの診断結果とを関連付ける結果表とを記憶する。
【０１３９】
また、記憶部２０４０は、電子回路装置９０００が実行するコンポネントを診断するためのテストモジュールを記憶する。
【０１４０】
故障診断部２０６０は、情報通信部２０２５から故障診断に必要な情報を取得し、取得した故障診断に必要な情報を用いて故障診断処理を実行する点で実施例１と異なる。
【０１４１】
また、故障診断部２０６０は、上位プログラムを故障診断した後に、実行状態が正常でないと診断した上位プログラムに関連付けて記憶部２０４０が記憶した中位プログラム及び下位プログラムを故障診断する点で実施例１と異なる。
【０１４２】
ここで、故障診断部２０６０が実行する故障診断処理について説明する前に、図１３を参照して、中位（又は上位）プログラムの実行状態と、下位（又は中位）プログラムの実行状態との関係について説明する。図１３は、上位プログラムの実行状態と下位プログラムの実行状態との関係について説明するための図である。
【０１４３】
図１３に示す図は、図３を参照して説明したコンポネントの実行状態の一例を表す図である。
【０１４４】
ここで図１３に示すように、コンポネントＣＰ４４の実行状態が異常である場合には、コンポネントＣＰ４４を呼び出す中位（又は上位）コンポネントＣＰ３４の実行状態も異常となる、又は異常となる可能性が高い。
【０１４５】
尚、本実施例では説明の便宜上、実行状態が異常な下位（又は中位）コンポネントを呼び出す中位（又は上位）コンポネントの実行状態は常に異常となるとして説明する。また、実行状態が異常（又は正常）であるコンポネントを異常コンポネント（又は正常コンポネント）と呼ぶことにする。
【０１４６】
よって、異常コンポネントＣＰ３４を呼び出すコンポネントＣＰ２２も異常コンポネントとなり、異常コンポネントＣＰ２２を呼び出すコンポネントＣＰ１１及びＣＰ１２も異常コンポネントとなる。
【０１４７】
次に、図１３に示す階層構造を有するコンポネントを具体例として挙げて、故障診断部２０６０が実行する故障診断処理の概略について説明する。
【０１４８】
先ず、故障診断部２０６０は、第１層のコンポネント層ＬＣＰ１から第４のコンポネント層ＬＣＰ４までを順に処理対象層とする。次に、故障診断部２０６０は、処理対象層に属するコンポネントについて、図９を参照して説明した実診断処理を実行して異常コンポネントであるか否かを診断する。
【０１４９】
故障診断部２０６０は、処理対象層に属するコンポネントが全て異常コンポネントであると診断した場合には、直下の層を処理対象層として上記処理を繰り返す。
【０１５０】
つまり図１３において、故障診断部２０６０は、第１層のコンポネント層ＬＣＰ１に属するコンポネントＣＰが全て異常コンポネントであると診断するため、処理対象層を第２層のコンポネント層ＬＣＰ２とする。
【０１５１】
また、故障診断部２０６０は、処理対象層に属するコンポネントの少なくとも１つ正常コンポネントであると診断した場合には、異常コンポネントの下位プログラムに対して個別診断処理を実行する。
【０１５２】
つまり図１３において、故障診断部２０６０は、処理対象層である第２層のコンポネント層に属するコンポネントＣＰ２１を正常コンポネントであると診断し、コンポネントＣＰ２２を異常コンポネントであると診断するので、異常コンポネントＣＰ２２の下位プログラムであるコンポネントＣＰ３３及びＣＰ３４（並びにコンポネントＣＰ３３及びＣＰ３４の下位プログラムであるコンポネントＣＰ４１、４３、及びＣＰ４４）に対して個別診断処理を実行する。
【０１５３】
次に図４、６、１４及び１５を参照して、故障診断部２０６０が実行する故障診断処理について説明する。図４、６、１４及び１５は、故障診断部２０６０が実行する故障診断処理の一例を表すフローチャートの一部及び他部である。
【０１５４】
先ず、故障診断部２０６０は、既に実施例１で参照して説明したステップＳＴ０００１からＳＴ０００６の処理を実行する（ステップＳＴ０００１からＳＴ０００６）。
【０１５５】
次に、故障診断部２０６０は、記憶部２０４０が記憶する階層表を参照する（ステップＳＴ０４０１）。その後、故障診断部２０６０は、第１層のコンポネント層（以下単に、最上位の階層という）を処理対象層とする（ステップＳＴ０４０２）。
【０１５６】
次に、故障診断部２０６０は、処理対象層に属する未処理のコンポネントが存在するか否かを判断する（ステップＳＴ０４０３）。故障診断部２０６０は、未処理のコンポネントが存在すると判断する場合にはステップＳＴ０４０４の処理を、そうでない場合にはステップＳＴ０４０６の処理を実行する。
【０１５７】
ステップＳＴ０４０３において、故障診断部２０６０は、未処理のコンポネントが存在すると判断した場合には、未処理のコンポネントの内の１つを診断対象とするコンポネント（以下この図において、診断対象コンポネントという）とする（ステップＳＴ０４０４）。
【０１５８】
次に、故障診断部２０６０は、診断対象コンポネントに対して、図９を参照して説明した実診断処理を実行する（ステップＳＴ０４０５）。その後、故障診断部２０６０は、ステップＳＴ０４０３に戻り上記処理を繰り返す。
【０１５９】
ここで、例えば、所定の時間間隔で故障診断装置２０００へ応答をする手順を記述したコンポネントと、応答を取得する手順を記述したテストモジュールとを用いる場合を例に挙げて、図９を参照して説明した実診断処理を構成するステップＳＴ０２０２に示す処理について説明する。
【０１６０】
ステップＳＴ０２０２において、故障診断部２０６０は、所定時間内に電子回路装置９０００が送信する応答を情報通信部２０２５から取得できるか否かに基づいてコンポネントの実行状態が正常であるか異常であるかを診断する。また、故障診断部２０６０が実行する故障診断方法は、上記方法に限定される訳ではなくその他の通常用いられる故障診断方法を採用できる。
【０１６１】
ここで図１４に戻り、故障診断部２０６０が実行する故障診断処理の一例について引き続き説明する。
ステップＳＴ０４０３において、故障診断部２０６０は、未処理のコンポネントが存在しないと判断した場合には、記憶部２０４０が記憶する結果表を取得する（ステップＳＴ０４０６）。
【０１６２】
次に、故障診断部２０６０は、処理対象層に属する全コンポネントの診断結果が異常であるか否かを判断する（ステップＳＴ０４０７）。故障診断部２０６０は、処理対象層に属する全コンポネントの診断結果が異常であると判断する場合には、ステップＳＴ０４０８の処理を実行し、そうでない場合にはステップＳＴ０４０９の処理を実行する。
【０１６３】
ステップＳＴ０４０７において、故障診断部２０６０は、処理対象層に属する全コンポネントの診断結果が異常であると判断した場合には、処理対象層の直下の層を処理対象層とする（ステップＳＴ０４０８）。
【０１６４】
具体例としては、処理対象層が第１層のコンポネント層ＬＣＰ１である場合には、直下の層である第２層のコンポネント層ＬＣＰ２を処理対象層とする。次に、故障診断部２０６０は、ステップＳＴ０４０３に戻り上記処理を繰り返す。
【０１６５】
ステップＳＴ０４０７において、故障診断部２０６０は、処理対象層に属するコンポネントの内で少なくとも１つ診断結果が正常であるコンポネントが存在すると判断した場合には、ステップＳＴ０４１０からＳＴ０４１１の処理対象としていない処理対象層に属する異常コンポネント（以下単に、この図において、未処理の異常コンポネントという）が存在するか否かを判断する（ステップＳＴ０４０９）。
【０１６６】
故障診断部２０６０は、未処理の異常コンポネントが存在すると判断する場合にはステップＳＴ０４１０の処理を、そうでない場合には図６を参照して説明したステップＳＴ００１１からＳＴ００１５の処理を実行した後に故障診断処理の実行を終了する。
【０１６７】
ステップＳＴ０４０９において、故障診断部２０６０は、未処理の異常コンポネントが存在すると判断した場合には、記憶部２０４０が記憶する関連表から異常コンポネントの下位コンポネントを取得する（ステップＳＴ０４１０）。
【０１６８】
次に、故障診断部２０６０は、ステップＳＴ０４１２及びＳＴ０４１３の処理対象としていない下位コンポネント（以下単に、この図において、未処理の下位コンポネントという）が存在するか否かを判断する（ステップＳＴ０４１１）。故障診断部２０６０は、未処理の下位コンポネントが存在すると判断する場合にはステップＳＴ０４１２の処理を、そうでない場合にはステップＳＴ０４０９に戻り上記処理を繰り返す。
【０１６９】
ステップＳＴ０４１１において、故障診断部２０６０は、未処理の下位コンポネントが存在すると判断した場合には、未処理の下位コンポネントの１つを、以下この図において、処理対象コンポネントとする（ステップＳＴ０４１２）。
【０１７０】
次に、故障診断部２０６０は、処理対象下位コンポネントに対して個別診断処理を実行するプロセスへ実行通知を送信する（ステップＳＴ０４１３）。その後、故障診断部２０６０は、ステップＳＴ０４１１に戻り上記処理を繰り返す。
【０１７１】
ここで図１１に戻り、引き続き故障診断システム２０の構成について説明する。
電子回路装置９０００は、通信網２００を介して故障診断装置２０００に接続している。電子回路装置９０００はアプリケーションを実行する。尚、故障診断装置２０００は、電子回路装置９０００がアプリケーションを実行することによって生じた故障を診断する。
【０１７２】
電子回路装置９０００の構成及び機能は、実施例１で説明した故障診断装置である電子回路装置１０００の構成等とほぼ同様であるので、以下主に相違点について説明する。
【０１７３】
よって図１６を参照して、電子回路装置９０００の構成について説明する。図１６は、電子回路装置９０００の一構成例を表す機能ブロック図である。
【０１７４】
電子回路装置９０００は、画像入力部９０１０、画像出力部９０１５、ＦＡＸ通信部９０２０、情報通信部９０２５、情報入力部９０３０、情報表示部９０３５、記憶部９０４０、及び制御部９０５０で構成され、それぞれの部はバス９００５を介して情報の授受が可能なように接続される。
【０１７５】
電子回路装置９０００は、実施例１で説明した故障診断部１０６０に相当する部を有しないために故障診断機能を有しない。
【０１７６】
情報通信部９０２５は、制御部９０５０から故障診断に必要な情報を取得し、取得した情報を通信網２００を介して故障診断装置２０００へ送信する。
【０１７７】
記憶部９０４０は、実施例１で説明した記憶部１０４０と異なり、故障診断に用いるアプリケーション、関連表、階層表、結果表、及びテストモジュールを記憶しない。
【０１７８】
制御部９０５０は、故障診断に必要な情報を情報通信部９０２５へ出力する。この故障診断に必要な情報は、例えば、制御部９０５０がコンポネントが記述する手順を実行することで生成する応答を表す情報を含む。
【０１７９】
本実施例においては、記憶部２０４０が記憶手段に相当し、故障診断部２０６０が診断手段に相当する。
【０１８０】
以下、本発明の第３の実施形態について図面を参酌しながら説明する。
【実施例３】
【０１８１】
第３の実施例においては、本発明に係る故障診断システムについて説明する。
【０１８２】
先ず、図１７を参照して、実施例３における故障診断システムの構成について説明する。図１７は、実施例３における故障診断システムの一構成例を表す図である。
【０１８３】
図１７が示す故障診断システム３０は、通信網３００、故障診断装置３０００、及び記憶装置３１００で構成される。
【０１８４】
通信網３００は、故障診断装置３０００、及び記憶装置３１００をそれぞれ通信可能に接続する。尚、通信網３００の構成及び機能は、実施例１で説明した通信網１００の構成等とほぼ同様であるので説明を省略する。
【０１８５】
故障診断装置３０００は、通信網３００を介して記憶装置３１００に接続している。故障診断装置３０００は、電子回路装置であり、故障診断装置３０００自身に発生した故障を診断する。尚、故障診断装置３０００の構成及び機能については、実施例１で説明した故障診断装置１０００の構成等とほぼ同様であるため、以下相違点について主に説明する。
【０１８６】
故障診断装置３０００は、実施例１で説明した情報通信部１０２５及び記憶部１０４０に相当する部を有している。
【０１８７】
情報通信部１０２５に相当する部は、通信網３００を介して記憶装置３１００から関連表、階層表、結果表、及びテストモジュールを受信し、受信した表及びモジュールを記憶部１０４０に相当する部へ保存する。
【０１８８】
尚、情報通信部１０２５に相当する部が受信する関連表は、故障診断装置３０００が実行する上位（又は中位）プログラムであるコンポネントと、中位（又は下位）プログラムであるコンポネンとを関連付ける表である。
【０１８９】
同様に、情報通信部１０２５に相当する部が受信する階層表及び結果表は、故障診断装置３０００が実行するコンポネントとコンポネントが属する階層とを関連付ける表、及び故障診断装置３０００が実行するコンポネントとコンポネントの診断結果とを関連付ける表である。尚、上記関連表、階層表、結果表、及びテストモジュールを、以下単に、故障診断装置３０００に関する関連表、階層表、結果表、及びテストモジュールという。
【０１９０】
また同様に、情報通信部１０２５に相当する部が受信するテストモジュールは、故障診断装置３０００が実行するコンポネントの実行状態を診断するためのモジュールである。
【０１９１】
記憶部１０４０に相当する部は、関連表、階層表、結果表、及びテストモジュールを予め記憶せず、情報通信部１０２５に相当する部によって記憶装置３１００が記憶する関連表、階層表、結果表、及びテストモジュールを保存される。
【０１９２】
記憶装置３１００は、通信網３００を介して故障診断装置３０００に接続している。記憶装置３１００は、図示を省略するが、例えば、ＲＡＭ、ＲＯＭ、又は外部記憶装置で構成される記憶部と、例えば、ネットワークアダプタで構成される情報通信部とを有し、記憶部と情報通信部とはそれぞれ情報の授受が可能な様にバスで接続している。
【０１９３】
記憶装置３１００が有する記憶部は、情報通信部に接続し、故障診断装置３０００に関する関連表、階層表、結果表、及びテストモジュールを記憶する。記憶装置３１００が記憶する表及びモジュールは、情報通信部によって参照される。
【０１９４】
記憶装置３１００が有する情報通信部は、通信網３００及び記憶部に接続し、記憶部が記憶する表及びモジュールを、通信網３００を介して故障診断装置３０００へ送信する。
【０１９５】
以下、本発明の第４の実施形態について図面を参酌しながら説明する。
【実施例４】
【０１９６】
第４の実施例において、故障診断システムを構成する故障診断装置は、故障診断装置と異なる電子回路装置に生じた故障を診断する点で実施例３と異なる。
【０１９７】
先ず、図１８を参照して、実施例４における故障診断システムの構成について説明する。図１８は、実施例４における故障診断システムの一構成例を表す図である。
【０１９８】
図１８が示す故障診断システム４０は、通信網４００、故障診断装置４０００、記憶装置４１００、及び１又は複数の電子回路装置８０００から８００ｎで構成される。尚、電子回路装置８０００から８００ｎの接続、構成、及び機能は、それぞれほぼ同一であるため、以下単に、電子回路装置８０００のみについて説明する。
【０１９９】
通信網４００は、故障診断装置４０００、記憶装置４１００、及び電子回路装置８０００をそれぞれ通信可能に接続する。尚、通信網４００の構成及び機能は、実施例１で説明した通信網１００の構成等とほぼ同様であるので説明を省略する。
【０２００】
故障診断装置４０００は、通信網４００を介して記憶装置４１００及び電子回路装置８０００に接続している。故障診断装置４０００は、電子回路装置８０００に発生した故障を診断する。尚、故障診断装置４０００の構成及び機能については、実施例２で説明した故障診断装置２０００の構成等とほぼ同様であるため、以下相違点について主に説明する。
【０２０１】
故障診断装置４０００は、実施例２で説明した情報通信部２０２５及び記憶部２０４０に相当する部を有している。
【０２０２】
情報通信部２０２５に相当する部は、実施例３で説明した情報通信部１０２５に相当する部と同様に、通信網４００を介して記憶装置４１００から関連表、階層表、結果表、及びテストモジュールを受信し、受信した表及びモジュールを記憶部２０４０に相当する部へ保存する。
【０２０３】
尚、情報通信部２０２５に相当する部が受信する関連表は、電子回路装置８０００が実行する上位（又は中位）プログラムであるコンポネントと、中位（又は下位）プログラムであるコンポネンとを関連付ける表である。
【０２０４】
同様に、情報通信部２０２５に相当する部が受信する階層表及び結果表は、電子回路装置８０００が実行するコンポネントとコンポネントが属する階層とを関連付ける表、及び電子回路装置８０００が実行するコンポネントとコンポネントの診断結果とを関連付ける表である。尚、上記関連表、階層表、結果表、及びテストモジュールを、以下単に、電子回路装置８０００に関する関連表、階層表、結果表、及びテストモジュールという。
【０２０５】
また同様に、情報通信部２０２５に相当する部が受信するテストモジュールは、電子回路装置８０００が実行するコンポネントの実行状態を診断するためのモジュールである。
【０２０６】
記憶部２０４０に相当する部は、関連表、階層表、結果表、及びテストモジュールを予め記憶せず、情報通信部２０２５に相当する部によって記憶装置４１００が記憶する関連表、階層表、結果表、及びテストモジュールを保存される。
【０２０７】
記憶装置４１００の接続、構成、及び機能は、実施例３で説明した記憶装置３１００の接続等と同様であるので、説明を省略する。
【０２０８】
電子回路装置８０００は、通信網４００を介して故障診断装置４０００、記憶装置４１００、及び電子回路装置８０００に接続している。電子回路装置８０００の構成及び機能は、実施例２で説明した電子回路装置９０００の接続及び機能とほぼ同様であるため説明を省略する。
【０２０９】
故障診断装置（電気回路装置）１０００、故障診断装置２０００、故障診断装置（電気回路装置）３０００、及び故障診断装置４０００の有する機能は、演算部がＲＯＭ、ＲＡＭ、外部記憶装置の少なくともひとつに格納されたプログラムを実行することにより実現できる。また、このプログラムは、例えば、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布、又はネットワークを介した配信によって提供できる。
【０２１０】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【０２１１】
上記実施形態では、外部記憶装置はハードディスク（Hard Disk）で構成されるとして説明したが、これに限定されるわけではなく、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、ＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）、ＭＯ（magneto-optic）、及び、フラッシュメモリ（flash memory）で構成される実施形式を採用できる。
【図面の簡単な説明】
【０２１２】
【図１】本発明に係る故障診断装置の一実施形態を示す機能ブロック図である。
【図２】ソフトウェア制御を実現するための故障診断装置のハードウェアの一構成例を表す図である。
【図３】下位プログラムと中位プログラムと上位プログラムとの関連を説明するための図である。
【図４】故障診断部が実行する故障診断処理の一例を表すフローチャートの一部である。
【図５】故障診断部が実行する故障診断処理の一例を表すフローチャートの他部である。
【図６】故障診断部が実行する故障診断処理の一例を表すフローチャートの他部である。
【図７】故障診断部が実行する個別診断処理の一例を表すフローチャートの一部である。
【図８】故障診断部が実行する個別診断処理の一例を表すフローチャートの他部である。
【図９】故障診断部が実行する実診断処理の一例を表すフローチャートである。
【図１０】故障診断部が実行する個別診断処理の他例を表すフローチャートである。
【図１１】実施例２における故障診断システムの一構成例を表す図である。
【図１２】実施例２における故障診断装置の一構成例を表す機能ブロック図である。
【図１３】上位プログラムの実行状態と下位プログラムの実行状態との関係について説明するための図である。
【図１４】故障診断部が実行する故障診断処理の一例を表すフローチャートの一部である。
【図１５】故障診断部が実行する故障診断処理の一例を表すフローチャートの他部である。
【図１６】実施例２における電子回路装置の一構成例を表す機能ブロック図である。
【図１７】実施例３における故障診断システムの一構成例を表す図である。
【図１８】実施例４における故障診断システムの一構成例を表す図である。
【符号の説明】
【０２１３】
１００…通信網                    １０００…故障診断装置（電子回路装置）
１００１…演算部                  １００２…ＲＯＭ                  
１００３…ＲＡＭ                  １００４…外部記憶部              
１００５…バス                    １０１０…画像入力部              
１０１５…画像出力部              １０２０…ＦＡＸ通信部            
１０２５…情報通信部              １０３０…情報入力部              
１０３５…情報表示部              １０４０…記憶部（記憶手段）      
１０５０…制御部                  １０６０…故障診断部（故障診断手段）
２０…故障診断システム            ２００…通信網                    
２０００…故障診断装置            ２００５…バス                    
２０２５…情報通信部              ２０３０…情報入力部              
２０３５…情報表示部              ２０４０…記憶部（記憶手段）      
２０５０…制御部                  ２０６０…故障診断部（故障診断手段）
３０…故障診断システム            ３００…通信網                    
３０００…故障診断装置（電子回路装置）
３１００…記憶装置                ４０…故障診断システム            
４００…通信網                    ４０００…故障診断装置            
４１００…記憶装置                ８０００〜ｎ…電子回路装置        
９０００〜ｎ…電子回路装置        ９００５…バス                    
９０１０…画像入力部              ９０１５…画像出力部              
９０２０…ＦＡＸ通信部            ９０２５…情報通信部              
９０３０…情報入力部              ９０３５…情報表示部              
９０４０…記憶部                  ９０５０…制御部                  
ＬＡＰ…アプリケーション層        ＬＣＰ１〜４…第１〜４層のコンポネント層
ＬＨＷ…ハードウェア              ＬＯＳ…ＯＳ                      
【図１】
2008262510.tif 000006
【図２】
2008262510.tif 000007
【図３】
2008262510.tif 000008
【図４】
2008262510.tif 000009
【図５】
2008262510.tif 000010
【図６】
2008262510.tif 000011
【図７】
2008262510.tif 000012
【図８】
2008262510.tif 000013
【図９】
2008262510.tif 000014
【図１０】
2008262510.tif 000015
【図１１】
2008262510.tif 000016
【図１２】
2008262510.tif 000017
【図１３】
2008262510.tif 000018
【図１４】
2008262510.tif 000019
【図１５】
2008262510.tif 000020
【図１６】
2008262510.tif 000021
【図１７】
2008262510.tif 000022
【図１８】
2008262510.tif 000023